diff options
-rw-r--r-- | MANUAL.txt | 12 | ||||
-rw-r--r-- | man/pandoc.1 | 46 | ||||
-rw-r--r-- | src/Text/Pandoc/App.hs | 6 | ||||
-rw-r--r-- | src/Text/Pandoc/Options.hs | 1 | ||||
-rw-r--r-- | src/Text/Pandoc/Writers/HTML.hs | 9 |
5 files changed, 67 insertions, 7 deletions
diff --git a/MANUAL.txt b/MANUAL.txt index 42b658af9..7a9871d8f 100644 --- a/MANUAL.txt +++ b/MANUAL.txt @@ -1217,9 +1217,21 @@ of the following options. not specified, a link to the KaTeX CDN will be inserted. Note that this option does not imply `--katex`. +`--gladtex` + +: Enclose TeX math in `<eq>` tags in HTML output. The resulting HTML + can then be processed by [GladTeX] to produce images of the typeset + formulas and an HTML file with links to these images. + So, the procedure is: + + pandoc -s --gladtex input.md -o myfile.htex + gladtex -d myfile-images myfile.htex + # produces myfile.html and images in myfile-images + [MathML]: http://www.w3.org/Math/ [MathJax]: https://www.mathjax.org [KaTeX]: https://github.com/Khan/KaTeX +[GladTeX]: http://humenda.github.io/GladTeX/ Options for wrapper scripts --------------------------- diff --git a/man/pandoc.1 b/man/pandoc.1 index ed9fdb009..5c560f11b 100644 --- a/man/pandoc.1 +++ b/man/pandoc.1 @@ -647,8 +647,7 @@ a specified full or relative path (executable or non\-executable) .B \f[C]\-M\f[] \f[I]KEY\f[][\f[C]=\f[]\f[I]VAL\f[]], \f[C]\-\-metadata=\f[]\f[I]KEY\f[][\f[C]:\f[]\f[I]VAL\f[]] Set the metadata field \f[I]KEY\f[] to the value \f[I]VAL\f[]. A value specified on the command line overrides a value specified in the -document using [YAML metadata -blocks][Extension:\f[C]yaml_metadata_block\f[]]. +document using YAML metadata blocks. Values will be parsed as YAML boolean or string values. If no value is specified, the value will be treated as Boolean true. Like \f[C]\-\-variable\f[], \f[C]\-\-metadata\f[] causes template @@ -727,6 +726,8 @@ Produce output with an appropriate header and footer (e.g. a standalone HTML, LaTeX, TEI, or RTF file, not a fragment). This option is set automatically for \f[C]pdf\f[], \f[C]epub\f[], \f[C]epub3\f[], \f[C]fb2\f[], \f[C]docx\f[], and \f[C]odt\f[] output. +For \f[C]native\f[] output, this option causes metadata to be included; +otherwise, metadata is suppressed. .RS .RE .TP @@ -1413,6 +1414,22 @@ inserted. Note that this option does not imply \f[C]\-\-katex\f[]. .RS .RE +.TP +.B \f[C]\-\-gladtex\f[] +Enclose TeX math in \f[C]<eq>\f[] tags in HTML output. +The resulting HTML can then be processed by GladTeX to produce images of +the typeset formulas and an HTML file with links to these images. +So, the procedure is: +.RS +.IP +.nf +\f[C] +pandoc\ \-s\ \-\-gladtex\ input.md\ \-o\ myfile.htex +gladtex\ \-d\ myfile\-images\ myfile.htex +#\ produces\ myfile.html\ and\ images\ in\ myfile\-images +\f[] +.fi +.RE .SS Options for wrapper scripts .TP .B \f[C]\-\-dump\-args\f[] @@ -1489,9 +1506,8 @@ arbitrary information at any point in the file. They may be set at the command line using the \f[C]\-V/\-\-variable\f[] option. If a variable is not set, pandoc will look for the key in the -document\[aq]s metadata \[en] which can be set using either [YAML -metadata blocks][Extension:\f[C]yaml_metadata_block\f[]] or with the -\f[C]\-\-metadata\f[] option. +document\[aq]s metadata \[en] which can be set using either YAML +metadata blocks or with the \f[C]\-\-metadata\f[] option. .SS Variables set by pandoc .PP Some variables are set automatically by pandoc. @@ -2081,7 +2097,25 @@ $endif$ .fi .PP This will include \f[C]X\f[] in the template if \f[C]variable\f[] has a -non\-null value; otherwise it will include \f[C]Y\f[]. +truthy value; otherwise it will include \f[C]Y\f[]. +Here a truthy value is any of the following: +.IP \[bu] 2 +a string that is not entirely white space, +.IP \[bu] 2 +a non\-empty array where the first value is truthy, +.IP \[bu] 2 +any number (including zero), +.IP \[bu] 2 +any object, +.IP \[bu] 2 +the boolean \f[C]true\f[] (to specify the boolean \f[C]true\f[] value +using YAML metadata or the \f[C]\-\-metadata\f[] flag, use \f[C]y\f[], +\f[C]Y\f[], \f[C]yes\f[], \f[C]Yes\f[], \f[C]YES\f[], \f[C]true\f[], +\f[C]True\f[], \f[C]TRUE\f[], \f[C]on\f[], \f[C]On\f[], or \f[C]ON\f[]; +with the \f[C]\-\-variable\f[] flag, simply omit a value for the +variable, e.g. +\f[C]\-\-variable\ draft\f[]). +.PP \f[C]X\f[] and \f[C]Y\f[] are placeholders for any valid template text, and may include interpolated variables or other conditionals. The \f[C]$else$\f[] section may be omitted. diff --git a/src/Text/Pandoc/App.hs b/src/Text/Pandoc/App.hs index 920462d48..a59fd9bbe 100644 --- a/src/Text/Pandoc/App.hs +++ b/src/Text/Pandoc/App.hs @@ -1403,6 +1403,12 @@ options = "URL") "" -- Use KaTeX for HTML Math + , Option "" ["gladtex"] + (NoArg + (\opt -> + return opt { optHTMLMathMethod = GladTeX })) + "" -- "Use gladtex for HTML math" + , Option "" ["abbreviations"] (ReqArg (\arg opt -> return opt { optAbbreviations = Just arg }) diff --git a/src/Text/Pandoc/Options.hs b/src/Text/Pandoc/Options.hs index 4797a3094..e5ca1764c 100644 --- a/src/Text/Pandoc/Options.hs +++ b/src/Text/Pandoc/Options.hs @@ -107,6 +107,7 @@ data EPUBVersion = EPUB2 | EPUB3 deriving (Eq, Show, Read, Data, Typeable, Gener data HTMLMathMethod = PlainMath | WebTeX String -- url of TeX->image script. + | GladTeX | MathML | MathJax String -- url of MathJax.js | KaTeX String -- url of KaTeX files diff --git a/src/Text/Pandoc/Writers/HTML.hs b/src/Text/Pandoc/Writers/HTML.hs index 535071ae2..a09ad2fda 100644 --- a/src/Text/Pandoc/Writers/HTML.hs +++ b/src/Text/Pandoc/Writers/HTML.hs @@ -58,7 +58,7 @@ import qualified Data.Text.Lazy as TL import Network.HTTP (urlEncode) import Network.URI (URI (..), parseURIReference, unEscapeString) import Numeric (showHex) -import Text.Blaze.Internal (customLeaf, MarkupM(Empty)) +import Text.Blaze.Internal (customLeaf, customParent, MarkupM(Empty)) #if MIN_VERSION_blaze_markup(0,6,3) #else import Text.Blaze.Internal (preEscapedString, preEscapedText) @@ -1029,6 +1029,13 @@ inlineToHtml opts inline = do return $ case t of InlineMath -> m DisplayMath -> brtag >> m >> brtag + GladTeX -> + return $ + customParent (textTag "eq") ! + customAttribute "env" + (toValue $ if t == InlineMath + then ("math" :: Text) + else "displaymath") $ strToHtml str MathML -> do let conf = useShortEmptyTags (const False) defaultConfigPP |