aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/templates/default.asciidoctor3
-rw-r--r--src/Text/Pandoc/Writers/AsciiDoc.hs8
-rw-r--r--test/writer.asciidoctor1
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.