git.iko.soy/typeable/pandoc
on master help sign in
ConTeXt: Use buffering for footnotes containing code blocks.

Closes #291.

commitfa03bf52cbf82e6dea09bd2176bb4f64012a8365 authorJohn MacFarlane <fiddlosopher@gmail.com> dateThu 18 Aug 2011, 19:23 (15 years ago) parentf9ae93d
1 file changed+8−2
src/Text/Pandoc/Writers/ConTeXt.hs+8−2
src/Text/Pandoc/Writers/ConTeXt.hs+8−2
@@ -31,6 +31,7 @@ Conversion of 'Pandoc' format into ConTeXt.
3131module Text.Pandoc.Writers.ConTeXt ( writeConTeXt ) where
3232import Text.Pandoc.Definition
3333import Text.Pandoc.Shared
34+import Text.Pandoc.Generic (queryWith)
3435import Text.Printf ( printf )
3536import Data.List ( intercalate )
3637import Control.Monad.State
@@ -290,5 +291,10 @@ inlineToConTeXt (Image _ (src, _)) = do
290291 return $ braces $ "\\externalfigure" <> brackets (text src')
291292inlineToConTeXt (Note contents) = do
292293 contents' <- blockListToConTeXt contents
293− return $ text "\\footnote{" <>
294− nest 2 contents' <> char '}'
294+ let codeBlock x@(CodeBlock _ _) = [x]
295+ codeBlock _ = []
296+ let codeBlocks = queryWith codeBlock contents
297+ return $ if null codeBlocks
298+ then text "\\footnote{" <> nest 2 contents' <> char '}'
299+ else text "\\startbuffer " <> nest 2 contents' <>
300+ text "\\stopbuffer\\footnote{\\getbuffer}"