summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlbert Krewinkel <albert@zeitkraut.de>2022-08-21 21:44:41 +0200
committerAlbert Krewinkel <albert@zeitkraut.de>2022-08-21 21:53:33 +0200
commit5d6616608858e60641676a7fa76a87f9516d477d (patch)
tree4fadfb1a339ad4b08e05bbf692858b0ac45d14fb
parente483bc9ff7b19f5db7fb6b5dd1947e33ec35a5ce (diff)
Org reader: treat *emacs-jupyter* src blocks as code cells.
This improves support for notebook-like org files that are intended to be used with emacs-jupyter package. Closes: #8236
-rw-r--r--src/Text/Pandoc/Readers/Org/Blocks.hs6
-rw-r--r--test/command/8236.md15
2 files changed, 20 insertions, 1 deletions
diff --git a/src/Text/Pandoc/Readers/Org/Blocks.hs b/src/Text/Pandoc/Readers/Org/Blocks.hs
index dd79cc289..baf244d81 100644
--- a/src/Text/Pandoc/Readers/Org/Blocks.hs
+++ b/src/Text/Pandoc/Readers/Org/Blocks.hs
@@ -311,7 +311,11 @@ codeBlock blockAttrs blockType = do
content <- rawBlockContent blockType
resultsContent <- option mempty babelResultsBlock
let identifier = fromMaybe mempty $ blockAttrName blockAttrs
- let codeBlk = B.codeBlockWith (identifier, classes, kv) content
+ let classes' = case classes of
+ c:cs | Just c' <- T.stripPrefix "jupyter-" c ->
+ c' : "code" : cs
+ _ -> classes
+ let codeBlk = B.codeBlockWith (identifier, classes', kv) content
let wrap = maybe pure addCaption (blockAttrCaption blockAttrs)
return $
(if exportsCode kv then wrap codeBlk else mempty) <>
diff --git a/test/command/8236.md b/test/command/8236.md
new file mode 100644
index 000000000..f8c70a715
--- /dev/null
+++ b/test/command/8236.md
@@ -0,0 +1,15 @@
+```
+% pandoc -f org -t native
+ #+begin_src jupyter-python :session py :display plain
+ import pandas as pd
+ df = pd.read_csv('weight.csv', parse_dates=['Date'], index_col=0)
+ #+end_src
+^D
+[ CodeBlock
+ ( ""
+ , [ "python" , "code" ]
+ , [ ( "session" , "py" ) , ( "display" , "plain" ) ]
+ )
+ "import pandas as pd\ndf = pd.read_csv('weight.csv', parse_dates=['Date'], index_col=0)\n"
+]
+```