如何在保留PDF所需元数据的同时禁用Pandoc Markdown的YAML头部输出
解决方法
你遇到的是Apostrophe编辑器默认未开启Pandoc语法支持导致的问题,通用Markdown解析规则无法识别开头的YAML前置元数据块,会将其当作普通文本渲染。你可以根据需求选择以下任意一种方案处理:
方案1:切换编辑器的Markdown解析模式
这是成本最低的解决方式:
- 打开Apostrophe编辑器的设置界面,找到Markdown解析模式的配置项
- 把默认的通用Markdown模式切换为Pandoc Markdown模式
- 保存设置后重启编辑器,原有YAML块会被自动识别为元数据,不会再在预览区显示,也完全不影响PDF生成时的参数读取。
方案2:拆分元数据到独立文件
如果不想修改编辑器配置,可以把YAML内容单独存为一个metadata.yaml文件,生成PDF时在pandoc命令里加上--metadata-file metadata.yaml参数指定读取该配置即可,主Markdown文件删掉YAML块自然就不会有显示问题。
方案3:用隐藏标签包裹YAML块
如果需要把元数据保留在同一个Markdown文件里,可以给现有YAML块外层套上隐藏属性的HTML标签,写法如下:
<div style="display: none"> --- lang: En-GB date: 15.06.2021 author: max subtitle: 'How to disable YAML header printing as header' title: "Markdown Tutorial" geometry: margin=3cm fontfamily: default fontsize: 12pt ... </div>
Pandoc可以正常读取块内的YAML元数据,编辑器预览时会识别CSS隐藏属性,不会显示这部分内容。
内容的提问来源于stack exchange,提问作者Zubeyir
相关产品推荐
相关产品推荐

