git.iko.soy/typeable/pandoc
on master help sign in
ipynb reader/writer: use format 'ipynb' for raw cell where no format given.

According to nbformat docs, this is supposed to render in every format. We don't do that, but we at least preserve it as a raw block in markdown, so you can round-trip.

commit79c82a2550977e391ca60820b6013d23d444bf39 authorJohn MacFarlane <jgm@berkeley.edu> dateSat 30 Mar 2019, 09:57 (8 years ago) parent036179e
2 files changed+9−5
src/Text/Pandoc/Readers/Ipynb.hs+3−2 src/Text/Pandoc/Writers/Ipynb.hs+6−3
src/Text/Pandoc/Readers/Ipynb.hs+3−2
@@ -90,10 +90,11 @@ cellToBlocks opts lang c = do
9090 return $ B.divWith ("",["cell","markdown"],kvs)
9191 $ B.fromList bs
9292 Ipynb.Raw -> do
93− let format = fromMaybe "html" $ lookup "format" kvs
93+ -- we use ipynb to indicate no format given (a wildcard in nbformat)
94+ let format = fromMaybe "ipynb" $ lookup "format" kvs
9495 let format' =
9596 case format of
96− "text/html" -> "html"
97+ "text/html" -> "html"
9798 "text/latex" -> "latex"
9899 "application/pdf" -> "latex"
99100 "text/markdown" -> "markdown"
src/Text/Pandoc/Writers/Ipynb.hs+6−3
@@ -19,6 +19,7 @@ where
1919import Prelude
2020import Control.Monad.State
2121import qualified Data.Map as M
22+import Data.Char (toLower)
2223import Data.Maybe (catMaybes, fromMaybe)
2324import Text.Pandoc.Options
2425import Text.Pandoc.Definition
@@ -136,7 +137,7 @@ extractCells opts (Div (_id,classes,kvs) xs : bs)
136137 case consolidateAdjacentRawBlocks xs of
137138 [RawBlock (Format f) raw] -> do
138139 let format' =
139− case f of
140+ case map toLower f of
140141 "html" -> "text/html"
141142 "revealjs" -> "text/html"
142143 "latex" -> "text/latex"
@@ -146,8 +147,10 @@ extractCells opts (Div (_id,classes,kvs) xs : bs)
146147 (Cell{
147148 cellType = Raw
148149 , cellSource = Source $ breakLines $ T.pack raw
149− , cellMetadata = M.insert "format"
150− (Aeson.String $ T.pack format') mempty
150+ , cellMetadata = if format' == "ipynb" -- means no format given
151+ then mempty
152+ else M.insert "format"
153+ (Aeson.String $ T.pack format') mempty
151154 , cellAttachments = Nothing } :) <$> extractCells opts bs
152155 _ -> extractCells opts bs
153156extractCells opts (CodeBlock (_id,classes,kvs) raw : bs)