使用 pandoc 转换时如何在 YAML 标头中保留注释

时间:2021-02-19 11:59:50

标签: yaml markdown pandoc

我有一个混合了 Markdown 和 TeX 内容的 Markdown 文件,该文件旨在最终转换为 PDF。

我有一个类似这样的 YAML 标头:

---
title: "mytitle"
#author: [someone]
lang: "de"
date: \today
toc: false
toc-own-page: false
numbersections: false
listings: true
header-includes: |
    \usepackage{amsmath}
    \usepackage{mathtools}
    \usepackage{amssymb}
    \usepackage{wasysym}
    \usepackage{extarrows}
    \usepackage[iso,german]{isodate}
    \setcounter{page}{1}
---

现在我使用 pandoc 在每次保存时“美化”/格式化我的文档:

pandoc -f markdown -t markdown --standalone -Vheader-includes='' --reference-links

这会产生以下输出:

---
date: "`\\today`{=tex}"
header-includes: |
  ```{=tex}
  \usepackage{amsmath}
  \usepackage{mathtools}
  \usepackage{amssymb}
  \usepackage{wasysym}
  \usepackage{extarrows}
  \usepackage[iso,german]{isodate}
  \setcounter{page}{1}
  ```
lang: de
listings: true
numbersections: false
title: mytitle
toc: false
toc-own-page: false
---

虽然我对 {=tex} 块不满意,但我明白它们为什么有意义并且知道我可以用 -t markdown-raw_attribute 禁用它们

但是有没有办法将注释掉的作者保留在 YAML 标头块中?

1 个答案:

答案 0 :(得分:2)

Pandoc 不会保留 YAML 块中的文本表示,因此无法保留注释。您可以在未使用的 YAML 密钥前加上 _ 以避免影响其他输出。

可以将 YAML 保存在单独的文件中并使用 --metadata-file=... 包含它,这样可以轻松确保仅处理文本。

相关问题