new tplate
内容提要
作者分享了使用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进行评论管理。