Blogdown新帖渲染仅显图片不显图表,已尝试方法无效求助
先给你梳理几个针对性的排查方向——毕竟旧帖和直接knit都正常,说明问题大概率出在Blogdown与Hugo的资源同步或渲染配置上:
1. 确认Goldmark配置的层级是否正确
你提到添加了unsafe=true但没生效,很可能是配置的缩进/层级不对。Hugo的配置需要严格的嵌套结构,正确的写法应该在config.toml里这样写:
[markup] [markup.goldmark] [markup.goldmark.renderer] unsafe = true
单独的[markup.goldmark.renderer]会被Hugo忽略,因为它缺少外层的[markup]和[markup.goldmark]节点。修改后重启blogdown::serve_site()再测试。
2. 检查新帖子的YAML元数据
旧帖子可能有正确的输出格式配置,而新帖子默认设置可能不兼容图表渲染。确保新帖子的YAML头部包含正确的输出类型:
--- title: "你的新帖子标题" date: 2024-05-20T10:00:00+08:00 output: blogdown::html_page ---
如果用了markdown_document之类的输出格式,knit后的图表路径可能无法被Hugo正确识别,换成blogdown::html_page能确保资源路径被Blogdown自动处理。
3. 清理Hugo缓存并重新构建
Hugo的缓存有时候会残留旧的资源映射,导致新帖子的图表路径解析错误。运行以下R命令清理缓存并重新构建:
blogdown::clean_site() blogdown::build_site()
这个操作会删除public和resources文件夹,强制Hugo重新生成所有内容和资源,能解决很多缓存导致的奇怪问题。
4. 确保用Blogdown的原生命令编织/预览
不要手动在RStudio里点"Knit"按钮生成HTML后再让Hugo渲染——这样Blogdown无法同步资源到Hugo的正确目录。应该始终用:
blogdown::serve_site()
来实时预览,或者用blogdown::build_site()生成最终站点,这样Blogdown会自动把knit生成的图表文件复制到Hugo能识别的位置。
5. 检查新帖子的资源目录结构
有时候新帖子的资源存放路径可能和旧帖不一致。Blogdown默认会把每个帖子的图表等资源放在content/posts/[你的新帖子文件夹]/index_files/下,你可以手动确认这个文件夹里有没有生成的图表图片。如果没有,说明knit过程中资源生成失败,或者路径设置有误,可以在帖子的YAML里手动指定资源目录:
--- title: "你的新帖子标题" date: 2024-05-20T10:00:00+08:00 resource_dir: "content/posts/your-new-post-folder/index_files" output: blogdown::html_page ---
按照上面的步骤逐一排查,应该能解决新帖子图表不显示的问题。
内容的提问来源于stack exchange,提问作者yuzaR

