owenyoung 13小时前
迁移博客和Wiki到 Zola
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

作者因维护两个基于Gatsby框架的Wiki和博客感到复杂,决定用Zola重构博客系统。Zola用Rust编写,速度快,部署只需14秒。系统采用单一二进制文件驱动,样式简单,文件均为Markdown。作者对Zola不支持Markdown相对链接转换表示不满,自行修改代码实现自定义链接。编辑时使用VSCode和Foam Lite插件,更注重掌控感。

🔧 Zola用Rust编写,速度快,部署只需14秒,远快于Gatsby的4分钟构建时间,极大简化了维护。

✍️ 所有样式在一个简单的CSS文件里手写,且所有文件均为Markdown,保持了系统的简洁性。

🔗 作者自行修改Zola代码,将Markdown中的相对链接转换为自定义链接格式,解决了本地文件系统相互链接的问题。

📝 编辑时使用VSCode配合Foam Lite插件,快捷生成内部链接和文章模板,提升了效率且保留了原文格式掌控感。

我在之前建立了一个个人的公开 WikiBlog,这让我养成了记笔记,多写东西的习惯。但是随着时间的增长,我感到维护 2 个 repo实在有点麻烦,并且由于 Wiki和博客都是基于Gatsby 框架的,更新,维护,还有编译都挺花时间的。

总的来说就是太复杂了,而由于我对自己的笔记/博客系统是以一生的尺度去设计和维护的,所以我想让它保持简单。

所以这个博客现在拥有了以下特性:

特性🔗

对 Zola 不满意的点🔗

Zola 有一些约束和约定俗成的东西,大多数是比较深思熟虑的限制,我最苦恼的一点就是他不支持把 Markdown 里的相对链接转成 html的链接。相对链接自动转换这一点的限制其实是合理的,我以前写过Gatsby 的插件去转换相对链接,但是逻辑其实很恶心,因为markdown 的文件层级和 html 的文件层级其实是不一样的,对 markdown 来说是xxx.md,但是对 HTML 来说是xxx/index.html, 但是有的时候又是一样的,比如xxx/index.md 同样是 xxx/index.html.所以我的插件转换需要约定不少东西,挺恶心的。而Zola 的办法就很简单粗暴,他刻意不帮你转换这些东西,只替换包含特殊符号的链接,比如@/xxx.md,它会把这类链接统一替换按照正确的路径替换,这样就容易多了.

但是像这样[xxx](@/xxxm.d)写链接的话,本地文件系统的相互链接就不工作了,编辑器不知道@是什么,这很令人苦恼。

我就这个问题在 Zola的论坛提了一个替代办法,主要就是不用@做为特殊符号,直接用/content作为特殊符号,这样本地链接就其实是一个合法的内部绝对链接,像这样:[xxx](@/xxx.md),但是Zola 还没接受我的请求,所以我改动了 Zola 的代码,改动很少,就几行,现在我可以用 /content/xxx.md的形式作为内部链接。

如何编辑🔗

在编辑方面,我在使用VSCode配合我开发的Markdown 输入插件 Foam Lite来编辑这个博客的所有内容。我更喜欢文本辅助输入工具,而不希望软件修改我的原文数据格式。这让我更有掌控感以及不被运营商锁定。

试过Obsidian几次,很喜欢他的一些实用的功能,但是发现他的性能还是和 VS Code差很多的。所以还是用回了 VSCode,然后把最需要的 Obsidian 功能:快捷输入内部文档的 Markdown 链接,改写了一个 VSCode插件Foam Lite解决了。

这个插件目前只拥有 2 个功能,一个是快捷生成内部链接的地址:

另一个就是快速从模版生成初始文章。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Zola 博客系统 Markdown
相关文章