jekyll / knitr:自动regen rmd AND --watch

时间:2015-09-29 05:24:04

标签: r jekyll rstudio knitr

我努力让knitr和jekyll玩得很好。我想自动重新生成我的网站,重新编译RMD,如果RMD更改(由servr处理)任何会触发常规重建的内容(如jekyll serve --watch中所示)。 / p>

目前我使用的servr::jekyll()会在我修改RMD时自动重新生成我的网站 - 这很棒。

但是,如果我只修改普通的MD文件(通常会在jekyll serve --watch中触发重建),则不会重建该网站。

如果我尝试通过--watch例如

servr::jekyll(command='jekyll serve --watch')
# or
servr::jekyll(command='jekyll build --watch')

然后:

  • 使用jekyll serve --watch,看起来每次更改MD或RMD文件时都会重新生成网站,但RMD不会重新编译 - 如果他们已经更改并提供服务,jekyll会更新MD,但是不重新编译RMD。
  • 使用jekyll build --watch,该网站未提供服务(我猜这并不奇怪,即使serve=T也没有服务),更新行为似乎与{{ 1}} - MD已更新,但RMD未重新编译。
  • 如果我在RStudio中这样做,我就无法返回到提示符 - 我得到的对话框试图让我强制退出并最终导致会话崩溃。然后我必须找到仍在运行的jekyll进程和serve --watch它。

我想这是因为kill对jekyll的调用没有回复,所以你永远不会回到R --watch来自己观看?即使使用servrdaemon=TRUE似乎也无法重新编写RMD。

所以我的问题是,我怎么能得到(我能得到吗?):

  • 根据servr行为,
  • 正常网站重新生成
  • 根据jekyll serve --watch自动进行RMD重新编译?

我现在正在使用jekyll 2.4.0。

1 个答案:

答案 0 :(得分:-1)

目前,如果您在一个单独的终端中运行jekyll build --watch,它们会同时运行。不是一个理想的解决方案,但在此期间还不错。