我目前正在为相当特定的受众构建一个包。包本身进展顺利,但我在将 README.Rmd 转换为 README.md 时遇到了麻烦(使用
devtools::build_readme()
。我的包中的一些函数输出 ggplot
对象,并且这些函数可以正常渲染到 GitHub README。但是,其他函数输出 flextable
对象,这些对象本质上是 HTML,GitHub 不喜欢显示。
我希望
build_readme()
能够使用 {webshot2}
来拍摄我的表格的快照,以用于非 HTML 格式,例如 github_document
,但情况似乎并非如此。我确实安装了 {webshot2}
并且 Google Chrome 是我的主要浏览器,所以我有它。我的自述文件在我的文档页面上显示良好(因为它是 HTML 页面)。
我是否缺少
build_readme()
或 {webshot2}
的东西?或者这确实是现在不可能的事情,我应该引导所有用户查看我的文档的 README 副本而不是 GitHub 版本?
预先感谢您的帮助。
我没有找到简单的方法来执行此操作,但是
flextable
支持将表格保存到 PNG 文件,您可以执行此操作,然后使用 knitr::include_graphics()
包含该文件。
例如,您的第一个示例可以修改为如下所示:
```{r include=FALSE}
flextable_to_image <- function(x, ...) {
if (inherits(x, "flextable")) {
filename <- tempfile(fileext = ".png")
flextable::save_as_image(x, filename)
knitr::include_graphics(filename)
} else
knitr::normal_print(x)
}
```
```{r num-sum, message = FALSE, render = flextable_to_image}
library(gvsu215)
num_sum(mtcars, ~wt, na_rm = TRUE)
```
最好只在使用
flextable
的块中打印 render = flextable_to_image
对象,因为 else
子句过于简化。转换后 unlink()
filename
也可能是个好主意。