我怎样才能创建一个将.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.这是因为pandoc由Ruby / Jekyll调用,所以没有受益于htmlwidgets / rmarkdown的无形魔法.我想在我的构建过程中添加一个函数,该函数将依赖项写入html文件,如果需要,可以将其包含在Jeykll的html标题中.
解决方法
有点hacky.这个问题的官方解决方案仍未解决. yihui / knitr-jekyll:https://github.com/yihui/knitr-jekyll/issues/8有一个未决问题