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

How to keep comments in YAML header when converting w/ pandoc

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

我有一个 YAML header,内容如下:

---
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 'prettify'/在每次保存时格式化我的文档:

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

禁用它们

但是有没有办法将 commented-out 作者保留在 YAML header 块中?

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

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