Pandoc HTML变量:`quotes`和`math`

时间:2016-09-22 09:35:38

标签: html markdown pandoc

Pandoc默认HTML模板包含以下两个变量:

  • quotes

  • math

他们应该如何使用?

更具体地说,我看到quotes设置了代码<q>的值。此标记是否用于HTML转换的标记?

2 个答案:

答案 0 :(得分:1)

tl; dr:它们似乎是以前版本的pandoc中过时的遗产

quotes

pandoc提交的一些小考古显示,当pandoc从使用<q>标签切换到直接添加引号时,添加了“引号”。添加了一个新选项--html-q-tags以保留以前的行为:该选项在<q>中包含引号并将quotes设置为true,以便添加一段css代码作为在html模板中解释。请参阅this commit to pandoc并将此提交至pandoc-templates。请参阅以下文件的行为:

"hello world"

此:

pandoc test.md -t html --smart --standalone

生成(跳过通常的头部,没有影响<q>的css)

<p>“hello world”</p>

虽然这个

pandoc test.md -t html --standalone --html-q-tags --smart

生成(跳过通常的标题)

  <style type="text/css">q { quotes: "“" "”" "‘" "’"; }</style>
</head>
<body>
<p><q>hello world</q></p>
</body>

你必须使用--smart

math

看起来这是为了在独立文件中包含数学渲染脚本。请参阅2010年的this commit。我认为选择非(当前)默认数学渲染系统的一些命令行选项(如--mathml)会将此变量设置为实际有意义的值(如复制数学渲染脚本)。尝试:

pandoc -t html --mathml

答案 1 :(得分:0)

对于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。如果转换模板中没有此代码块,则不会插入脚本,也无法呈现数学。