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语言和lute作为Markdown解析器,遇到了Front Matter解析的困难。这表明在实现自定义功能时,开发者可能会面临技术上的挑战,尤其是在处理不同格式的数据时,需要灵活调整策略。

样式设计的个人化

作者在样式设计中融入了个人偏好,参考了lume_theme_shiraha和Urara的设计。这种个性化的设计不仅提升了用户体验,也反映了开发者对美学的追求,强调了在技术开发中艺术与实用的结合。

功能扩展与未来展望

文章提到实现了文章分类、标签功能及RSS订阅等,显示了对博客功能的全面考虑。未来,作者计划进一步优化样式加载和交互功能,这表明持续改进和用户反馈在开发过程中的重要性。

延伸问答

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

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

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

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

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

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

新模板实现了哪些功能?

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

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

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

评论系统是如何迁移的?

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

🏷️

标签

➡️

继续阅读