你好Astro!
选型往事
在2024年3月份,我正式将Ghost博客作为无头CMS使用,并搭配SSG工具生成静态页面 。
其实在当时的技术选型时其实已经考虑过Astro,当时的Astro的版本号还是3.x,不过因为自己的技术不够成熟,编码思路还一直是Ghost时期的handlers这种模板结构,尝试多次无果后最终还是选择了11ty作为网站的生成工具,并撰文 新主题11ty-book 分享了当时的成果。
积累
不过这段时间我都有在不间断的重新查阅Astro的文档,思考该如何用Ghost搭配它,希望能用上这个热门的网站生成器。
事情的转折点是前几天发现 Astro-remote
这个插件,它提供的组件能加载HTML字符串或远程Markdown文件,渲染成网页内容,并在这个过程中还可以对HTML元素使用Astro的组件进行替换,这意味着可以不再用之前在11ty中那样,用 JSDOM
这个库通过通过虚拟DOM进行操作 eleventy/transforms/parseContent.js 。
之后我便根据自己的思路写了几个Demo,以前困扰的几个点似乎都能解决
- 可以通过这个插件的容器替换功能,使用Shiki、Prism等工具的代码高亮
- 可以自定义容器,之前 hugo-book中的Columns 、Expand 等功能都机会实
- 甚至可以把之前Obsidian 数字花园整合进一个网站来。
新开始
所以没有犹豫,在9月2号就开始了移植工作。
这段时间,我边看文档边学习、实现、思考,得益于我在11ty-book上花费的时间和对Node.js逐渐了解,以前看不懂的Astro代码忽然像是顿悟般的或霍然开朗,明白了组件形式和之前11ty时传统模板形式的区别,和意义。
Astro的开发体验的确很棒,这也是我之前在选型11ty之后依旧还对Astro念念不忘的原因。
高速的迭代频率,优秀的设计语言和活跃的开发群体让这款工具一直充满着活力,得益于官方全站的中文文档,而且手册十分详尽,让我在实际开发过程中能少走了不少弯路。
终于在昨天,一共历时七天,我终于将11ty-book的功能移植了个80%作用,并提交了第一个正式版本到了Github。并在昨天晚上正式切换到了Astro版本的huog-book。
开源地址:https://github.com/rebron1900/astro-book/
不过目前以前还有一些问题还未来得及处理,现在还有一些构思等待实现:
- 整合Obsidian
- 实现Ghost CMS和Obsidian之间互相的WikiLink引用
- 全站搜索
- 影集功能
- 文章内丰富的卡片引用,如NeoDB,CodePen,视屏,音乐等。
- 试试用SSR实现文章的密码访问
- ...以及其他无数种可能
结束语
发现自己这些年在折腾博客这条路上越走越远。
从以前的博客大巴只会转发文章,到后开始学习编程,开始SelfHost Wordpress,开始满世界找主题、找插件优化博客,到现在我已经能流畅使用JavaScript,Node.js、Python等工具进行代码开发,之前还自己实现了一个在博客显示博主状态服务 将博主PC上使用的应用信息实时显示到博客,体验了一把Socket和服务端的开发,那时候还狂妄的想着「自己是不是已经可以前后端一把梭了?」,哈哈。
虽然13年前毕业后我没有从事IT工作。
但是我热爱编程,我喜欢编程,我喜欢互联网蓬勃的生命力。并且不同于需要拿找饭吃,我更多是处于喜欢、兴趣使然,基于这个初心去学自己感兴趣的技术,并在折腾的路上学以致用。
我很满足,也很开心,希望我20年后依旧初心不改。
Thks。
加入评论