TXY
全部项目

Markdown 笔记命令行工具

已完成

把散落的 Markdown 笔记整理成带目录和标签索引的静态页面,纯 Node 脚本实现。

角色
独立开发
时间
2025.06 – 2025.08
状态
已完成
  • 无第三方解析库,自己处理标题、代码块与链接
  • 一条命令生成索引页与标签页
  • 支持监听目录,改动后自动重建

说明:这是一个示例项目条目。发布前请把它替换成你自己的真实项目,或直接删除本文件。

背景

上课记的笔记分散在十几个 Markdown 文件里,想找某个知识点只能靠搜索,也没有一个总览页。现成的静态站点生成器都偏重,于是写了个只做一件事的小工具。

做了什么

note build 扫描指定目录,把每个 .md 文件转成 HTML,再生成:

  • 按修改时间排序的索引页;
  • 按 frontmatter tags 聚合的标签页;
  • 每篇文章的标题锚点与目录。

note watch 监听目录变化,改动后自动重建,配合本地静态服务器就能实时预览。

技术方案

没有引入解析库,而是按行处理:识别围栏代码块并原样保留,识别 # 标题生成层级与锚点,处理行内代码、粗体与链接,其余内容包进段落。这个做法只支持笔记用得到的子集,但足够、可预测,也让自己搞清了 Markdown 的边界在哪。

难点

  • 代码块里的 # 不能被当成标题,解析必须先切分代码块再处理其余文本。
  • 中文标题生成的锚点要保证唯一且稳定,重复标题追加序号。
  • 文件很多时全量重建变慢,加了简单的文件 mtime 缓存。

复盘

如果继续做,会换成成熟的解析器并支持插件,因为「自己处理 Markdown 子集」在小范围内省事,一旦有人写表格和脚注就开始出问题。这让我理解了为什么工具应该在自己的核心问题上克制,而不是重新发明所有轮子。