给Markdown添加引用文献功能

给Markdown添加引用文献功能

用Markdown进行写作非常方便,但是作为还算看过一些文献的人,总忍不住想让它能方便地进行文献引用。

最简单的想法是通过bibtex文件来进行引用,类似在$\LaTeX$中的方式,我们可以通过简单的键入bibtex文件中的关键字来实现引用,如

以往的研究参见[@peterson2013]。或者类似$\LaTeX$的形式:

自从这个目标被发现 \citep{Schmidt1963},\citealt{Smith1985}对其展开了非常深入的研究。

然后在Markdown文件的适当位置添加此处注入参考文献的标记,如 [@refhere]或者 \refhere,这样就可以在相应的位置列出参考文献。我最先的想法是做一个类似bibtex的工具,可以通过bst文件人为定义参考文献的样式;已经有一些前期的工作让这个想法的工作量并不是特别高,如我发现有人开发了一个python版本的pybtex,使用方法和原来的bibtex完全一致,但是这样就提供了相应的python接口,我们把本来要输出成的.bbl文件加工改造成输出.md格式文档,看起来似乎并不难。pybtex的详情参见其官方网页,他们的代码地址在https://bitbucket.org/pybtex-devs/pybtex/src/master/

甚至更进一步地,我们可以类似$\TeX$中宏包的做法,通过配置文件人为定制命令,然后在md文件中插入这些命令,进而编译md文件。真这样做可能就有点过头了,Markdown本来就是因为$\TeX$太重才引入的轻量级语法,如果弄这么复杂为什么不直接使用$\LaTeX$呢。但是仅仅想把参考文献编译进去还是非常可取的。

上述的使用pybtex来生成参考文献的做法可能还是太过厚重,更轻量级的做法可以是直接解析.bib文件,预设好参考文献的格式,现在已经有解析.bib文件的python包(bibtexparser, github下载地址https://github.com/sciunto-org/python-bibtexparser),简单调用即可。如果想要稍微复杂一点,可以设计一个参考文献形式的模板。


相关的参考参考网页见:

Bibtex格式说明

文献数据库 | BibTeX文件读取的Python实现

python-bibtexparser

Academic Markdown and Citations — A workflow with Pandoc, BibTEX, and the editor of your choice.

R Markdown Cookbook

bibtextomd

adstex

BibDesk

pandoc

BibTeX的使用方法

Visits: 834

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

*