使用 VSCode + Joplin 作为笔记工具
本文最后更新于:2021年7月21日 凌晨
为什么吾辈使用 Joplin
注: 开源、不受平台限制以及基于 markdown 容易迁移这是很重要的一点,因为没有人知道哪个笔记工具是最终的赢家,如果没有选对,那么至少要容易迁移。
吾辈曾经使用过一些笔记工具,包括 印象、OneNote、Notion 这些,但最终都放弃了。关键还是在于吾辈核心的一些需求未能得到满足:
- 搜索要快
- 编辑器体验要好
- 数据应该能够全部导出
- 基于标准的 md,可以直接复制到其他平台
- 可以基于它进行二次开发
- 还没死
下面让我们来细品以上工具的功能
印象笔记
好吧,印象笔记有国际版/国内版,但国内版本很明显属于收钱不做正事的典型,很长时间内都没有任何变化了。而且,markdown 支持并非官方自带,而是需要使用第三方插件才行(18 年底更新之后貌似支持了)。而且最近 印象笔记又抢注国内的 notion 的图片商标,真可谓是国内独树一帜的奇观 了。
OneNote
老实说,如果习惯使用 Office 全家桶整理文档的话,OneNote 还是很香的,编辑体验和 Word 保持一致,搜索极快。但很遗憾的是,吾辈是坚定的 万物基于 markdown 人士,所以不喜欢 OneNote。
Notion
是目前遇到的一个比较满意的笔记工具,但主要有 3 点不太满意。
- 编辑器比较卡
- 搜索非常慢
- 无法导出全部数据
具体参考:Notion 使用体验
而 Joplin,则是吾辈能够解决 notion 的以上几个问题的笔记工具,同时开源免费,允许吾辈参与其中。
主要优点:
- 搜索很快,非常快
- 可以使用外部编辑器打开
- 数据都在自己手里,提供一次性导出全部的功能
- 使用标准的 md,可以直接复制到其他平台
- 可以基于它进行二次开发
主要缺点:
- ui/ux 有点简陋
- 没有 vsc 插件导致使用外部编辑器也并不是非常方便
为什么吾辈要写 vscode 的这个插件
- 作为专业的编辑器在编辑功能上 vscode 是笔记工具无法比拟的。例如快捷键支持
- vscode 不仅仅是一个编辑器,更有着非常庞大的插件生态圈,所以在 markdown 格式化、linter 校验、pdf 导出等功能上早已实现,不需要在笔记工具里重复造轮子 – 还可能是方轮子
- 事实上,我一直在使用 vscode 在进行 markdown 文档编辑工作,用 git + vscode 存储公司相关的文档。同时也在使用 joplin 存储个人的笔记资料,但目前经过一段时间发现我需要的是 vscode 的编辑 + joplin 的同步/搜索功能。
所以我编写了这个插件,用以给与我有相同需求的人使用。
参考: Future of Joplin
介绍
在 VSCode 中集成 joplin,实现了 Joplin 的常用功能。
插件
先简单列出吾辈与笔记相关的插件列表,它们都实现了某项特定功能且可以组合。
- Markdown All in One: Markdown 语言支持
- markdown lint: Markdown linter 工具
- Prettier: 多语言格式化工具,对 markdown 的支持非常好
- Markdown PDF: Markdown 导出 PDF
- Draw.io Integration: draw.io 流程图集成
- Markdown Preview Mermaid Support: 支持 mermaid 流程图 DSL,但 draw.io 更好用
- vscode-mindmap: 思维导图集成(此为 fork 版本,但更加好用)
- Local History: 本地历史记录
- Code Spell Checker: 单词拼写检查
- joplin-vscode-plugin: joplin 笔记集成
你可能注意到其中部分插件和 markdown 没什么关系,但它们对于编辑而言仍然是重要的,例如 Joplin 最近(v1.4.*)才实现的拼写检查功能已经存在现有的 VSCode 插件了。
这些插件解决的问题吾辈也在 joplin 与 vscode 之类的编辑器区别 提交,在此也不多赘述。
解决的问题
吾辈简单浏览了最近两周的 Joplin 帖子,其中下面这些问题在 VSCode 中似乎已经解决/实现了
- Please add an easy to access markdowns: 快速添加列表
- Markdown keyboard shortcuts: markdown 快捷键支持
- Duplicate line command: 复制并粘贴到下一行
- Please auto replace to Bullet/Number/Checkbox list: 同样是快速添加列表
- Auto attach images as resources after external editor: 外部编辑器粘贴图像支持 Joplin
- Integration of PlantUML: PlantUML 集成
- Find and Replace: 查找和替换功能支持
- Making Joplin recognise YAML front matter: markdown yaml 元数据支持
- Plugin: Note Tabs: 多标签页支持
- Option to show line numbers in editor: 显示行号
- Incomplete TOC sidebar: outline 支持
- Feature request: Folding sections of text: 代码块折叠
效果
最后,配置完成的 VSCode 编辑器编辑 Markdown 的效果图如下