new tplate

💡 原文中文,约4800字,阅读约需12分钟。
📝

内容提要

作者分享了使用Go语言开发博客生成模板的经历,旨在减少JavaScript的使用。文章涉及Markdown解析、样式设计和RSS订阅等技术细节,并表达了对现有工具的不满,最终目标是替换旧的Urara博客模板。

🎯

关键要点

  • 作者因台式机内存不足,决定开发一个尽量不使用JavaScript的博客生成模板。

  • 选择Go语言进行开发,借鉴了Gitea的.tmpl文件逻辑,尝试实现Markdown解析和样式设计。

  • 使用lute作为Markdown解析器,解决了样式问题,但在解析Front Matter部分时遇到困难。

  • 实现了代码高亮功能,并尝试解决Markdown的Spoiler语法问题。

  • 设计了文章目录和章节链接功能,使用JavaScript实现了标题链接锚点效果。

  • 样式设计参考了lume_theme_shiraha和Urara,个人偏好影响了样式的选择。

  • 实现了文章分类和标签功能,允许通过分类和标签索引文章。

  • 开发了RSS订阅和Sitemap功能,解决了HTML与XML的兼容性问题。

  • 评论系统迁移较为顺利,使用了Giscus和Webmention进行评论管理。

延伸问答

为什么作者决定开发一个新的博客生成模板?

作者因台式机内存不足,无法运行旧的Urara模板,因此决定开发一个尽量不使用JavaScript的博客生成模板。

作者在开发过程中使用了哪些技术?

作者使用了Go语言进行开发,借鉴了Gitea的.tmpl文件逻辑,并使用lute作为Markdown解析器。

在Markdown解析中,作者遇到了哪些问题?

作者在解析Front Matter部分时遇到困难,并且最初使用lute时无法将类或ID选择器加到HTML标签中。

新模板实现了哪些功能?

新模板实现了代码高亮、文章分类和标签功能、RSS订阅和Sitemap功能,以及文章目录和章节链接功能。

作者对现有工具有什么不满?

作者对现有工具的不满主要体现在内存占用和对JavaScript的依赖上,认为这些工具无法满足他的需求。

评论系统是如何迁移的?

评论系统迁移较为顺利,作者使用了Giscus和Webmention进行评论管理。

➡️

继续阅读