diff options
-rw-r--r-- | data/templates/default.asciidoctor | 3 | ||||
-rw-r--r-- | src/Text/Pandoc/Writers/AsciiDoc.hs | 8 | ||||
-rw-r--r-- | test/writer.asciidoctor | 1 |
3 files changed, 11 insertions, 1 deletions
diff --git a/data/templates/default.asciidoctor b/data/templates/default.asciidoctor index 7668a8325..2616b05d6 100644 --- a/data/templates/default.asciidoctor +++ b/data/templates/default.asciidoctor @@ -15,6 +15,9 @@ $endif$ $if(toc)$ :toc: $endif$ +$if(math)$ +:stem: latexmath +$endif$ $endif$ $if(abstract)$ diff --git a/src/Text/Pandoc/Writers/AsciiDoc.hs b/src/Text/Pandoc/Writers/AsciiDoc.hs index a33fd8916..c67178b7a 100644 --- a/src/Text/Pandoc/Writers/AsciiDoc.hs +++ b/src/Text/Pandoc/Writers/AsciiDoc.hs @@ -62,6 +62,7 @@ data WriterState = WriterState { defListMarker :: String , intraword :: Bool , autoIds :: Set.Set String , asciidoctorVariant :: Bool + , hasMath :: Bool } defaultWriterState :: WriterState @@ -71,6 +72,7 @@ defaultWriterState = WriterState { defListMarker = "::" , intraword = False , autoIds = Set.empty , asciidoctorVariant = False + , hasMath = False } -- | Convert Pandoc to AsciiDoc. @@ -101,11 +103,13 @@ pandocToAsciiDoc opts (Pandoc meta blocks) = do meta body <- vcat <$> mapM (elementToAsciiDoc 1 opts) (hierarchicalize blocks) let main = render colwidth body + st <- get let context = defField "body" main $ defField "toc" (writerTableOfContents opts && isJust (writerTemplate opts)) - $defField "titleblock" titleblock metadata + $ defField "math" (hasMath st) + $ defField "titleblock" titleblock metadata case writerTemplate opts of Nothing -> return main Just tpl -> renderTemplate' tpl context @@ -422,12 +426,14 @@ inlineToAsciiDoc _ (Code _ str) = return $ inlineToAsciiDoc _ (Str str) = return $ text $ escapeString str inlineToAsciiDoc _ (Math InlineMath str) = do isAsciidoctor <- gets asciidoctorVariant + modify $ \st -> st{ hasMath = True } let content = if isAsciidoctor then text str else "$" <> text str <> "$" return $ "latexmath:[" <> content <> "]" inlineToAsciiDoc _ (Math DisplayMath str) = do isAsciidoctor <- gets asciidoctorVariant + modify $ \st -> st{ hasMath = True } let content = if isAsciidoctor then text str else "\\[" <> text str <> "\\]" diff --git a/test/writer.asciidoctor b/test/writer.asciidoctor index 2bd449fea..eee335b33 100644 --- a/test/writer.asciidoctor +++ b/test/writer.asciidoctor @@ -1,6 +1,7 @@ = Pandoc Test Suite John MacFarlane; Anonymous July 17, 2006 +:stem: latexmath This is a set of tests for pandoc. Most of them are adapted from John Gruber’s markdown test suite. |