20240204 自建网站的思考
2024年2月4日 小雪、沿路积冰、树叶覆有冰层。上午9时57分,采得半片冰叶,下垂有滴落状小冰柱。
虽然有保持思考和反思的习惯,但是做事更多的靠是直觉,是“反思的直觉”,“经验联系的-反思的-直觉”。
就仿佛大多数时候处于一种休眠的状态,只有当情绪反应,或者有问题、有意思的东西出现时,才会开始思考和剖析。
做博客记录,也是为了督促自己更多的去思考,同时也是把自己的思考记录下来,这是自己视之珍贵的东西,也许未来几十年后回顾起来会颇为感叹,甚至还能给未来的自己带来一些启发:如果我还活得到那个时候的话。
不过说来,我已经是一个信息非常复杂的个体了。我思考过太多,也接收了太多,有时候我不知道我的某些认知最初是源自自己的思考延申、还是来自其他信息的提点;或者是先来自其他信息而潜在化,后在某一天被我的思绪检索到,而纳入认知,却还自以为是原创。
不过这不是值得纠结的点,也许未来我们会归一为一体,也许未来知识甚至思维都完全共享。此刻我有这样澎拜的热情,有这样能够深入或发散的能力,此刻思绪翻涌着的当下,便是最好的拥有。
昨天看到过一句话,“生活不必太认真”,我深以为然.就像我和戎所说的,不要固定自己的角色,不要自我限定未来。要用超脱的视角去看。从现实出发,超出现实,然后回归现实。
当用超脱的眼光去看的时候,这些凡俗的计较,实在微不足道,甚至就连“拥有”或“属于”这样的词汇,比如想着“这些思想或东西是我的”,也不过是被世俗裹挟的凡人的呓语,有什么可纠结的呢。
跑题已经有点远。在这分不清下的是雪还是雨的早上,水坑的涟漪还在时歇时澜,我正思考着是不是要搞一个建立网站的工具,我时常有这样的主意,落实的很少,做完善的更没几个。但是我当下采用的hugo乃至市面上的这么多框架,真的足够好吗?我应不应该去做呢,如果做又要怎么设计呢。
23年6月的时候,我也有这样的想法,于是建立一个git仓库起名叫lightview,用rust写了一些解析管理的工作,然后就没有然后了。
为什么没有继续呢,一方面那时候只是微微的想法,并不实际清楚要做出来什么样的东西;一方面没有提前规划思考,不知道下一步做什么,就连用rust也是想着练手才采用。
而更重要的是,我没有足够持之以恒的决心。虽然决心也是需要前两方面的支撑吧,但没有毅力和决心,已经是我持久的问题了。
即使抱着玩世不恭,世上有来无所谓,的态度,也难免被世俗面的自己认定为退缩呢。本来人的情绪人的力量很多时候也是来自于成功的过往,且达到目标是人生中最常见的最有自我价值的情绪点,我应该努力做一些事情了,只是我的主意太多,要选定一些,慢慢来。
好的,又跑题了,我的第二个问题暴露了:容易思维发散而偏题。
那么说回自建网站的想法,我觉得在做一件事之前,最好能先构造一条思考链,指导“行为准则”。
那么对于我的需求,思考链本身的存在需要明确。即目标,需要用简洁的语言去概括目标
- 以原生(干净)的项目组织,用一条命令生成网站。
而后需要目标的具体释义,即标识着是否真的了解目标
- 能以尽量少的额外文件、尽量少的心智负担,来管理更接近于原本的md列表,同时还能一键生成网站。
比如有一个文件夹包含很多md文件,我希望进入文件夹,执行命令,就能生成包含该文件夹内所有内容的网站,并依循其原本组织形式(层级变菜单等、图片资源管理等)。这样迁移内容的时候,只要删除必要的配置文件和生成目标文件夹,就可以直接移走,不需要改动任何实际内容。
目标是否有确切存在的意义,即背景以及必要性
- 从个人层面,没有必要的意义,更多的是本人的一种对整齐和开发热枕的追求。
- 从市场层面,同类产品已经很成熟,没有必要。
目标是否已经存在或类似存在,即是否可以复用,开发的必要性
- 建立网站的框架有很多,而经文档查证,mkdocs也是大体上符合我目标的框架,只是还有一些约束,另外基本只用于“文档类”,自定义博客的主题少
当思考链了存在的意义,就要标识链的首末
- 起点,是一堆已有组织形式的md文件;终点,是对该组织的轻微配置附加与网站生成。
思考链已经建立,开始划分“里程碑”,即会影响整个项目的核心点、核心要求。里程碑可能随着项目的进行而增设,但是好的设计一定会在初始时就尽量充分考虑
- 无侵入(约定大于配置),将一个已有组织的md文件夹转为可编译为网站的项目,只需要新增(配置很少)的配置文件
- 尽量少的额外文件夹,必要的可能只有1生成目标文件夹,2样式相关文件夹,3缓存
hugo的文件夹太多了,看着就烦
思考链的边界,即知道项目有所行,有所不行
- 用户可能很少,贡献者可能没有,不需要考虑开发环境的复杂度,不需要考虑语言的适用性。
- 因为要尽量轻量,尽量约定,所以功能会有缺失
- 因为没有开发类似项目的经验,对于扩展的设计需要边开发边进行
- 开发完可能维护会很低频
- (边界判定后认为不影响需求,可以继续)
思考链的分段,即分解问题,完成思考链本体
- 管理文件组织,依赖内存/持久化文件来储存文件关系,从而遍历到每一个文件和相关文件
- 对于md文件,需要解析内容,关联资源和链接
- 生成模板html
- 附加可自定义的样式
- 处理交互如菜单、路由、首页等文件本身外的元素,并整合
- 封装以上步骤成一条命令
- (问题分解后符合核心点,可以继续)
当合适的思考链完成,意味者需求有了完成的可能性,也有了实现的方法。但是单纯根据需求得到的方法,可能很适合问题本身,却不一定优雅、可复用、可拓展。此刻需要对思考链的反思,探索更好的设计方法。
- 解析md不一定要到html,而是生成中间层,方便嵌入
- 可附加的样式常常被动地与设计本身紧密耦合,有什么办法能够更加分离?也可以让中间层级去符合样式。
- 网站有哪些需要嵌入的的?博客常见的,比如评论、视频;博客之外的呢,比如画图结构?
思考链的反思可能带来更大的复杂度,甚至可能冲击设计本身,此刻可能需要重新划分问题。而且即使反思完的结构也不一定真的保证未来的适配和扩展,但是不要害怕做的不好,任何道路都能抵达目标,重点是抵达。至于项目乃至解决方法,它总是会变的,重构也是常见的。
- 介于一个个人使用的项目,且未来大概率不会维护,上述的反思不必实现。
思考链的结束,就标识了新的阶段,甚至是更重要的阶段,那就是行动
- 事已至此,先午休吧
Done