Pandoc HTML 变量:`quotes` 和 `math`
Pandoc HTML variables: `quotes` and `math`
Pandoc 默认 HTML 模板包含这两个变量:
quotes
,
math
.
它们应该如何使用?
更具体地说,我看到 quotes
设置了标签 <q>
的值。此标记是否用于降价到 HTML 转换?
tl;dr:它们似乎大多是以前版本的 pandoc
的过时遗留物
quotes
pandoc 提交的一点考古表明,当 pandoc 从使用 <q>
标签切换到直接添加引号时,添加了 'quotes'。添加了一个新选项 --html-q-tags
以保持以前的行为:该选项在 <q>
中包装引号并将 quotes
设置为 true
以便 css按照 html 模板中的说明添加代码。参见 this commit to pandoc and this commit to pandoc-templates。查看以下文件的行为:
"hello world"
这个:
pandoc test.md -t html --smart --standalone
产生(跳过通常的头部,没有 css 影响 <q>
)
<p>“hello world”</p>
虽然这
pandoc test.md -t html --standalone --html-q-tags --smart
产生(跳过通常的 header)
<style type="text/css">q { quotes: "“" "”" "‘" "’"; }</style>
</head>
<body>
<p><q>hello world</q></p>
</body>
不过你必须使用 --smart
。
math
看起来这是为了在独立文件中包含数学渲染脚本。请参阅 2010 年的 this commit。我认为一些 command-line 选择非(当前)默认数学渲染系统的选项,如 --mathml
,将此变量设置为实际有意义的值(如复制数学渲染脚本)。尝试:
pandoc -t html --mathml
对于quotes
变量,见@scoa。
关于 math
变量,我发现了以下内容。
使用MathML时,即选项--mathml
,代码块:
$if(math)$
$math$
$endif$
在默认的 HTML 转换模板中向 HTML 输出添加了一个可移植性脚本。
无论如何,Chrome 和 Edge 目前不支持 MathML 而 Firefox 似乎在没有这个脚本的情况下支持它。
因此,对于自定义模板,删除 $if(math)$ ...
代码块不会影响 MathML 渲染。
使用 MathJax 时,选项 --mathjax
、$if(math)$ ...
添加到 HTML 输出脚本块:
<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_CHTML-full" type="text/javascript"></script>
这是呈现数学公式所必需的。
当使用 --latexmathml
时,$if(math)$ ...
代码块插入了一个巨大的 script,将 LaTeX 样式数学转换为 MathML。如果转换模板中没有此代码块,则不会插入脚本,也无法呈现数学。
Pandoc 默认 HTML 模板包含这两个变量:
quotes
,math
.
它们应该如何使用?
更具体地说,我看到 quotes
设置了标签 <q>
的值。此标记是否用于降价到 HTML 转换?
tl;dr:它们似乎大多是以前版本的 pandoc
的过时遗留物quotes
pandoc 提交的一点考古表明,当 pandoc 从使用 <q>
标签切换到直接添加引号时,添加了 'quotes'。添加了一个新选项 --html-q-tags
以保持以前的行为:该选项在 <q>
中包装引号并将 quotes
设置为 true
以便 css按照 html 模板中的说明添加代码。参见 this commit to pandoc and this commit to pandoc-templates。查看以下文件的行为:
"hello world"
这个:
pandoc test.md -t html --smart --standalone
产生(跳过通常的头部,没有 css 影响 <q>
)
<p>“hello world”</p>
虽然这
pandoc test.md -t html --standalone --html-q-tags --smart
产生(跳过通常的 header)
<style type="text/css">q { quotes: "“" "”" "‘" "’"; }</style>
</head>
<body>
<p><q>hello world</q></p>
</body>
不过你必须使用 --smart
。
math
看起来这是为了在独立文件中包含数学渲染脚本。请参阅 2010 年的 this commit。我认为一些 command-line 选择非(当前)默认数学渲染系统的选项,如 --mathml
,将此变量设置为实际有意义的值(如复制数学渲染脚本)。尝试:
pandoc -t html --mathml
对于quotes
变量,见@scoa。
关于 math
变量,我发现了以下内容。
使用MathML时,即选项--mathml
,代码块:
$if(math)$
$math$
$endif$
在默认的 HTML 转换模板中向 HTML 输出添加了一个可移植性脚本。
无论如何,Chrome 和 Edge 目前不支持 MathML 而 Firefox 似乎在没有这个脚本的情况下支持它。
因此,对于自定义模板,删除 $if(math)$ ...
代码块不会影响 MathML 渲染。
使用 MathJax 时,选项 --mathjax
、$if(math)$ ...
添加到 HTML 输出脚本块:
<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_CHTML-full" type="text/javascript"></script>
这是呈现数学公式所必需的。
当使用 --latexmathml
时,$if(math)$ ...
代码块插入了一个巨大的 script,将 LaTeX 样式数学转换为 MathML。如果转换模板中没有此代码块,则不会插入脚本,也无法呈现数学。