「笔记」与「写作」的区别
「卡片笔记」和「卡片写作」其实是两回事儿,但总有人把这二者混为一谈。
卡片笔记构成的是整体知识结构。你在不同时间,从不同渠道获取来的各种知识单元在这里组织起来,形成了你的「第二大脑」。笔记系统帮你忠实记录和管理自己独特的知识,为将来可能的调用做好准备。
而「卡片写作」则面向项目输出过程。它是根据某个主题或者项目的要求,把一系列卡片从不同角落里面提取出来,按照某个项目的需求进行整合梳理,最后进行线性的输出。
举个不恰当的例子。卡片笔记就类似于你居家的时候物品摆放的位置,你的牙刷在洗手间,充电宝在客厅,睡眠眼罩在卧室,原本可能离着十几米远;卡片写作,就如同你出差的时候打包行李的过程,牙刷、充电宝和睡眠眼罩会从各自原本的位置拿出来,压缩到一个小小的行李箱里面。
在输入的时候,如果你有意识只按照当前项目的需求来采集信息,那么短期效率可能会提高。但项目进展过程里,你会主动过滤掉很多有潜在价值,却与当前主题无关的点子。这不啻于暴殄天物。为什么卡片笔记写作法往往适合于长期战略?卢曼可以用它在 30 年间写作 70 本书和 550 篇论文,秘诀是什么?恰恰就是卡片笔记系统中笔记单元的高度可重用性,这样你知识的积累才可以焕发乘法效应。卢曼号称从来不逼迫自己写作,恰恰是因为随时采集到各种新的点子,才会随时有事情可做,而不拘泥于某一主题记录。他的写作是「多线程」的。若你只面向单一项目记笔记,是无法产生这种创造与输出结果的。
在输出的时候,若你总去考虑某张卡片的内容将来还可能要重复利用,写作时便可能束手束脚,生怕当前记录的内容不够「单元化」,或叙述方式与某个项目过度耦合。这样一来,你写作卡片的负担会加重。
上面两种可能的问题,解释了为什么有些人试图用 "All in One"(单一工具一站式) 的方法同时处理卡片笔记和卡片写作,总会遇到这样或那样的问题。
你试图 All in One,就会有各种顾虑。例如说,存储于笔记系统中的卡片,拿到某个具体项目中,究竟应该选择引用,还是复制一份?
如果复制一份,那么你的笔记系统里面,也就多了一个拷贝。随着你重复利用卡片次数的增加,将来检索内容的时候,可能会遇到大量的重复,难以取舍;可如果你选择引用而不创建新的拷贝,那么可能的尴尬是每写一次文章,你的原始卡片就要被改动一回,这样才能规避「自我剽窃」的窘境。「长期笔记」(permanent note)号称「长期」,却每遇到一个项目,自身就得大改一次,这情何以堪?就算有 AI assistant 的辅助,像这样在「第二大脑」中大动干戈「伤筋动骨」的方式,兴许也不是你想要的吧?
反之,若把卡片笔记和卡片写作分开,那么你就会从容许多。分离后,你在卡片笔记系统里只需专注收集和整理,明确基础卡片和主题、项目之间的关系,而不必有更多顾虑;到写作的时候,你可以按照当前项目来任意修改、调整、剪裁和拼接卡片,高效输出。
卡片写作工具们
说起卡片写作的工具,我可没少尝试。深度使用的应用列表,包括但不限于:Ulysses、Milanote、Scrivener、Gingko。
有些我曾经深度尝试使用的工具,没有出现在这个列表里。并非是它们不能承担卡片写作功能,而是这些工具包含了太多「卡片笔记」的功能,用户很容易受到诱惑,去试图 All in One。例如 Obsidian 和 Heptabase 等工具都把自己定位成「第二大脑」,而非单纯的写作工具。因此很多类似工具,并没有被我放在「卡片写作」应用类目下面。
这个应用列表里面,我之前最为喜欢的应用是 Scrivener 。它拥有 Corkboard 的「类白板」功能,让我得以自由排列整理卡片。在写作界面的左侧大纲结构里,每一章卡片可以来回挪动,成为其他卡片的子节点,这使得我整理思绪非常方便。
你最近可能没少使用「白板」(Canvas)功能且乐此不疲,对于这种传统的卡片展开排布功能不以为然。但是请别忘了,不管是 Heptabase 还是 Obsidian 的 Canvas 功能,只是你思绪的连接器和查看窗口。至少到本文写作时,你还不能把那些软件白板上卡片排布的结果,一键形成最终输出的线性文字。你不得不在小窗口之间来回切换,把 Canvas 卡片里面的内容一份份拷贝到最终的文稿里面。麻烦且不说,最终文档也只承接了卡片的内容,却再也没了细致的结构组织信息。如果后续你需要调整若干章节的顺序,光是寻找、定位、选取、剪切这些活儿,就会让你不胜其烦。
Scrivener 则不然,你的卡片顺序排布和最终的输出结果是完全对应的。这边你轻松拼接卡片,那边输出就是最终的文稿。如果你需要对初稿进行修改,所有的结构信息都在。即便对结构进行调整,也是非常方便直观的。
Scrivener 类似于 LaTeX,整体输出采用的是编译(Compile)概念。你的原始内容不管是网页也好,富文本也好,纯文本也罢...... 只要它认得,就都可以从编译器一头塞进去,另一边出来的就是你想要的格式了,包括 Markdown, Word, PDF, Latex, HTML ...... 你在局部写作的时候不必顾忌格式,整体输出一键看效果的方式最能打消长文写作时的焦虑,真是让人越写越带劲。
我曾经在很长一段时间里,用 Scrivener 写作科研论文和万字以上的长篇文章,包括写作报告与书稿等。但是 Scrivener 也有比较明显的缺点,就是过度复杂。例如说它的编译功能包含了大量我不需要的格式和选项;反倒是那些我真正需要的功能(例如生成 Markdown) ,使用起来却非常别扭。Scrivener 支持的格式只是 MultiMarkdown ,所以我还需要调整转化才能和其他编辑器结合起来使用,已完成文章的渲染和发布。
为了学习 Scrivener,我甚至还专门 买了一门视频课程。为了对 Scrivener 输出的内容进行调整,我做了好几个 Python 脚本,并且用 Keyboard Maestro 定义了快捷键。可是,无论如何我也无法搞定输出的 Markdown 里面 gif 的动态显示。只要动图加入到 Scrivener,输出到 Markdown 的时候,立刻就会自动变为静态图像,令人抓狂。我到论坛上翻找半天,看到相关的讨论,对应的答复很直接:
这是个写书稿用的工具,要动图干啥?
设置复杂,动图输出 Markdown 功能有局限,学习曲线对普通用户不够友好,加上 Scrivener 本身价格不菲等限制条件,使得我没法把它推荐给更多的卡片写作者。
我需要的,是像 Scrivener 一样有灵活的卡片拼接组合功能,但是功能少而精,学习起来并不复杂的卡片写作工具。当我看到 Lattics 时,着实眼前一亮。
Lattics 的特点
一个多月试用下来,我总结 Lattics 特点包括以下三个方面:
- 界面清爽,学习曲线低;
- 提供大纲组织的不同视图,适合视觉工作者;
- 本地优先,注重数据安全
下面咱们分别介绍一下。
首先,界面清爽,学习曲线低。
Lattics 开发团队的其他作品,包括了 Zine 和 Varlens 。如果你使用过这些应用,应该对它们的交互界面有深刻的印象。
Lattics 保留了这种简洁明快的交互风格。最典型的例子就是设置功能,Lattics 的设置只有这些,你可以很轻松滑到设置界面的底部。
与之形成鲜明对比的,是 Scrivener 的设置。我简单点击几个页面,让你看看 Scrivener 设置里面的选项数量。
Lattics 设置简单,交互界面友好,普通用户学起来也不会觉得困难。Lattics 的文档系统 做得也很清晰,每一部分都很简短。花个 15 分钟左右看过之后,你就大致明白 Lattics 基本的使用方法了。
麻雀虽小,五脏俱全。Lattics 导出的格式选项也很全面。包括了主流的 PDF, Word 和 Markdown 等。特别贴心的是直接包括了 png 图片格式,便于你通过长图的形式在社交媒体发布内容。
其次,Lattics 提供不同视图,适合视觉工作者。
在 Lattics 里面,用户不仅可以在大纲里调整排布卡片,还能用思维导图、情节视图与鸟瞰视图形式来查看和组织它们。人类受进化路径的影响,更容易理解直观的图像化内容。地图、导航和思维导图都是常见的例证。对于视觉工作者来说,使用这些图像化的方式组织内容,理解和使用更为简单便捷,也有利于提升工作效率。
我会在下一节给你详细展现这些视图的具体使用方式。
第三,本地优先,注重数据安全。
写作这件事儿也讲究「一鼓作气,再而衰,三而竭」。写作者最怕遇到的就是写作工具出现问题,导致辛辛苦苦书写的内容丢失。很多人在选择写作工具的时候,往往会避免使用 Web 类别的工具。这里首先有个连接的稳定性问题,如果哪天工具的网址访问不了,自己的工作就无法继续了。另外如果数据在服务器端发生损失,对用户属于不可抗力,后果也很严重。
和 Ulysses 以及 Scrivener 一样, Lattics 也选择了本地优先存储内容。这样一来,即便网断了,你也能继续写作。这种数据存储方式免除了不少写作者的后顾之忧。而每日自动备份的功能,也可以让你选择将项目内容定期备份到自己信赖的本地存储或者网盘。
这里你不难看到,Lattics 非常尽职尽责地帮助我在每一天进行了内容的备份。
Lattics 用法演示
前面说了,我现在已经实现了卡片笔记与卡片写作的区分。卡片笔记系统我主要使用 Tana ,原因是它可以支持灵活复杂的层级结构。在 这个视频里,我详细地给你介绍过 Tana 的 Supertag 使用方式。
笔记与写作的功能分离,让我在写卡片的时候终于可以摆脱焦虑。因为我知道我随手写下的卡片和最终呈现在发布页面或者纸张上的内容并不需要完全一样。当我认为某个主题已经积攒了足够多的内容,成熟到需要输出的时候,会在 Tana 里面把对应项目点开,利用 Tana 独特的 Supertag 嵌入动态查询功能,立即找到所有已经积累的相关内容。
Tana 里卡片的标题并不重要,它们只负责描述卡片的主旨。所有内容都可以在写作的过程由作者自行灵活调整。Tana 目前输出功能还受到比较大的限制。从导出格式来讲,目前只支持 plain HTML 。在某个节点上,使用 Cmd + K 命令,输入 export
执行导出,效果是这样的:
在 Lattics 的新建项目里,我可以把 plain HTML 内容粘贴进来。由于默认复制的 Tana 导出 HTMl 格式为列表格式,如果直接使用基本粘贴功能,贴进来的内容会成为这个样子:
这是小节,无伤大雅。但作为最终线性文字输出,这种列表形式不是很合适。后面输出发布的时候,还需要专门进行调整,比较麻烦。所以我干脆会在粘贴的时候,使用 Lattics 编辑器提供的「粘贴匹配样式」功能。
这样一来,粘贴进来的文字,就成了这样子:
这样压扁之后的正文,用起来就舒服多了。不过你应该已经看到了,从 Tana 到 Lattics 的内容复制结果并不完美。因为图片都没有能够正常显示。
上图红色方框里面的内容,本应该是图片的。不过这不是 Lattics 的问题,因为 Tana 导出的时候,图片本来就已经丢掉了。
到目前为止,我对 Tana 到 Lattics 图片和链接缺失的问题还没有太好的解决办法。只能通过一张张拷贝图片,一个个复制链接来解决。好在卡片笔记系统里,一般卡片以文字为主,并不会包含过多的图片。因此手动处理虽然听起来麻烦,实际操作上复杂度也可以承受。
解决了从「卡片笔记」系统到「卡片写作」系统的基础原材料内容传递之后,我在 Lattics 里面的卡片就初具规模了。你可以把采集进来的卡片依次拖动到大纲里面,这样就有了写作项目基础的素材。
最初导入的时候,你可以一股脑加入,而不必关心卡片加入项目的次序。因为后续你可以用思维导图视图,快速调整卡片的先后顺序。
注意在导图里面你改变卡片顺序的同时,左侧的树状大纲里面卡片的组织顺序也是对应的变化。这一点非常直观和方便。
当然,你也可以把卡片拖入到左侧树状大纲已经存在的卡片下面,形成卡片的多级结构。例如这样。
卡片写作的基础框架齐备了,但是卡片之间实际上还是需要很多过渡联接的。对某些局部细节,我们也需要进一步阐述或者延展。这就需要我们根据实际情况,在当前项目里写作新的卡片。
在 Lattics 里面,写作新的卡片很容易。你只需要快捷键 Cmd + N 就可以打开新的卡片,来快速书写。
新写的卡片不仅可以放到大纲里面,也可以用下面这样的方式拖拽到编辑区某张卡片中的位置,形成对新卡片的「引用」。
引用的卡片,默认只显示一个标题。你可以点击卡片进行调整,选择改成引用全文。甚至还可以选择「取消引用」,这张卡片的内容就被「吞」到当前的上下文里了。
你可能会疑惑 —— 这样做,卡片的「原子化」特性岂不消失了?将来想在别的项目里重复利用该怎么办?
这恰恰就是咱们把「卡片笔记」和「卡片写作」加以区分的好处。你所需要的「原子化」卡片笔记,好端端存放在 Tana 这样的第二大脑中,依然保持着和相关卡片、主题之间的链接,并且可以随着你的阅读与思考,不断建立新的链接。而此处是你的卡片写作场,这些卡片可以做到用完即弃。在 Lattics 里,你丝毫也不用顾忌,可以随意对它们做出修改或者删除动作。
你可以不断调整卡片之间的关联,为项目最终的输出服务。前面我给你演示了思维导图视图。不过比起思维导图来,我更喜欢使用「鸟瞰视图」,因为这个视图包含了卡片里面的具体内容,可以让用户更容易看到卡片的细节,甚至是卡片之间的引用关联(下图里面紫色虚线)。
你既可以把卡片拖到大纲里,也可以嵌入到卡片中。卡片之间可以有多种不同的关联方式。这些灵活的方式,使你处理内容之间的关系时,更加得心应手。而所有的修改,都可以在每一张卡片里面去做。这样你更容易聚焦,同时减轻写作时整体进度的压力,焦虑也能降低不少。
写作时聚焦很好,但文章或者书籍整体输出的时候,你总需要了解整体的效果。这时你的视线就不能局限在某张卡片的「局部视角」了。你可以点击大纲下方的「顺序阅读」按钮,Lattics 就可以把所有的内容自动拼接在一起,让你轻松查看整体效果了。
这个功能看似简单,却可以让你获得很大的成就感与安全感。你知道自己只需要聚焦和专注在一张张卡片上写作和修改。整体的输出,交给 Lattics 替你管理就好。每当我写了千八百字之后,都喜欢点开这个功能,看看那些写就的文字,就如同狮王走上高坡环视自己的领地般,颇能提振信心。
如果你想尝试的话,Lattics 的官网链接在这里。
对 Lattics 的三条改进建议
这一个多月用下来,我对 Lattics 卡片写作主要功能还是比较满意的。然而我觉得在某些细节之处,Lattics 的开发团队还有改进的空间。
第一点,是希望能提升图文内容抓取能力。
Lattics 的最新一版更新,解决了从网页上拷贝图片和文字混合内容的功能。我尝试了一下,觉得对普通内容摘取还是不错的。但是如果我们需要把 Lattics 作为卡片写作的主力应用,要求就得更高一些。我们在其他应用里记录的内容,也希望能够保持图文和链接格式拷贝进来。这样才有「百川归海」之势。举例来说,从飞书文档拷贝图文混排内容,Bear 可以轻松保持图片和链接。
但是同样的内容, Lattics 拷贝进来的时候,就只剩下文字,图片看不到了。
我请教过好几位资深的开发者。他们表示不同笔记应用背后的技术各异,跨应用拷贝图文看似简单,但是「粘贴」这个动作其实有非常多的工作要做,需要对各种情况都做出区分适配。我这几年尝试下来,觉得 Bear 和 TheBrain 的内容抓取功能最让人印象深刻。希望 Lattics 可以对更多应用的数据格式做出适应,让用户将其他笔记应用内容拷贝到 Lattics 时能够更加便捷安心。
第二点建议,依然和图片相关。
我发现在导出的时候,Lattics 对 Markdown 里面的图片,采用的并非是图片链接的形式,而是把图片干脆用 base64 编码嵌入其中。
这样做的好处是图片随时跟着 Markdown 内容走,不会因为忘记拷贝图片,或者远端图片地址失效,导致数据损失。但它带来的问题也不小。Lattics 本身并没有渲染和发布功能,所以我经常需要使用 Metion 或者 Visual Studio Code 为最终发布进行铺垫。很多 Markdown 编辑器其实是不支持展示过长的文档的。而过多内嵌图片,会使得图片占用的内容比例过大,一来对编辑不友好,二来有可能出现编辑器响应延迟甚至是显示不全。另外,可能也是因为在 Lattics 中,图片被处理成内嵌的缘故,导致你在 Lattics 中选中图片试图拷贝出来时,会发现根本就没有这个选项。
我的建议是把 Textbundle 这个 Markdown 打包格式加入到 Lattics 的输出选项。这样一来,导出的内容中也就同时包含了图片目录,跟随 Markdown 文件一起移动。既保障了数据的完整性,又避免了 Markdown 内部出现过长的片段用于图片描述。
最后一点,是希望 Lattics 能提供卡片的分割功能。
这看似有些吹毛求疵的嫌疑。毕竟你可以直接剪切某张卡片后半部分的内容,然后用新的卡片来装载,从而达成内容的分割结果。但是你会看到,在 Heptabase, Scrivener 和 Ulysses 这样的工具里,很早就提供了卡片的分割选项。而 Obsidian 里你也可以通过 Note Refactor 插件,来达成这一效果。
为什么这个功能在其他软件中很普遍呢?就是因为卡片的原子化利于形成灵活的组织结构,所以如果记录内容过长,就有必要随时「砍一刀」,这样后续在其间挂载下一级卡片,就会更加方便。
小结
本文咱们讨论了「卡片笔记」与「卡片写作」系统独立区隔的必要性。目前的卡片笔记系统,我倾向于使用 Tana ;而对于卡片写作部分,我使用的是与 Scrivener 近似,但是功能更为简洁的 Lattics。我为你总结了 Lattics 的特点,演示了我目前将其与 Tana 结合的使用方法,并且叙述了我对开发团队的几点建议。希望本文的介绍可以为你选择卡片写作工具,提供一个新的可能选项。
对于卡片写作工具,你有其他应用要推荐的吗?能否简要说说它的特点?欢迎留言,咱们一起交流讨论。
如果你觉得本文有用,请充电。
如果本文可能对你的朋友有帮助,请转发给他们。
欢迎关注我的专栏「科研利器」,以便及时收到后续的更新内容。