我有一个关于从 .bib 文件生成 markdown 的问题。我发现 pandoc 可能是最有用的东西,但我的尝试失败了。我尝试使用以下 bib 文件 (refs.bib):
@article{Author:2000aaa,
author = "AuthorA, O. and AuthorB, T. and AuthorC, F.",
title = "{Some title}",
eprint = "2000.00001",
archivePrefix = "arXiv",
primaryClass = "hep-ph",
doi = "10.1111/Some.DOI",
journal = "Journal",
volume = "1",
number = "1",
pages = "111111",
year = "2000"
month = "1"
}
你知道 - 一些带有期刊记录和 arxiv 内容的通用 bib 文件。现在我想做的是将其更改为 markdown,这样静态网站生成器就可以从中创建一个网站。
我尝试过各种组合:
pandoc --citeproc --bibliography=refs.bib --csl=chicago-annotated-bibliography.csl -o refs.md
以及我在 se 或 te 上找到的任何变体 - 但都不起作用。我总是得到一个空的 refs.md 文件,我无法弄清楚。
问题如下:
- pandoc 是正确的软件吗,还是我陷入了困境?
- 如果 pandoc 是正确的地方,我该如何调用它来做我想做的事情?
- 如果 pandoc 不正确 - 替代方案是什么。
ps:手动将每个条目复制粘贴到 refs.md 显然是可行的,但不是很自动化 :(
答案1
有两种方法可以做到这一点。我使用了以下.bib
文件:
sample.bib
@article{selkirk1974french,
Author = {Selkirk, Elisabeth},
Date-Added = {2018-04-24 19:07:00 +0000},
Date-Modified = {2018-04-24 19:08:20 +0000},
Journal = {Linguistic Inquiry},
Pages = {573--590},
Publisher = {JSTOR},
Title = {French liaison and the {X$'$} notation},
Year = {1974}}
从文件开始.md
:pandoc-bib-test.md
---
bibliography: sample.bib
nocite: "@*"
---
使用以下命令将其转换为.md
包含参考书目的输出文件:
pandoc -t markdown_strict --citeproc pandoc-bib-test.md -o pandoc-bib-test-output.md --bibliography sample.bib
输出文件:pandoc-bib-test-output.md
Selkirk, Elisabeth. 1974. “French Liaison and the X′ Notation.”
*Linguistic Inquiry*, 573–90.
或者,创建一个最小.tex
文档并以相同的方式进行转换:
\documentclass{article}
\begin{document}
\nocite{*}
\bibliography{sample}
\end{document}
使用以下命令进行转换:
pandoc -t markdown_strict --citeproc pandoc-bib-test.tex -o pandoc-bib-test-output.md --bibliography sample.bib
相同的输出文件:pandoc-bib-test-output.md
Selkirk, Elisabeth. 1974. “French Liaison and the X′ Notation.”
*Linguistic Inquiry*, 573–90.