首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过servr在Jekyll博客中启用rmarkdown / pandoc-citeproc引用

通过servr在Jekyll博客中启用rmarkdown / pandoc-citeproc引用
EN

Stack Overflow用户
提问于 2015-08-19 15:52:09
回答 1查看 360关注 0票数 2

我把我的rmarkdown-Jekyll-博客建立在益辉的奇异样板上,因为它使用了servr::jekyll(),这反过来又包装了knitr

一切都很好,除了我无法让rmarkdown-citations工作(我相信这反过来只是包装pandoc-citeproc )。

所以当我添加一些bibliography.bib

代码语言:javascript
复制
  @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/},
  }

在目录中,用bibliography: ../bibliography.bibbibliography: bibliography.bib修改样板bibliography: bibliography.bib的序言(参见下面),并将其添加到样板本身:

代码语言:javascript
复制
## Citations

Work like this: [@Yihui-2015]
See the references at the very bottom.

我得到的是:

[

为了确认我的设置是正确的,我跑了

代码语言:javascript
复制
library(rmarkdown)
render(input = "_source/2014-09-28-jekyll-with-knitr.Rmd")

它生成一个带有引文的HTML,正如预期的那样:

[

在某种程度上,这并不奇怪,因为根据样板

当对应的Markdown输出文件成为older1而不是源文件时,它们会被重新编译;

servr::jekyll 当前通过不处理引用的 knitr 运行文件,而不通过 rmarkdown::render**,运行文件。**

我如何才能使它工作和/或这是一个值得增加的servr

Ps.:rmarkdown::render,所有其他条件相同,都是在它自己的R会话中执行的(对吗?),工作目录是呈现的文件的目录,所以需要../bibliography.bib才能工作。您可能会认为,从博客目录根目录运行的servr::jekyll将在其R会话中使用该目录作为工作目录,因此可以找到bibliography.bib。我可能错了。总之,这是细节,而不是问题的核心。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-20 15:05:21

结果,我看得不够仔细:

rmdv2()而不是jekyll()是我问题的答案。

从手册中:

函数rmdv1()和rmdv2()类似于jekyll(),唯一的区别是编译rmarkdown文档的方法: rmdv1()通过knit2html()使用标记包(a.k.a R Markdown v1),在rmarkdown包(a.k.a rmarkdown v2)中使用rmdv2()调用呈现()。

因为pandoc-style引文是在R Markdown v2中介绍的,所以我需要rmdv2()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32100302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档