在 Obsidian 和 Hexo 两端使用 PlantUML
241224
此 PlantUML 方案已被博主弃用。原因如下:
- Hexo 端
hexo-filter-plantuml
插件采用服务器渲染方案时,会导致 博客生成静态文件的时间不确定且无故延长。 - Hexo 端
hexo-filter-plantuml
插件采用本地渲染方案时,部分复杂语法无法成功渲染导致出错。
PlantUML 的安装与使用
语法:
1 | ```plantuml |
两端各自插件实现:
- Obsidian:在第三方插件市场搜索 PlantUML,项目地址 joethei/obsidian-plantuml: Generate PlantUML Diagrams inside Obsidian.md (github.com)
- Hexo:下载第三方插件 miao1007/hexo-filter-plantuml: Using PlantUML to generate UML Diagram for hexo (github.com)
两端插件的部分不同之处:
Obsidian 插件 obsidian-plantuml |
Hexo 插件 hexo-filter-plantuml |
|
---|---|---|
语法使用 | 只支持 Markdown 的代码语法块 | 支持 Markdown 语法块外还支持标签语法 |
PlantUML | 不一定需要 @startuml 括住内容 |
必须使用 @startuml |
博主提醒:Hexo 插件 hexo-filter-plantuml
配置中,link
配置不建议为默认的 inline
选项,该选项会将 svg 图片硬编码到文章文本中,Hexo 不会对齐进行居中调整或夜间模式下的变灰操作。
hexo-filter-plantuml
的配置
使用服务器接口出现的问题
- hexo 生成文件要求联网,否则出错
- hexo 生成文件时间延长或卡死
使用 Hexo 插件 miao1007/hexo-filter-plantuml
需注意,当安装该插件并不做任何配置时,插件需要联网使用 PlantUML 接口,且并不是所有国内的 IP 地址都能成功访问这个接口,这就导致了平时 Hexo 本地部署调试时会出错。
错误例子如:
另外,调用服务器接口即使连接不出错,在链接过程中耗费的时间不固定(普遍非常长),导致 hexo g
命令卡住且不返回日志。
一个解决方法是将 Plantuml 部署在本地。
使用本地渲染的方式
具体本地部署 Plantuml 的方法详见:站内文章本地部署 PlantUML
如果选择了本地部署,记得在配置文件 _config.yml
中新增:
1 | plantuml: |
Obsidian 插件 joethei/obsidian-plantuml
使用本地 jar 包配置方法:
如果你使用了一些特殊语法,可能会报找不到 dot 的错误。
后记
本地部署出现渲染错误后,我又换回服务器渲染方式,并坚持了很长一段时间。
直到某一段时间发现 hexo g
总是卡死并找不出原因,把 hexo-filter-plantuml
删掉后才知原来是它搞的鬼。遂将此文从 站内文章原文 中剥离并置为「过期」。
备忘调试方法:
hexo g --debug
这样一来,我的博客就不能在使用 PlantUML 了。其实细想一下,这种文本绘图画出的图挺简单的,也不会经常修改,我完全可以像以前博客画复杂图那样使用 PPT 或飞书画板。