使用 CSS 为 Graphviz 进行样式设置

主要观点:介绍了Noncombatant相关的多个链接,包括关于、其他写作、Bandcamp 等,还展示了一个带有特定内容的 SVG 图形及其在不同模式下的显示效果,讲述了如何让 Graphviz 生成的 SVG 图形在网页中适应光暗模式,包括使用 CSS 样式、直接嵌入 SVG 到 HTML 中、处理 Graphviz 插入的属性等,同时提到了需要为 SVG 提供替代文本(通过rolearia-label)。
关键信息:

  • 提供了多个相关链接:NoncombatantAboutOther WritingBandcamp
  • 展示了一个名为“gourd”到“pumpkin”到“squash”再到“decoration”的有向无环图(directed, acyclic gourd)。
  • 说明了装饰葫芦季即将结束,该图的相关性也将结束。
  • 介绍了让 Graphviz 生成的 SVG 适应光暗模式的方法,如使用 CSS 样式、直接嵌入 SVG 到 HTML 中、用sed处理 Graphviz 插入的属性等。
  • 提到为嵌入 HTML 的 SVG 提供替代文本的方式(使用rolearia-label)。
    重要细节:
  • CSS 核心代码::root { color-scheme: light dark; --fg: light-dark(#333, #ccc); --bg: light-dark(#fff, #333); } body { background-color: var(--bg); color: var(--fg); font-family: "Helvetica Neue"; }.node { stroke: var(--fg); fill: var(--fg); }.edge { fill: var(--fg); stroke: var(--fg); } text { font-family: inherit; font-size: 70%; }
  • Graphviz 文件内容:digraph { splines = polyline rankdir = LR bgcolor = transparent node [ shape = circle margin = 0.1 width = 1 ] edge [ margin = 0.1 ] gourd [ label = "gourd" ] pumpkin [ label = "pumpkin" ] squash [ label = "squash" ] decoration [ label = "decoration", shape = doublecircle ] gourd -> pumpkin pumpkin -> squash squash -> decoration },注意其中的bgcolor = transparent
  • 渲染 SVG 的管道命令:dot -Tsvg test.dot | sed -E -e s'/(fill|stroke)="black"/\\1="var(--fg)"/g' > test.svgsed-E选项用于使用 POSIX 扩展正则表达式。
阅读 4
0 条评论