summaryrefslogtreecommitdiff
path: root/src/Text
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2022-02-18 17:46:36 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2022-02-18 17:46:36 -0800
commitfb465070eb3b21ac88b8758216affdf57e816803 (patch)
tree8ccd0501439b807415e6b8682199993dabd83638 /src/Text
parent2a70d9c3c5bd129f62fdbac0fc3c06c6aa79cc8d (diff)
Ipynb writer: handle metadata better.
Previously we used the markdown writer to render metadata. This had some undesirable consequences (e.g. en dash expanded to `--` when `smart` enabled), so now we use the plain writer. This addresses #7928, but I think a more elegant fix is possible.
Diffstat (limited to 'src/Text')
-rw-r--r--src/Text/Pandoc/Writers/Ipynb.hs11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/Text/Pandoc/Writers/Ipynb.hs b/src/Text/Pandoc/Writers/Ipynb.hs
index 28da2938c..fa6369e62 100644
--- a/src/Text/Pandoc/Writers/Ipynb.hs
+++ b/src/Text/Pandoc/Writers/Ipynb.hs
@@ -31,7 +31,7 @@ import Data.Aeson as Aeson
import qualified Text.Pandoc.UTF8 as UTF8
import Text.Pandoc.Shared (safeRead, isURI)
import Text.Pandoc.Writers.Shared (metaToContext')
-import Text.Pandoc.Writers.Markdown (writeMarkdown)
+import Text.Pandoc.Writers.Markdown (writePlain, writeMarkdown)
import qualified Data.Text.Encoding as TE
import qualified Data.ByteString.Lazy as BL
import Data.Aeson.Encode.Pretty (Config(..), defConfig,
@@ -57,10 +57,11 @@ writeIpynb opts d = do
pandocToNotebook :: PandocMonad m
=> WriterOptions -> Pandoc -> m (Notebook NbV4)
pandocToNotebook opts (Pandoc meta blocks) = do
- let blockWriter bs = literal <$> writeMarkdown
- opts{ writerTemplate = Nothing } (Pandoc nullMeta bs)
- let inlineWriter ils = literal . T.stripEnd <$> writeMarkdown
- opts{ writerTemplate = Nothing } (Pandoc nullMeta [Plain ils])
+ -- we use writePlain w/ default options because e.g. we don't want
+ -- to add backslash escapes or convert en dashes, see #7928
+ let blockWriter bs = literal <$> writePlain def (Pandoc nullMeta bs)
+ let inlineWriter ils = literal . T.stripEnd <$>
+ writePlain def (Pandoc nullMeta [Plain ils])
let jupyterMeta =
case lookupMeta "jupyter" meta of
Just (MetaMap m) -> Meta m