You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R Quarto中使用Mermaid与FontAwesome无法渲染图标怎么办?

解决Quarto/R Markdown中Mermaid嵌入FontAwesome图标的渲染问题

一、HTML/Reveal.JS 输出场景

这类Web格式下,Mermaid已生成FontAwesome对应的<i>标签,但缺少样式文件导致图标不显示。直接在Quarto文档的YAML配置中启用内置FontAwesome支持即可:

---
title: "演示文档"
format:
  html:
    fontawesome: true
  revealjs:
    fontawesome: true
---

添加配置后,Quarto会自动引入FontAwesome的CSS资源,<i class="fab fa-twitter"></i>这类标签就能正常渲染为图标。

二、PPTX 输出场景

PPTX是静态文档,不支持Web端的CSS和HTML标签,因此Mermaid的fa:*语法无法直接生效。需将FontAwesome图标转为静态图片,再嵌入Mermaid流程图:

步骤1:用R的fontawesome包生成图标图片

安装并加载fontawesome包,生成所需的图标PNG文件:

install.packages("fontawesome")
library(fontawesome)

# 生成所需的FontAwesome图标图片
fa_png(name = "twitter", fill = "#1DA1F2", width = 24) %>% writeBin("twitter.png")
fa_png(name = "ban", fill = "#dc3545", width = 24) %>% writeBin("ban.png")
fa_png(name = "spinner", fill = "#6c757d", width = 24) %>% writeBin("spinner.png")
fa_png(name = "camera-retro", fill = "#28a745", width = 24) %>% writeBin("camera-retro.png")

步骤2:修改Mermaid代码,使用图片替代fa:*语法

将原来的fa:*替换为Mermaid的图片引用语法![alt文本](图片路径):

flowchart TD
    B["![Twitter图标](twitter.png) for peace"]
    B-->C[![禁止图标](ban.png) forbidden]
    B-->D(![加载图标](spinner.png))
    B-->E(A ![相机图标](camera-retro.png) perhaps?)

渲染PPTX时,这些图片会被嵌入文档,实现图标的正常显示。

通用注意事项

  • 若使用本地FontAwesome资源而非Quarto内置版本,可将CSS文件放在项目目录中,通过include-in-header引入,避免依赖外部链接。
  • 对于PDF等其他非Web输出格式,处理逻辑与PPTX一致,需将图标转为静态图片嵌入Mermaid。

内容的提问来源于stack exchange,提问作者wergeld

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 22:10:36