Sorry for not attaching the files. Here they are.
# Table of Contents
When exporting the following code block using indentation, it is not
possible to know where the source code ends and the results of
evaluation starts.
echo "echo ab"
echo "seq 1 2"
echo ab
seq 1 2
The language of the following code block will be `sh` because `dash`
doesn't belong to `org-md-lang-export`
result=0
for i in $(seq 1 5)
do
for j in $(seq 1 5)
do
result=$((result + i + j))
done
done
echo "$result"
150
The language of the following code block will be the same as the one
used in Org Mode because `R` doesn't belong to `org-md-lang-export`
data(Loblolly)
max(Loblolly $ height)
[1] 64.1
# Table of Contents
When exporting the following code block using indentation, it is not
possible to know where the source code ends and the results of
evaluation starts.
```sh
echo "echo ab"
echo "seq 1 2"
```
```
echo ab
seq 1 2
```
The language of the following code block will be `sh` because `dash`
doesn't belong to `org-md-lang-export`
```sh
result=0
for i in $(seq 1 5)
do
for j in $(seq 1 5)
do
result=$((result + i + j))
done
done
echo "$result"
```
```
150
```
The language of the following code block will be the same as the one
used in Org Mode because `R` doesn't belong to `org-md-lang-export`
```R
data(Loblolly)
max(Loblolly $ height)
```
```
[1] 64.1
```
mre.org
Description: Lotus Organizer
--- ox-md.el 2021-01-28 22:18:51.566067501 -0500
+++ ox-md-patched.el 2021-01-28 22:14:34.762735829 -0500
@@ -50,6 +50,14 @@
(const :tag "Use \"atx\" style" atx)
(const :tag "Use \"Setext\" style" setext)))
+(defcustom org-md-lang-export
+ '(("dash" . "sh"))
+ "Alist mapping languages to the corresponding language names in Markdown."
+ :group 'org-export-md
+ :type '(repeat
+ (cons
+ (string "Org Mode language name")
+ (string "Markdown language name"))))
;;;; Footnotes
@@ -181,10 +189,24 @@
"Transcode EXAMPLE-BLOCK element into Markdown format.
CONTENTS is nil. INFO is a plist used as a communication
channel."
- (replace-regexp-in-string
- "^" " "
- (org-remove-indentation
- (org-export-format-code-default example-block info))))
+ (let* (language
+ (org-language
+ (plist-get (car (cdr example-block)) :language))
+ (markdown-language
+ (cdr (assoc org-language org-md-lang-export))) ;
+ (content
+ (org-remove-indentation
+ (org-export-format-code-default example-block info))))
+
+ (if markdown-language
+ (setq language markdown-language)
+ (setq language org-language))
+
+ (setq content (replace-regexp-in-string
+ "\\`" (concat "```" language "\n")
+ content))
+
+ (replace-regexp-in-string "\\'" "```" content)))
(defun org-md-export-block (export-block contents info)
"Transcode a EXPORT-BLOCK element from Org to Markdown.
-- Greetings, Rodrigo Morales.
