惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
About on SuperTechFans
Y
Y Combinator Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Security Blog
Microsoft Security Blog
aimingoo的专栏
aimingoo的专栏
I
InfoQ
C
Check Point Blog
IT之家
IT之家
MyScale Blog
MyScale Blog
Apple Machine Learning Research
Apple Machine Learning Research
Vercel News
Vercel News
Last Week in AI
Last Week in AI
GbyAI
GbyAI
P
Proofpoint News Feed
量子位
Stack Overflow Blog
Stack Overflow Blog
Microsoft Azure Blog
Microsoft Azure Blog
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
人人都是产品经理
人人都是产品经理
B
Blog
T
The Blog of Author Tim Ferriss
H
Help Net Security
云风的 BLOG
云风的 BLOG

ipfans's Blog

程序员的提示工程手册 AI 产品的破局之道:以人为本 使用 Go 开发 AI Agent的选择:Genkit for Go RAG 技术在实际工程中的应用:OpenAI 的最佳实践分享 从零学习 Hypothetical Document Embeddings (HyDE) - 2 从零学习 Hypothetical Document Embeddings (HyDE) - 1 No GIL Python 的冒险 使用 Ollama 快速部署本地开源大语言模型 使用子解释器运行Python并行应用 Twirp初相识 Twirp基本概念:Hooks和Interceptors 去年的一点小工作(1):从BFF谈起 Byebye 2022, Hello 2023 一些实用工具列表 Go 1.17 泛型尝鲜 Go Web应用中常见的反模式 什么是事件建模Event Modeling? 构建属于你自己的dapr绑定组件 构建属于你自己的dapr服务发现
给hugo添加mermaid支持
2022-12-27 · via ipfans's Blog

Featured image of post 给hugo添加mermaid支持

发现2022年居然一篇博客都没写,一方面是疫情原因实在太糟心,另外一方面是环境使然,2022年一年都在适应新环境和拼命的推动项目前行。立个Flag,保证明年至少一个季度有一篇文章吧。

这篇文章是为了提示如何在hugo中添加mermaid支持,mermaid是一个流程图的工具,可以在markdown中直接使用,非常方便。其实在hugo官方文档中已经有了说明,但是我在使用的时候发现对新人不是特别友好,所以这里记录一下,顺便水一个。

官方文档中,第一步是在主题目录下创建对应Mermaid文件,这个按照官方文档操作即可,但是第二步其实说的有点模糊。最开始我按照官方文档进行添加,发现实际并未生效。我猜测是主题不支持的原因。因此我换了一种实现方式。

其实第二个步主要说的是在.Content内容之后进行添加代码。我们可以搜索一下主题中哪里使用了{{ .Content。为什么添加了一下前面的{{ ?因为这个是Go的模版语法,因为每个主题不一样,可能存在其他叫做.Content的变量或者内容,为了尽量排除干扰项可以这样搜索。当然如果你还是没搜索到,可能需要使用.Content再来一次。

在我的主题中,可以看到在layouts/partials/article/components/content.html文件中使用了.Content,因此我们可以在这个文件添加代码:

     {{ .Content | replaceRE "(<table>(?:.|\n)+?</table>)" $wrappedTable | safeHTML }}
+    {{ if .Page.Store.Get "hasMermaid" }}
+    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
+    <script>
+        mermaid.initialize({ startOnLoad: true });
+    </script>
+    {{ end }}

实际效果如下:

sequenceDiagram
    participant Alice
    participant Bob
    Alice->>John: Hello John, how are you?
    loop Healthcheck
        John->>John: Fight against hypochondria
    end
    Note right of John: Rational thoughts <br/>prevail!
    John-->>Alice: Great!
    John->>Bob: How about you?
    Bob-->>John: Jolly good!

当然,你也可以图省事使用第三方服务,比如说我之前推荐过的Kroki

![Kroki](https://kroki.io/bytefield/svg/eNqllcuOmzAUhvd5iiPPJiyQgDDMDNt20327QixMMBfF2BRMQzri3WsM4T7MpYkUC_P59_F_znGOIYmwEEUJbhDrcUEIg1c3SikF9ICNKMIGarTDcYbdCKX8OnJRtM3lKbtMqcDYos43PN8TR3hDqypySkaO2MFj9NRyCmQQFvgqD8CrXKc4IFRPCA5JcQDwylzuoCZ9-XhUZMBrOApSi-4FeG6GRdLqcyb0Mv1LwLQaX5Mzarn6cQNeSM0SHl4bcBOSxokA0260eRQFybggYTAJ4ZKyEHARl2MEZ06rjPVMqQ3z6zPAI6BS4EKg96if9Y_v-9AJkLjlZB-yALWx7kOmVMJ3iEkn9UIWhfksvZiabNSmORaXtnj3_GSd7BdMwOt9tpsR9rVtpa7-tI1cdgaAyqW21OyWrUWNoVgXkgmpdSWrsme36afhKGs1w8KVqBENtf2WaOuwdLoX3aZldPak_BfW9mc2us8ZtSVZg-e5OcUpu9fytStTRNtBMpMCdxofEBxNS0P-yq5uS_-t8J0xdk-OtR6lRSnWK3lJfoP3B8sWc-SiEzj99-S3vbAt3uIL-YJQLJtqtsFqBwOMlap68Y7E4HdPUrw4imrwjd6WGbKfDAteBuBeqdrs2TINGwZ_tT32Y1ife0pYLBLUX1--HMsqAHO8t1Yq9izSz8vEOAf0rSKAZU9QznPIecoEBDdB2stgIs5SCspOeWu0_bpn0Mn51LlZlS2jRQkXaOfgH5U5V2Qh89U0WPtp-B8VlYVf7ML4lfXWSyhLWX9Hd38uJTiTfYXgmXb4BwBAgK8=)

Kroki