summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Text/Pandoc/Writers/Org.hs7
-rw-r--r--test/Tests/Writers/Org.hs11
2 files changed, 16 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Writers/Org.hs b/src/Text/Pandoc/Writers/Org.hs
index 80dbd78e4..81c9d8d48 100644
--- a/src/Text/Pandoc/Writers/Org.hs
+++ b/src/Text/Pandoc/Writers/Org.hs
@@ -148,7 +148,10 @@ blockToOrg (Header level attr inlines) = do
then empty
else cr <> propertiesDrawer attr
return $ headerStr <> " " <> contents <> drawerStr <> cr
-blockToOrg (CodeBlock (_,classes,kvs) str) = do
+blockToOrg (CodeBlock (ident,classes,kvs) str) = do
+ let name = if T.null ident
+ then empty
+ else literal $ "#+name: " <> ident
let startnum = maybe "" (\x -> " " <> trimr x) $ lookup "startFrom" kvs
let numberlines = if "numberLines" `elem` classes
then if "continuedSourceBlock" `elem` classes
@@ -159,7 +162,7 @@ blockToOrg (CodeBlock (_,classes,kvs) str) = do
let (beg, end) = case at of
[] -> ("#+begin_example" <> numberlines, "#+end_example")
(x:_) -> ("#+begin_src " <> x <> numberlines, "#+end_src")
- return $ literal beg $$ literal str $$ text end $$ blankline
+ return $ name $$ literal beg $$ literal str $$ text end $$ blankline
blockToOrg (BlockQuote blocks) = do
contents <- blockListToOrg blocks
return $ blankline $$ "#+begin_quote" $$
diff --git a/test/Tests/Writers/Org.hs b/test/Tests/Writers/Org.hs
index 4c79995d4..cc957fc6c 100644
--- a/test/Tests/Writers/Org.hs
+++ b/test/Tests/Writers/Org.hs
@@ -66,4 +66,15 @@ tests =
, "- ☒ b"
]
]
+
+ , testGroup "code blocks"
+ [ "identifier"
+ =: codeBlockWith ("abc", ["python"], []) "return True"
+ =?> T.unlines
+ [ "#+name: abc"
+ , "#+begin_src python"
+ , "return True"
+ , "#+end_src"
+ ]
+ ]
]