我正在使用PanDoc将大量markdown(.md)文件转换为html。我使用以下Windows命令行:
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标签我想解析,我认为解决这个问题会帮助我解决剩下的问题。
答案 0 :(得分:1)
我不相信Pandoc支持这种开箱即用的功能。 Pandoc documentation的相关部分指出:
模板可能包含变量。变量名称是字母数字序列,
中的字符串-
和_
,以字母开头。由$
符号包围的变量名称将替换为其值。例如,$title$
<title>$title$</title>
将替换为文档标题。
然后继续:
pandoc会自动设置一些变量。这些根据输出格式有所不同,但包括元数据字段(如标题,作者和日期)以及以下内容:
然后列出一堆变量(没有一个与你的问题相关)。但是,上面的引用表明title
变量是元数据字段。元数据字段可以在pandoc_title_block,yaml_metadata_block中定义,也可以command line option传入。
文档指出:
...您也可以将元数据保存在单独的YAML文件中,并将其作为参数传递给pandoc,以及您的markdown文件......
所以你有几个选择:
#header
的正则表达式)并将其作为命令行选项传递给Pandoc。如果您打算在未来创建的新文档中包含元数据,那么第一个选项可能就是您的选择。运行一次脚本批量编辑文档然后完成。但是,如果您无意向任何文档添加元数据,我会考虑第二个选项。你已经在运行一个循环了,所以在你的循环中调用Pandoc之前得到标题(尽管我不知道如何在windows脚本中这样做)。