我是如何构建 阮一峰的技术周刊-小站
2024-11-18
去年,我用 VitePress 构建了 阮一峰的技术周刊🔗 这个网站。一如既往,托管用的 Netlify,背后的流程自动化,用 GitHub Action。
网页上有 PV 的统计数据,每篇文章的阅读量大概在 100 左右。
用 Giscus 创建讨论区,收集用户反馈,普遍还是正向的。
这是一个极其简单的产品,却可以改善周刊的阅读体验,尤其是移动端。
当然,还是要感谢阮一峰老师在背后的收集、整理和发布,提供这么好的内容。
网站上线快一年了,运行稳定,没花过一分钱。
所以打算抽点时间,讲讲背后的故事,以及我的一些感悟。
1. 动机
开始的动机,就是为了方便,阅读的方便。
阮老师的网站上,文章很多,现阶段的更新,以周刊为主。每周五发布一次,涉及领域广泛。
我在使用中,发现了三个问题:
- 内容分散
- 移动端阅读体验不佳
- 搜索支持欠缺
原本想着用爬虫,后来发现,其实技术周刊有 Github 仓库🔗,文章都是 .md
格式, README
写得也很清楚。
万事具备。
2. 方案
菜都备齐,剩下的就是怎么烹饪。
围绕刚才谈到的三个问题,我做了三件事。
- 内容聚合
- 移动端适配的静态站点生成器
- 搜索引擎服务
第一个比较好解决,将 .md
文件按照年、月组织即可。
第二个问题,找到 VitePress🔗,支持将 Markdown 转换成静态站点,由 Vue 作者尤雨溪开发。
第三个问题,用的是 Algolia🔗,算是当下比较主流的搜索引擎构建工具,提供的是 SaaS,不需要自己托管服务器,有配额限制,不过非商用的话免费计划就够了。
有了这些工具和服务,一个清晰的工作流很容易创建。
- 解析仓库里的 Markdown 文件
- 生成 VitePress 配置,
npm run build
生成站点 - 部署并托管到 Netlify
与常规搜索引擎工作方式类似,Algolia 需要预先爬取网站。只需要提前设置好相关的 Crontab 任务,网站每周更新一次,爬虫任务同样每周执行一次,存在短时间延迟,但是可以接受。
剩下的就是事件触发。
阮老师的 Github 仓库每周五不定时更新。
于是我用 Github Action 建立了一个定期轮询的任务,如果原始仓库更新,便会启动 Netlify 提前配置好的工作流,将新的内容发布。
完全自动化,我很少花时间维护,网站的可用性依然很高。
3. 感悟
产品的出现,是为了解决用户问题。
用户的问题越痛,产品的价值越高。
作为一名程序员,平时更多的是实现某个自上而下传导的任务。
缺乏的,是发现和判断,什么问题值得解决。
经过这么些年互联网的普及和技术的发展,编程的门槛越来越低。
开源的工具,免费的 SaaS,强大的 Copilot,让 One Person Entrepreneur (OPE,个人企业家) 变得可能。
我想,这才应该是程序员下一步真正要努力的方向。
4. 总结
开发这样一个网站,花费时间很少,工具多是现成的,站在巨人的肩膀上,我们的起点就很高。
这时候,发现问题,比解决问题更重要。
最近一直在思考技术和商业的关系。
我认为,当下阶段,除了某些个别尖端领域外,技术是过剩的,至少软件行业如此。
供需关系失衡,传导到程序员这一职业,就会带来诸如降薪、裁员等一系列问题,悲观地说,这是趋势。
这并非意味着技术无用,只是没有用在更适合的商业场景中。
利用技术,跨行业地套利,这是我认为地可能的机会。
(完)
参考
- 本文作者:Plantree
- 本文链接:https://plantree.me/blog/2024/ruanyifeng-weekly/
- 版权声明:所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
最后更新于: 2024-11-20T09:44:17+08:00