为知笔记 RIP: 迁移剩余的笔记
2025-01-18
Abstract
靠我竟然发现了 200 多篇未迁移的陈酿版笔记, 找了一圈没有看到满意的迁移工具, 于是我一怒之下自己写了个
- 毫无疑问: 降低耦合, 减少软件和框架的依赖
- 提高可迁移性, 降低迁移成本
- 跨平台, 跨设备
- 为知笔记
- 有道云笔记
- 印象笔记
大概 4 年前, 我将 Tech 笔记的内容迁移 到了自己的一个子站点, 然后使用 Hexo Serve 起来公开访问.
后期也尝试过 Docusaurus, 但是这类静态网站生成器都有一定的局限性, 我没法完全自由操作笔记渲染器和生成器.
今天我需要个 Mermaid, 明天我需要个 Exclidraw, 后天我需要个 Image Lightbox, 就算是插件也很麻烦, 这些我现在都不愿意再去折腾.
AI 时代开始的那一年我就已经将公开的笔记站点下线了, 因为我觉得没有必要喂给 AI.
最终我全部将笔记单纯扔到 NAS, 用一个简单的文件夹结构来管理, 使用 Obsidian 来查看和编辑.
有一些工作相关的笔记因为不便公开因此没有迁移, 但是我也没有在意, 就一直放到了现在.
直到前两天突然发现为知笔记的账号竟然用的是统一的密码, 于是我上去准备修改一下密码, 结果发现里面竟然还存了两百多篇笔记.
当年我是用了一个 python 工具将为知笔记的笔记导出成了 markdown 文件, 但是今天无论如何都找不到这个工具了.
我在网上找了一圈, 也没有找到合适的工具, 于是我决定自己写一个.
研究了一下相关:
- 为知笔记是将笔记保存在本地, 未加密且内容包含:
- 使用 HTML 方式保存了 markdown 的原文
- 很奇葩, 类似是用 Rich Editor 导出的内容: 一堆文本被包裹在
<div>
里面
- 很奇葩, 类似是用 Rich Editor 导出的内容: 一堆文本被包裹在
- 图片等附件
- 使用 HTML 方式保存了 markdown 的原文
- SQLite 数据库保存了笔记的元数据
. ├── index.db ========> [ WizNote database ] ├── notes ========> [ Actual notes folder ] │ ├── {06bdffb9-d9af-4e4e-8d45-3d8a488aca7b} ========> [ Zipped notes(HTML+Images) ] │ ├── {123e4567-e89b-12d3-a456-426614174000} │ ├── (...) └── wizthumb.db
- 读取
index.db
获取笔记的元数据, 内容很详细了, 包含了笔记的GUID
,标题
,目录
等.{ // GUID DOCUMENT_GUID: '2e05ddd4-870e-4b3a-b38b-2a5300363f28', // Title DOCUMENT_TITLE: 'Log: PCC - Performance Improvement.md', // Location DOCUMENT_LOCATION: '/#Work-Archived/Archived/', (…… Unnecessary fields ……) }
- 根据每一篇笔记 GUID, 读取
notes
文件夹下的对应文件夹, 解压缩 - 解压缩出来的
index.html
文件是笔记的内容, 里面包含了 markdown 的 raw 文本, 使用html to markdown
转换成 raw markdown - 解压缩出来的
/index_files
文件夹是笔记的附件, markdown 正文里面已经包含了图片的引用, 直接复制到笔记文件夹下 - 最终导出结果:
final ├── Tech │ ├── Logs: Archived Logs │ │ ├── index.md │ │ └── index_files │ │ ├── 219ed06c-a080-41f6-a03c-915bbce626c2.png │ │ ├── 56026f34-073c-4601-b09d-c436b7a78ba8.png │ │ ├── 74beeaa8-14d3-423f-93cf-9edd220202e3.png │ │ ├── 94e7e3af-6bec-4faf-83c6-9b1481350601.png │ │ ├── a1aec740-94e0-4d50-9f78-3114fd666de6.jpg │ │ ├── a213075f-eda7-4172-a42f-2e73daf3ff3e.png │ │ ├── a59350a6-48d1-41e4-9dd0-7458dc5fce1f.png │ │ ├── a76ae0c2-5e54-4aa7-bfa0-1f81122bcbb2.png │ │ ├── de4db3b0-9e9c-4d08-9c56-e39113fa7fc2.png │ │ └── fefc4cc6-ba3a-48e6-814b-9e9da5b4dae7.jpg │ ├── Logs: CF11 │ │ └── SQL2012 Switch │ │ ├── index.md │ │ └── index_files │ │ └── clip_image002.png └── Tmp: SQL Database Academy ├── index.md └── index_files ├── 185eea5e-fff9-4f86-bd7b-8e29df73a0dc.png ├── 5108ae70-c9c7-4c69-b55f-889cd464ac3a.jpg └── a3f6a93c-eff8-4410-8f20-26ef003d7517.jpg
研究一小时, 码代码十分钟
https://github.com/szhshp/Wiznote2Markdown
未来就可以一行命令解决所有问题
npx wiznote2markdown
关于本文
文章标题 | 为知笔记 RIP: 迁移剩余的笔记 |
发布日期 | 2025-01-18 |
文章分类 | Tech |
相关标签 | #Note |
留言板
PLACE_HOLDER
PLACE_HOLDER
PLACE_HOLDER
PLACE_HOLDER
PLACE_HOLDER