Restored and undeprecated gladtex for HTML math.

- Added `GladTeX` constructor to `Text.Pandoc.Options.HTMLMathMethod`
  [API change, reverts removal in v2.2]
- Restored and undeprecated `--gladtex` option, removed in v2.2.

Closes #4607.
This commit is contained in:
John MacFarlane 2018-05-09 11:29:20 -07:00
parent d3be567a73
commit b7356d3ddf
5 changed files with 67 additions and 7 deletions

View file

@ -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
---------------------------

View file

@ -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.

View file

@ -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 })

View file

@ -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

View file

@ -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