diff options
| author | John MacFarlane <jgm@berkeley.edu> | 2022-02-18 17:46:36 -0800 |
|---|---|---|
| committer | John MacFarlane <jgm@berkeley.edu> | 2022-02-18 17:46:36 -0800 |
| commit | fb465070eb3b21ac88b8758216affdf57e816803 (patch) | |
| tree | 8ccd0501439b807415e6b8682199993dabd83638 /src/Text | |
| parent | 2a70d9c3c5bd129f62fdbac0fc3c06c6aa79cc8d (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.hs | 11 |
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 |
