给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),简单调用即可。如果想要稍微复杂一点,可以设计一个参考文献形式的模板。
相关的参考参考网页见:
Academic Markdown and Citations — A workflow with Pandoc, BibTEX, and the editor of your choice.
Visits: 834