devtools::build_readme()是否会调用{webshot2}处理flextable生成README.md?
解决flextable在GitHub README中无法显示的问题
核心原因
devtools::build_readme()本质是调用rmarkdown::render()渲染github_document格式,但默认情况下,github_document不会自动触发webshot2把flextable转成图片——flextable本身是HTML输出,GitHub的Markdown渲染器不支持直接解析HTML表格,必须手动触发转图逻辑。
具体解决方案
1. 在README.Rmd中配置knitr和输出格式
在README.Rmd开头的YAML块里,明确指定github_document参数,并开启flextable的转图选项:
--- output: github_document: html_preview: true ---
然后在代码块开头设置knitr全局选项,强制flextable输出为图片:
knitr::opts_chunk$set(flextable.as_image = TRUE)
或者单独处理flextable,先将其保存为图片再引用:
library(flextable) # 生成表格并保存为图片 my_table <- flextable(mtcars[1:5, ]) my_table %>% save_as_image("man/figures/table_preview.png")
之后在README.Rmd里直接引用这张图片:

2. 确认webshot2的Chrome配置
即便已安装Chrome和webshot2,仍需验证工具能否正常调用浏览器:
# 检查Chrome是否可被识别 webshot2::is_chrome_installed() # 若返回FALSE,手动指定Chrome路径(Windows示例) webshot2::set_chrome_path("C:/Program Files/Google/Chrome/Application/chrome.exe")
3. 手动触发渲染流程
如果devtools的自动流程仍不生效,可绕过封装直接用rmarkdown手动渲染:
rmarkdown::render("README.Rmd", output_format = "github_document")
备选方案
如果以上配置均无法生效,说明当前devtools::build_readme()的自动流程确实未覆盖flextable转图场景。这种情况下,可在GitHub README顶部添加提示,引导用户访问pkgdown生成的包文档页面——HTML格式可完美展示flextable。
内容的提问来源于stack exchange,提问作者icurtis
相关产品推荐
相关产品推荐

