提取 .Rmd 文件的 html 依赖项(包含 htmlwidgets)

2024-01-09

Question

我如何创建一个函数,它将 .Rmd 文件(包含 htmlwidgets 代码)作为输入,并输出包含其 JavaScript/CSS 依赖项的 html 文件?

具体来说,临时文件 rmarkdown 为 pandoc 生成--include-in-header渲染为 html 时的参数。

Details

示例——myfile.Rmd:

This is some text

```{r}
library(dygraphs)
dygraph(nhtemp, main = "New Haven Temperatures")
```

Running rmarkdown::render('myfile.Rmd')将临时文件传递给--include-in-headerpandoc 参数,包含渲染交互式图形所需的所有 JavaScript 和 CSS(压缩数据:uri 格式,或复制文件的 html 链接)。这包含在最终的 html 文件中,以便所有内容都在浏览器中呈现。我希望能够生成这个临时文件。

它似乎是通过将依赖项对象传递给内部函数来输出的rmarkdown:::html_dependencies_as_string。我希望能够为包含 htmlwidgets 代码的任意 .Rmd 文档生成此文件。

Context

我对使用 knit 和 Jekyll 写博客很感兴趣,正如 Yihui 所概述的那样here https://github.com/yihui/knitr-jekyll。然而,这种方法的缺点是 htmlwidgets 功能都不起作用,因为缺少依赖注入步骤 https://github.com/yihui/knitr-jekyll/issues/8。这是因为 pandoc 是由 Ruby/Jekyll 调用的,因此无法受益于 htmlwidgets/rmarkdown 的隐形魔法。我想在构建过程中添加一个函数,将依赖项写入 html 文件,如果需要,Jeykll 可以将其包含在 html 标头中。


这是一个可能的解决方案http://benjcunningham.org/2016/06/13/hacking-together-htmlwidgets-for-jekyll.html http://benjcunningham.org/2016/06/13/hacking-together-htmlwidgets-for-jekyll.html,这指的是一个较旧的帖子,它也提供了一个解决方案:https://brendanrocks.com/htmlwidgets-knitr-jekyll/ https://brendanrocks.com/htmlwidgets-knitr-jekyll/.

有点哈克。该问题的官方解决方案仍在等待中。 yihui/knitr-jekyll 中有一个未解决的问题:https://github.com/yihui/knitr-jekyll/issues/8 https://github.com/yihui/knitr-jekyll/issues/8

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

提取 .Rmd 文件的 html 依赖项(包含 htmlwidgets) 的相关文章

随机推荐