devtools::build_readme() 是否使用 {webshot2} (如果已安装)?

问题描述 投票:0回答:1

我目前正在为相当特定的受众构建一个包。包本身进展顺利,但我在将 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 版本?

预先感谢您的帮助。

r r-markdown devtools flextable webshot
1个回答
0
投票

我没有找到简单的方法来执行此操作,但是

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
也可能是个好主意。

© www.soinside.com 2019 - 2024. All rights reserved.