PanDoc:如何将 level-one Atx-style header (markdown) 分配给 html 标题标签的内容
PanDoc: How to assign level-one Atx-style header (markdown) to the contents of html title tag
我正在使用 PanDoc 将大量降价 (.md) 文件转换为 html。我正在使用以下 Windows command-line:
for %%i in (*.md) do pandoc -f markdown -s %%~ni.md > html/%%~ni.html
在测试 运行 中,html 看起来不错,除了标题标签 - 它是空的。这是 .md 文件开头的示例:
#Topic Title
- [Anchor 1](#anchor1)
- [Anchor 2](#anchor2)
<a name="anchor1"></a>
## Anchor 1
有什么方法可以让 PanDoc 解析
#Topic Title
这样,在 html 输出文件中,我将得到:
<title>Topic Title</title>
?
我还想解析其他 .md 标签,我认为解决这个问题将帮助我解决其余问题。
我认为 Pandoc 不支持这个 out-of-the-box。 Pandoc documentation 的相关部分指出:
Templates may contain variables. Variable names are sequences of alphanumerics, -
, and _
, starting with a letter. A variable name surrounded by $
signs will be replaced by its value. For example, the string $title$
in
<title>$title$</title>
will be replaced by the document title.
然后继续:
Some variables are set automatically by pandoc. These vary somewhat depending on the output format, but include metadata fields (such as title, author, and date) as well as the following:
并继续列出一堆变量(none 其中与您的问题相关)。但是,上面的引用表明 title
变量是一个元数据字段。元数据字段可以在 pandoc_title_block, a yaml_metadata_block, or passed in as a command line option.
中定义
文档指出:
... you may also keep the metadata in a separate YAML file and pass it to pandoc as an argument, along with your markdown files ...
所以你有几个选择:
- 编辑每个文档以添加定义每个文档标题的元数据(这可能是脚本化的)。
- 编写脚本以提取标题(可能是在第一行中查找
#header
的正则表达式)并将其作为命令行选项传递给 Pandoc。
如果您打算开始在您创建的新文档中包含元数据,那么第一个选项可能是可行的方法。 运行 一次脚本即可批量编辑您的文档,然后就完成了。但是,如果您无意向任何文档添加元数据,我会考虑第二种选择。你已经 运行 一个循环,所以在你的循环中调用 Pandoc 之前获取标题(尽管我不确定如何在 windows 脚本中做到这一点)。
我正在使用 PanDoc 将大量降价 (.md) 文件转换为 html。我正在使用以下 Windows command-line:
for %%i in (*.md) do pandoc -f markdown -s %%~ni.md > html/%%~ni.html
在测试 运行 中,html 看起来不错,除了标题标签 - 它是空的。这是 .md 文件开头的示例:
#Topic Title
- [Anchor 1](#anchor1)
- [Anchor 2](#anchor2)
<a name="anchor1"></a>
## Anchor 1
有什么方法可以让 PanDoc 解析
#Topic Title
这样,在 html 输出文件中,我将得到:
<title>Topic Title</title>
?
我还想解析其他 .md 标签,我认为解决这个问题将帮助我解决其余问题。
我认为 Pandoc 不支持这个 out-of-the-box。 Pandoc documentation 的相关部分指出:
Templates may contain variables. Variable names are sequences of alphanumerics,
-
, and_
, starting with a letter. A variable name surrounded by$
signs will be replaced by its value. For example, the string$title$
in<title>$title$</title>
will be replaced by the document title.
然后继续:
Some variables are set automatically by pandoc. These vary somewhat depending on the output format, but include metadata fields (such as title, author, and date) as well as the following:
并继续列出一堆变量(none 其中与您的问题相关)。但是,上面的引用表明 title
变量是一个元数据字段。元数据字段可以在 pandoc_title_block, a yaml_metadata_block, or passed in as a command line option.
文档指出:
... you may also keep the metadata in a separate YAML file and pass it to pandoc as an argument, along with your markdown files ...
所以你有几个选择:
- 编辑每个文档以添加定义每个文档标题的元数据(这可能是脚本化的)。
- 编写脚本以提取标题(可能是在第一行中查找
#header
的正则表达式)并将其作为命令行选项传递给 Pandoc。
如果您打算开始在您创建的新文档中包含元数据,那么第一个选项可能是可行的方法。 运行 一次脚本即可批量编辑您的文档,然后就完成了。但是,如果您无意向任何文档添加元数据,我会考虑第二种选择。你已经 运行 一个循环,所以在你的循环中调用 Pandoc 之前获取标题(尽管我不确定如何在 windows 脚本中做到这一点)。