我将我的rmarkdown
- Jekyll-Blog从Yihui的fantastic boilerplate开始使用servr::jekyll()
,然后使用knitr
。{/ p>
一切都花花公子,除了我无法获得rmarkdown
- 引用工作(我相信它会包裹pandoc-citeproc
。)
所以当我添加一些bibliography.bib
@Manual{Yihui-2015,
title = {knitr: A General-Purpose Package for Dynamic Report
Generation in R},
author = {Yihui Xie},
year = {2015},
note = {R package version 1.11},
url = {http://yihui.name/knitr/},
}
到目录,使用2014-09-28-jekyll-with-knitr.Rmd
或bibliography: ../bibliography.bib
(见下文)修改样板bibliography: bibliography.bib
的序言,并将其添加到样板文件本身:
## Citations
Work like this: [@Yihui-2015]
See the references at the very bottom.
这就是我得到的:
[
为了确认我的设置实际上是正确的,我跑了
library(rmarkdown)
render(input = "_source/2014-09-28-jekyll-with-knitr.Rmd")
按预期生成带有引用的HTML :
[
在某种程度上,这并不奇怪,因为根据样板
当相应的Markdown输出文件变得比源文件更旧时,通过knitr重新编译R Markdown源文件;
所以servr::jekyll
目前通过knitr
运行文件而不处理引文,而不是rmarkdown::render
。
我怎样才能让这个工作和/或对servr
有用呢?
Ps.: rmarkdown::render
,所有其他条件相同,都在自己的R会话中执行(对吗?),工作目录是渲染文件的目录,所以你需要../bibliography.bib
才能发挥作用。
您会认为从博客目录的根运行的servr::jekyll
会将其用作其R会话中的工作目录,因此可以找到bibliography.bib
。
我错了。
无论如何,这是详细的,而不是问题的核心。
答案 0 :(得分:0)
事实证明,我没有仔细阅读本手册:
rmdv2()
代替jekyll()
是我问题的答案。
从手册:
函数rmdv1()和rmdv2()类似于jekyll(),唯一的区别是编译R Markdown文档的方法:rmdv1()通过knit2html()使用markdown包(又名R Markdown v1),和rmdv2()在rmarkdown包中调用render()(又名R Markdown v2)。
因为在{Markdown v2'中引入pandoc
式引文,我需要rmdv2()
。