Translated by LLM

This is the zh-CN translation of About Note Taking Applications.

I used this as a test for some LLMs via ollama and openwebui (with context window set to 16k on both Ollama and OpenWebUI), and the ‘Max Token (num_predict) also need to be bumped up, I set it to 16k on OpenWebUI.

  • gemma3:27b:Q4: 翻译到 Outline 之后就不行了(甚至在 Trilium 段就开始恶化了),突然一下就进行剧烈的压缩,Notion 和 Evernote 的部分都是一笔带过。从 Trilium 段之后都是再逐次逐段翻译的了。
    • Prompt token: 9338
    • Completion token: 5036

可以看出,翻译的结果还是有点一板一眼了,读起来不轻松。不过这也可能是我英文不够好的缘故,原文本来就是半吊子的英文。

这是一份关于我近几年使用的笔记应用程序以及个人知识管理和日记用途的总结。

  • 为什么需要一个PKMS?或者,为什么我关心我的笔记应用程序?

    • 因为我不太聪明……
    • 我需要一个工具来快速记录日常工作中的信息。
    • 我需要一个工具来辅助我的思考过程,就像一张草稿纸。
    • 我需要一个地方来记录笔记、结论等。
  • 为什么需要日记?

    • 我的记忆力不好,我需要一个地方来充当“粘贴板”来记录我的日常工作。
    • 我发现我很难记住某个日期发生了什么,以及我什么时候做了某件事。

我从2022年开始的一个要求是,我希望我的笔记存储在我自己的存储空间中,或者至少可以轻松备份到我自己的存储空间中。

所以,我尝试过:

  • Evernote (大概2013年开始使用?2018年放弃)
  • Notion (2018年开始使用,2022年放弃)
  • Trilium
  • Memos
  • Logseq (短暂尝试)
  • Outline (短暂尝试)
  • Silverbullet.md
  • Foam (目前正在使用)

正如你所看到的,我积累了一大堆不同的笔记。合并它们将是一项巨大的任务。 meme image from https://daveisnice.com/blog/the-great-note-taking-odyssey/

从所有这些应用程序中学到的经验

总的来说,这就像是“了解你自己”。我发现有时很难知道自己真正想要什么。

我发现自己通常需要花费大量的时间和精力,才能找到合适的那个……

我真诚地希望阅读这篇文章的其他人能够避免同样的痛苦。

工作流程

我发现我可以使用以下步骤来处理我的笔记:

  • 信息输入阶段:
    • 这是我将信息转储/写入笔记的阶段。我可能会:
      • 编写一些代码片段、会议记录、网络上的发现等。
      • 我也可能会复制一些图片、转储一些PDF文件等。
      • 有时还会记录一些待办事项列表、进度跟踪等。
    • 有些信息是永久性的,有些信息则非常短暂。
  • 提炼和内化阶段:
    • 这通常是我第二次或第三次查看笔记。
    • 对于很多笔记,根本没有这个阶段,它们是短暂的。
    • 对于一些笔记,我可能会在几天或几周后重新检查它们,并进行少量修改。
    • 对于一些笔记,我可能会花更长的时间来处理它们。
    • 基本上,在这个阶段,我会回顾一部分笔记并更新它们。大多数时候,这些都是“最近修改过的”笔记。
  • 随机信息检索阶段:
    • 这是我希望使用“搜索”以及所有可以用来深入挖掘笔记的工具的时候。
    • 在这个阶段,我希望“快速”地获取我需要的“准确”的信息。

我发现我实际上不需要像Anki卡片那样进行“随机漫步”。当然,我不会拒绝使用支持这种功能的笔记应用程序。

关键要点

  • **原则:**流畅的“输入”和“输出”体验是我在笔记应用程序中最看重的特性。

    • 例如,当我需要记录一些东西时,应用程序必须已经准备好接收我想要提供的信息。
      • 也就是说,它不应该有很长的加载时间,不应该有糟糕的可用性姿态,不应该有那些可能突然崩溃或失败的“复杂”插件/功能,从而中断我的思路。
    • 例如,当我需要从我的笔记中获取信息时,应用程序应该帮助我快速找到我需要的信息。
      • 也就是说,基本的“模糊搜索+快速预览”功能非常非常重要。可能比你想象的更重要。
      • 任何添加到此之上的“花哨”功能都不应干扰基本的“搜索+预览”功能。
  • 你可能不需要“数据库”功能(比如Notion提供的功能),除非你想在笔记中进行“项目管理”。

    • 说清楚,我并不是反对“数据库”功能。Notion(以及可能正在模仿Notion的公司)在实现这一功能方面仍然面临挑战。
      • 作为团队协作解决方案,“数据库”功能可能是必不可少的。但是作为个人笔记应用程序,这取决于你的需求。
  • 如果你认为你需要一个内置了项目管理系统的个人笔记系统,请三思而行。

    • 说真的,这会大大增加你的笔记应用程序的复杂性,因为你需要“结构化数据”,并且需要某种“自动化流程”来结构化你的“非结构化数据”。你还需要这个“流程”是“可靠的”(这样你才能信任你的项目管理),同时又是“灵活的”(这样你才能在各种项目中应用它)。
    • 而且,大多数情况下,你只需要一个“待办事项列表”。你不想每天维护两个项目管理系统(一个用于你工作中的任务,另一个用于你的个人笔记)。此外,你还需要不时地修复系统中的错误(通常至少需要2小时)。
    • 简而言之,笔记本质上是“非结构化”数据。不要试图让它井井有条。不要选择依赖于这种结构化的信息检索方法。
  • “信息提炼和内化”仍然是我“学习任何东西”的重要步骤。不要试图让你的PKMS自动完成这些步骤。

    • 首先,我不认为有任何自动化工具可以做到这一点。再次强调,不要试图过度结构化你的笔记。
    • 你的笔记应该是一个帮助你“提炼和内化”知识的工具。它不能取代你在这个过程中的作用。也就是说,你仍然需要花几个小时/几天来处理你的笔记。不要指望你的PKMS能够完成这些步骤。
  • “标签”+“搜索”已经可以提供足够的支持,以满足你的信息检索需求。

    • 也就是说,“双向链接”、“SQL查询”、“图视图”都是很棒的功能。但最终,这些功能的优势实际上是有限的。
  • 当然,“双向链接”可能是一个例外。在某些情况下,它可以非常有价值(如果你将你的笔记用作个人维基)。

  • “时间”可能是笔记应用程序中最容易被忽视的维度。

    • 大多数情况下,我们只关心“最近的数据”。这对于公司和个人都是一样的。
    • 大多数信息或多或少都与时间相关。即使在你的所谓的“PKMS”中,很少有东西是真正“永久”的。
      • 尤其是在“信息输入”阶段。在这个阶段,你的主要目标是快速记录你的信息(想法、见解等),而不是试图“理解”这些信息。大多数情况下,你不想让任何东西中断你的“输入”流程。
        • 由于这些信息很可能在以后被“回顾”,因此“时间”成为你在检索这些信息时最依赖的维度。
      • 因此,你应该选择一个提供良好“输入”体验的笔记应用程序。
  • “双向链接”是目前流行的笔记应用程序中常见的有用功能。

    • 谨慎使用,个人观点。不同人对此有不同的看法。
    • 不要过分依赖此功能,也不要感到有义务使用它。
    • 即使你使用它,也不要感到有义务遵循某些模式,如“原子笔记”或“Zettelkasten”。
      • 除非你在构建公共维基或产品文档,否则你不需要担心这些模式。

      • 你不需要担心“原子性”,直到它真的阻碍了你的检索过程。

      • 我发现遵循这些模式经常会显著中断我的“信息输入”、“提炼+内化”流程,而且大多数情况下,对“检索”方面的改善也很有限。

      • 例如,你将需要花费大量时间来正确地将你的笔记拆分成“原子笔记”。

      • 你可能需要预测未来的变化,并判断当前笔记是否“足够原子”,然后决定是否拆分它。

      • 你还需要为你的(数量庞大的)原子笔记命名。

      • 我建议将双向链接视为一种本地路由优化工具,用于你的检索流程:

        • 首先使用“搜索+标签”粗略地定位一些笔记,然后使用“双向链接”路由到你需要的笔记。
        • 将其视为一种可靠的凝聚工具,帮助你自由地将长笔记拆分为更小的笔记,以便更好地输入和提炼。
        • 由于链接是双向的,如果你感觉一个笔记包含太多的内容,并且你当前专注于一个子上下文,你应该感到舒适地创建一个新的链接笔记,并继续处理该子上下文。但别担心“原子性”。
  • 你可能不需要将所有数据都放在一个地方。

    • 例如,你的购物清单和你的工作待办事项不需要放在同一个软件中。
    • 例如,你在工作中学习到的经验和你在周末旅行时拍摄的照片不需要放在同一个软件中。
    • 在很多情况下,如果你这样做,可能会适得其反。
    • 我还在学习这一点。但我认为一个合理的做法是根据“场景”来拆分。
      • 你应该使用一个工具来处理一个场景。
      • 尽量减少你同时使用的工具数量。
      • 学会容忍“罕见”的情况,即你需要使用其他工具来“覆盖”无法使用主要工具的情况。
      • 例如,如果你想在Costco购物时记录一些“Golang”代码片段,只需将其放入你的手机中的内置笔记中,稍后再在笔记本电脑上查看即可。不要花几个小时来寻找一个可以在手机和笔记本电脑上都能使用的笔记应用程序。
      • 投资回报率将极其低。
      • 目前,我使用Foam在笔记本电脑上记录日常工作和收集信息,并使用Google Keep。我尝试使用同一个应用程序在所有场景中使用,但我发现它不够方便。
      • 我创建了这个站点,以便从手机上读取Foam中一些可公开分享的信息。这要归功于Quartz。但我不会期望它能够填补“输入”和“提炼”之间的差距,现在我知道我不要试图填补这个差距。
  • “可用性”很重要。

    • 我曾经因为在我的家庭实验室里捣鼓,导致笔记丢失,因为我无法访问服务器。
    • 因此,我仍然建议大多数人使用Notion。如果你由于公司政策或缺乏Obsidian的网络应用程序而无法使用Notion,那么Foam + Github私有仓库是一个不错的替代方案。
    • 我还建议设置一个本地“Gitea”服务器来“镜像”你的Github私有仓库,以便你拥有自己的家庭备份,并且可以在Github无法访问时访问它。
    • 此外,公司政策也是一个需要考虑的因素。Foam只需要vscode,据我所知,Google不允许在公司机器上使用Obsidian或Notion。
  • 我个人的一些偏好:

    • 良好的“Markdown”支持。
    • VIM绑定。

一些你可能没有意识到的功能:

  • Web Clipper:
    • 实际上,这很难说。对于某些人来说,这可能非常重要。但对我来说,这只是一个“锦上添花”的功能。我可以很好地使用另一个应用程序进行Web剪辑,并将提炼后的信息放入我的笔记应用程序中。
  • 可编程性:
    • 除非你想要在笔记中“编写程序”,否则这并不是什么大不了的事情。但是请注意,这需要你具备很高的编程技能,才能在你的流程发生变化时快速适应。
  • 无限层级结构:
    • 虽然拥有此功能会更好,但它可能不像你想象的那么重要,至少对于个人使用而言(对于公司使用而言,这可能更重要)。
    • 至少拥有3层层级结构就足够了。超过5或6层可能没有太大的用处。
  • 图视图:
    • 你很少会想要查看维基百科的“图视图”。
    • 这仍然是一个不错的附加功能,但它不会成为你选择或拒绝笔记应用程序的原因。
  • 复杂的模板系统或小部件系统:
    • 同样,如果你需要“项目管理”,那么这些功能是必要的。否则,它们不是那么重要。
    • 这也可能表明你正在滥用你的笔记系统。
    • 简单的模板(也带有树状结构或标签自动归档)总是好的。
    • 但复杂的模板(例如,依赖于某些自定义的前置属性或对象结构)不应该存在于你的笔记系统中。
      • 它们会随着你的需求变化而变得难以维护。
      • 这可能会导致供应商锁定。
      • 你可能会增加笔记系统的负担和故障点。
      • 注意:我说的是个人笔记工作流程,而不是任何实际的项目管理。
  • 多租户(即多用户):
    • 如果你不需要“项目管理”或“协作”,那么这个功能就没有什么用处。
  • 对附件类型的广泛支持:
    • 我认为以下附件类型是必须支持的:
      • 图片
    • 以下附件类型很好:
      • Mermaid、UML、Excalidraw和其他图表工具
      • 视频、音频文件
      • PDF文件
    • 其他附件类型可能没有那么重要。

Silverbullet.md

Silverbullet.md是我使用的最后一个笔记应用程序,然后我切换到Foam。

我想强调的是,它是一个功能强大的工具。

screenshot-silverbuleltmd

NOTE

Silverbullet.md尚未支持多用户。

特性:

  • 可以通过docker轻松进行自托管。
  • 无限层级结构,还可以创建目录节点作为笔记。
  • 支持反向链接。
  • 超级可编程。
    • 你可以使用SQL-like语法编写查询,并且前置属性被视为“对象属性”,因此……非常强大。
      • 你甚至可以定义你的“视图”渲染器,以确保查询结果以你喜欢的格式呈现。
    • 你可以编写自定义片段,以便轻松扩展你的/命令。
    • 你可以编写小部件,以便轻松将组件添加到你的笔记中。
    • 你可以编写脚本来使所有这些功能都变得动态(例如,根据笔记的当前日期进行计算)。
    • 当然,你可以定义你自己的模板……这并不是什么先进的功能,但其他功能确实很强大。
    • 它甚至支持“库”共享/下载(即插件系统,所有这些都通过“源代码”共享)。
    • 它甚至支持通过“自定义CSS”直接编写的“主题”。
  • 你的笔记(以及所有你的修改)都以Markdown文件的形式存储在后端!
  • 这意味着你的文件不会被锁定在某些数据库二进制文件中。
  • 这意味着你可以随时备份、恢复、修改、旁加载、查看你的笔记,因为它们只是纯Markdown文件。
  • 原生支持VIM绑定!
  • 只需要一个浏览器和一个可以自托管的地方。
  • 这使得它可以在不允许安装第三方软件的机器上使用。

我为什么停止使用它?(但我仍然强烈推荐给有权力的用户去尝试它,它要么解决你的问题,要么让你能够调整它来解决问题。)

首先,Silverbullet.md 2.0正在切换到离线+同步模式,这意味着你的浏览器将尝试将所有内容缓存到本地存储中。

从理论上讲,这应该可以实现某种程度的“离线”支持(这是许多人长期以来一直希望拥有的功能)。

但是,我个人不信任这种“自动”或“隐式”同步方法。我的经验表明,它可能会导致笔记损坏、冲突等问题,因此我不信任它。

但是,我需要说的是,基于我之前的银弹体验,我不再关心同步过程。

此外,

  • Silverbullet.md 太灵活了,对我来说。
    • 如果你是Lua的粉丝,你肯定会喜欢它。
    • 但是如果你想要一个开箱即用的应用程序,它可能不适合你。
    • 例如,如果你想创建一个“日历视图”来查看你的笔记,你可能需要编写一些代码来完成它。
    • 我担心我对这种过于灵活的工具的长期维护负担。
  • 在撰写本文时,搜索支持仍然不够好。
    • 但是社区中有一个插件可以改善搜索,使用grep(已安装在silverbullet.md docker镜像中)。
    • 我觉得我需要花费更多的时间来配置我的笔记本。

总而言之,这是一个很好的应用程序。它只是需要一些时间和精力来学习和配置。

NOTE

如果你认为自己是Geek并且喜欢摆弄东西,并且你想要一个以纯Markdown文件存储的应用程序,那么我强烈推荐你尝试它。

Trilium

Trilium 也是一款功能非常强大的笔记应用程序,可以在浏览器中使用,并且易于自托管。在 OutlineAnytypeaffinenotable 发布之前,Trilium 可能是唯一一款在功能集方面可以与 Obsidian 和 Notion 相抗衡的应用程序。

screenshot-trilium

NOTE

Trilium 基于数据库存储。并且 Trilium 也不支持多用户协作。

亮点:

  • 广泛支持各种附件,包括图片、PDF、Mermaid。它甚至支持 Excalidraw 和 DrawIO!
  • 它的编辑器不仅仅支持 Markdown,还支持颜色、高亮等多种格式设置。
  • 非常易于“编程”和定制。它支持自定义标签,可以用作简单的标签(单值),也可以用作键值对形式的属性。你可以使用这些标签构建项目管理工作流。
  • 无限层级的目录结构,你可以将目录节点用作笔记或“书籍”,方便地将其组织成“文件夹”。
  • 支持双向链接。
  • 非常强大的搜索功能,包括示例用例和复杂的查询选项。
  • 实用的日历小部件。
  • 主题支持。
  • Web Clipper 网页剪辑功能,作为一款开源软件,表现良好。虽然偶尔会出现网页剪辑失败的情况,但大多数时候它都能正常工作。

不足之处:

  • 没有 VIM 绑定。这可能是我的唯一真正问题。
  • 基于数据库的存储后端。这意味着:
    • 你需要谨慎进行更新。你需要确保有适当的备份,并知道如何从损坏的状态中恢复。
    • 你可能无法轻松导出笔记,并期望它能立即使用。
      • 不过,Trilium 在导出方面做得很好,支持多种格式和存档模式。 简而言之,对于基于数据库的笔记应用程序来说,这可能是你能期望到的最佳表现。
    • 我也想强调,作者创建了很多工具和功能来维护数据库的完整性,用户可以通过 Web 应用程序轻松访问它们。 因此,对于不关心数据可移植性的人来说,我认为不必过于担心数据库问题。
    • 虽然基于数据库并存在上述风险,但它已被证明在更新方面非常可靠。 作者真正用心维护这款软件。
      • 另外,原作者已经不再维护 Trilium(没有更多更新),考虑到当前软件的状态,我认为它已经足够稳定,可以长期使用。 你可能不需要或不想再更新了。 它的功能集已经非常丰富,其可定制性也足以让你在它之上开发出各种高级“工作流”。 在这种情况下,更新期间的数据库风险可能不再是一个问题。
        • 但使用数据库带来的可移植性降低的问题将始终存在。
  • 图视图的实现有些奇怪。

值得一提的是,Trilium 不支持离线模式。 它需要服务器始终在线才能工作。 这(至少曾经)对我来说不是一个大问题。 我大多数时候将服务器托管在我的家庭网络中,并且我大多数时间都在家工作。 但如果你让 Trilium 服务器始终处于可访问状态具有挑战性,你可能需要考虑其他选项(例如具有“离线”模式的应用程序,或声称是“本地优先”的应用程序,或只是使用云端服务)。

NOTE

如果你认为自己至少是半个极客,并且不介意花时间自定义你的 PKMS,并且关心使用数据库作为存储后端,那么 Trilium 可以是一个不错的选择。

(正在进行中:我将在 [trilium-brown-bag|Trilium Brown Bag] 中添加一些有趣的研究和技巧,敬请期待。)

Memos

Memos 是一款非常简单的笔记应用程序。但实际上,我不太理解为什么有这么多人喜欢 Memos,或者至少,为什么有这么多人声称将 Memos 作为他们的主要笔记应用程序。从我的角度来看,它只是一个支持 Markdown 的非常简单的笔记应用程序。然而,在使用 Memos 时,我发现以下问题与我的工作流程不符:

  • 不适合长篇笔记(无论是编写、阅读还是检索)。
    • 这意味着,你不太可能使用它来进行“提炼和内化”步骤。
    • 此外,在我使用它的时候,它不支持双向链接。(我不知道现在是否添加了这个功能。)
      • 也就是说,即使你想遵循“原子笔记”的模式(以便保持每个笔记都尽可能小),你也无法真正做到。更不用说像“跨包含”(transclusion)这样对“原子笔记”模式来说也很重要的进阶功能了。
  • 没有“文件夹”、“类别”或任何“树状”结构。你拥有的只有时间线和一个“标签”系统。
    • 也就是说,你基本上不应该在 Memos 中“组织”你的笔记。
  • 它也是基于数据库的(虽然它是 SQLite,你可以找到很多工具来查看或管理它)。
  • 没有 VIM 绑定。

Memos 的一些有趣的功能:

  • 它支持多用户(我认为社区实际上希望你将其用作自托管的微博/Twitter 替代品,因此它更像是一个“私有”社交应用程序,而不是真正的笔记应用程序)。
  • 我不知道为什么,但该应用程序有一个“笔记频率矩阵”(就像 Github 上的代码提交矩阵一样)。 我想说它确实是一个社交应用程序。

总而言之,我不认为 Memos 试图成为一个 PKMS。 它的优势可能在于与其他应用程序(如微信)的良好集成,以及对于那些不寻找特定行业功能(如代码语法高亮显示等)的人来说,它的简单易用。 对我来说,它可以替代“Google Keep”(如果我花时间设置所有方便的集成),但它离成为一个 PKMS 和离成为我屏幕上的“日常工作伴侣”还有很长的路要走。

Logseq

Logseq 颇有意思。它原本应该是一款 PKMS,但我发现它更像是一款特定的每日日记应用程序。尽管它对 Markdown 的支持足够好,但“大纲式”风格并不能完全满足我的需求。

screenshot-logseq

NOTE

对于“大纲式”风格,我认为我实际上可以习惯它,因为我经常在日常笔记中使用“无序列表”。在默认设置下,你基本上只需要使用“shift+enter”作为你的正常“回车”,而使用“enter”作为“新项目”。而且,你总是可以自定义按键来交换它们(如果我记得没错)。

我决定不使用它的原因:

  • “正式”版本的应用程序几乎是完全本地的(不仅仅是本地优先)。
    • Logseq 的“自托管”版本不支持任何“插件”。但 Logseq 的一些重要功能实际上是通过插件添加的。
    • “自托管”版本也是仅在线的,本地和远程之间没有同步。
    • 如果你选择默认应用程序(“完全本地”的那个),你需要手动处理设备之间的同步(除非你支付第一方同步服务)。
      • 可以做到,但不是很方便。
  • 在我两次尝试将其用作我的日常驱动程序时,我发现其工作区(即存储)很容易损坏,导致一些数据丢失。 看起来当发生冲突时,它并没有很好地阻止“危险”操作。

Logseq 有一个内置的“白板”功能,这是一个有趣的想法(请注意,有一个基于“图表”的笔记应用程序叫做 Heptabase,它非常受欢迎),我认为它具有很大的潜力,尤其是在项目构思和头脑风暴方面。但不知何故,我发现 Logseq 提供的白板功能有点难以理解和操作。我没有设法利用它来帮助我的日常工作。

Logseq 还具有一个“抽认卡”功能,我认为它是“Anki 卡”的克隆。我不觉得这是我需要的特性。但对于某些人来说,它可能必不可少。

Outline

我只是简短地尝试过 Outline,所以我不能说太多关于它。它看起来不错,但我因为以下原因放弃了它:

  • 我正在远离所有基于“数据库”的笔记应用程序。
  • 对 Markdown 的支持不够好,而且编辑器对我来说有点奇怪。

但对于那些想将其用作“协作”工具或项目 wiki 页面的用户来说,这是一个不错的应用程序。我记得自托管设置有点复杂,因为它只接受 OAuth2 进行身份验证,所以你需要使用来自其他服务(如 Slack)的帐户。

Notion

我认为 Notion 的优点和缺点是相同的,它“all-in-one”的特性太多了。即使使用了 4 年,我仍然觉得它对我来说有点难以承受。即使我建立了一个“项目管理”系统来“自动排序我的任务基于紧迫性/优先级”,并“帮助我总结我的每日和每周报告”,我仍然觉得我没有充分利用它的潜力(当然)。

对我来说,有一个关键的缺点 Notion 可能永远无法克服:数据存储在云端。但对于那些不太关心“数据所有权”的人来说,我认为 Notion 是一个不错的选择:

  • 无限层级的页面/文件夹。
  • 双向链接 + 跨包含。
  • 丰富的文本编辑器,支持 Markdown(以及不仅仅是 Markdown)。
  • 类似数据库的表格。这也意味着你的笔记具有一定的“可编程性”。
  • 强大的搜索和人工智能驱动的搜索
    • 我认为“人工智能”对信息检索很重要。有一天,我问 Notion 我是什么时候从一个团队转移到另一个团队的,我很惊讶它实际上可以根据我的笔记内容“推断”出一个答案。
  • 漂亮的 UI。
  • 所有平台上的原生应用程序和 Web 应用程序。

我认为 Notion 很棒,但我不喜欢围绕 Notion 的“生态系统”(不是 Notion 的错,或者至少不公平地全部怪罪 Notion):

市场上充斥着太多的“模板”和“第二大脑”的东西。

Notion 具有完成所有这些事情的能力,但作为一个普通用户,我需要学习“截断”一些这些功能/用途,以确保我正在使用该工具,而不是该工具正在控制我:

  • Notion 可以是你的 PKMS。
  • Notion 可以是一个博客平台。
  • Notion 可以是一个项目管理工具(甚至可以用于 bug 跟踪、甘特图…)。
  • Notion 可以是你的“通讯录”。
  • 用户可以在 Notion 上发布“表单”。
  • 用户可以在 Notion 上构建“商店”。
  • Notion 可以成为某些社区的“论坛”。
  • 太多了…

功能如此强大,所以如果你只想将其用作笔记应用程序,你最大的问题将是:你应该尝试哪些功能,哪些功能不应该尝试?

NOTE

但是,在可编程性方面,SilverbulletMD 仍然是最好的,最极客的。 (SilverbulletMD 确实如其所声称的那样是用户可编程的。) 但 Notion 已经提供了普通笔记用户所需的一切。

总而言之,我认为对于那些不想“自托管”并且不想学习 Obsidian 的“插件”系统的人来说,Notion 绝对是一个不错的选择(它的功能集确保了这款应用程序将在很长一段时间内为任何笔记用户提供未来的保障)。

Evernote

当 Notion.so 发布时,似乎每个人都在嘲笑 Evernote。但经过这么多年的跳跃式体验各种笔记应用程序之后,我不得不说,即使是 2015 年的 Evernote 实际上已经足够好,可以作为一个纯粹的笔记应用程序。(好吧,如果你需要手写支持,请忽略我刚才说的一切)。

我想说的是,(在人工智能成为主流之前),“搜索”和“标签”应该是笔记应用程序中最重要的两种信息检索方式,而这两种方法确实可以让 85% 的我满意。

我不会在这里多说关于 Evernote 的内容,因为我上次使用它已经是 7 年前甚至更久了。但如果有人想远离一些高级/闪亮的功能以保持生活简单,Evernote 仍然是一个不错的选择。

NOTE

我曾经是一个非常重视新功能、新功能、新工具、新设计的人。但现在我越来越意识到,我需要让生活中的大多数事情保持简单,这样我才能真正专注于对我来说真正重要的事情。我仍在努力优化我的生活,还有很长的路要走。

Foam

那么,我为什么选择使用 Foam 呢?

  • 首先,由于公司政策以及 Obsidian 缺乏 Web 应用,我无法使用 Obsidian。但 VS Code 是一种许多软件工程师每天都在使用的软件,并且肯定可以在大多数科技公司中使用。
  • 使用 Foam 意味着你可能想要通过“git”管理你的笔记同步,这听起来可能不方便,但实际上并非如此。
    • 如果我要“提炼或内化”我的快速笔记,我无论如何都会使用带有键盘的设备。
    • 大多数与我的工作相关的或需要长期保留的快速笔记都将在我在台式机或笔记本电脑上工作时生成。
      • 对于我在手机上生成的笔记,通常寿命都很短或随意。对于我希望长期保留但手机上生成的“罕见”笔记,我应该训练自己记住在访问键盘时查看它们。
  • Foam 的功能集与 Notion 或 Obsidian 相比并不令人羡慕,更不用说 Silverbullet.md 了。但作为一款笔记应用程序,它已经足够好(只要你不要期望自动化工作流、项目管理、类似数据库的汇总等)。
    • 它有标签。
    • 它有双向链接(称为 wikilinks)。
    • 用户可以使用 VS Code 和 grep 在本地搜索。
  • 然而,我发现的一件事是不方便的是缺乏在旅途中查看我的笔记的能力。即使我不计划在手机上添加/修改我的 Foam 笔记,我可能仍然想能够在旅途中查看我的笔记。
    • (例如,当我的家庭互联网由于我的捣鼓再次中断时,我想依靠我的手机阅读我的笔记。)
  • 我可以访问我的 GitHub 页面并阅读 Markdown 文件。然而,一个人可能不想使用 GitHub 阅读 Markdown 笔记:
    • GitHub 上没有反向链接。
    • 正文被渲染成表格,这可能不是读者所期望的。
    • 没有“标签”列表视图。
  • 因此,我发现 Quartz 是一个很好的 Foam 笔记渲染器。
  • 请查看此笔记 [use-quartz-as-a-builder-of-foam-vault-deploy-to-cloudflare],了解 Foam + Quartz + Cloudflare Pages 的详细信息。

结果是:

  • 我可以使用带有我日常 vim 绑定功能的 VS Code “生成”笔记。
    • 我不需要学习使用另一个应用程序,我不需要花费太多时间“自定义”另一个 UI。
    • 我在写作时感觉受到干扰更少。
  • 我可以使用 VS Code 搜索和 Foam 扩展的标签列表视图在 VS Code 中查找我的笔记。
  • 我可以在 Quartz 上共享我的笔记和文章。不需要“登录”,此外,还有搜索、标签、反向链接、图视图和评论(尽管评论不会内联)。
  • 我需要显式地将我的笔记“同步”到我的 git 仓库。有点繁琐,但还好,希望如此 🫰。
    • 但有一个好处,没有了“隐式”同步和“未知”数据损坏。
  • 由于我从 Silverbullet.md 迁移,我失去了“脚本”、“小部件”、“查询”和高度可定制的模板等功能。
    • 但是,Foam 的模板支持对我来说已经足够好,因为我试图原谅我缺乏对笔记“结构”和“模式”的追求。
    • 此外,VS Code 内置的片段支持足以涵盖一些基本用例。
  • 尽管 Foam 本身缺乏使用“类似 SQL”的语法查询我的笔记的能力,但我发现有一些有趣的工具可以在网上使用。如果我发现自己需要查询我的笔记,我可能会尝试它们。现在我会让我的工作流程保持简单。

撰写本文时,我已经对 Foam 感到满意了一个月。