pypandoc + pandoc-citeproc 将 bib 转换为 rst

pypandoc + pandoc-citeproc to convert bib to rst

我有一个带有引用的 .bib 文件,我想将该文件呈现为重​​组文本(换句话说,我的输入是一个文件 references.bib,我想要的是文件 references.rst)。该转换应该使用 Python 脚本完成,因此我尝试将 pypandoc(版本 0.9.7,pandoc 版本 1.13.1)与 pandoc-citeproc 过滤器结合使用。 pypandoc 和 pandoc 已正确安装,例如以下作品

import pypandoc
print(pypandoc.get_pandoc_version())

我的第一个想法是在 tex 或 md 文件中使用某种 nocite* 命令并将其转换。从命令行使用时(改编)example from the pandoc-citeproc issue tracker 有效:

pandoc references.tex  -o references.rst --bibliography references.bib

但是我没有成功地用 pypandoc 从 python 做同样的事情,我特别不清楚如何传递额外的参数,例如更改同上行为或指定一个 CSL style(更改 biblatex 样式似乎没有效果)。

此外,我不太喜欢 .tex 文件的解决方法。 我可以跳过那部分吗?

您可以使用 citeproc-py。您将需要:

  1. 创建一个 citeproc.CitationsStyleBibliography,将引用样式、bibtex 引用源和 reStructuredText 格式化程序传递给它;
  2. 注册您的书目来源中的每个元素;
  3. 打印参考书目。

您可以在 examples/ directory of citeproc-py, or in bibgen source code. Note that bibgen allows you to directly include a bibliography in a reStructuredText document (including Sphinx sources), see this example 中找到这些步骤的示例。