我怎样才能创建一个将.Rmd文件(包含htmlwidgets代码)作为输入的函数,并输出一个包含其JavaScript / CSS依赖项的html文件?
具体来说,当渲染为html时,临时文件rmarkdown为pandoc' --include-in-header
参数生成。
示例 - myfile.Rmd:
This is some text
```{r}
library(dygraphs)
dygraph(nhtemp, main = "New Haven Temperatures")
```
运行rmarkdown::render('myfile.Rmd')
将临时文件传递给--include-in-header
pandoc参数,其中包含呈现交互式图形所需的所有JavaScript和CSS(压缩数据:uri格式或复制文件的html链接)。这包含在最终的html文件中,因此所有内容都在浏览器中呈现。这是我希望能够生成的临时文件。
它似乎是通过将依赖项对象传递给内部函数rmarkdown:::html_dependencies_as_string
来输出的。我希望能够为包含htmlwidgets代码的任意.Rmd文档生成此文件。
我对使用knitr和Jekyll的博客感兴趣,因为Yihui概述了here。但是,这种方法的缺点是htmlwidgets功能都不起作用,因为dependency injection step is missed。这是因为Ruby / Jekyll调用了pandoc,因此不会受益于htmlwidgets / rmarkdown的隐形魔法。我想在我的构建过程中添加一个函数,该函数将依赖项写入html文件,如果需要,可以将其包含在Jeykll的html标题中。
答案 0 :(得分:-1)
这是一个可能的解决方案http://benjcunningham.org/2016/06/13/hacking-together-htmlwidgets-for-jekyll.html,它指的是也提供解决方案的旧帖子:https://brendanrocks.com/htmlwidgets-knitr-jekyll/。
有点hacky。这个问题的官方解决方案仍未解决。 yihui / knitr-jekyll有一个未解决的问题:https://github.com/yihui/knitr-jekyll/issues/8