自从notion大火以来,各种新式笔记层出不穷。notion作为引领者,有很多创新,商业化也较为成功,但自由度有所欠缺,而且是储存在云上,较为不便。思源开箱即用,但同步方案代价很高,阻碍了它的推广。又有anytype,概念非常新颖,可惜基础功能如双链都没有做好。最夸张的是Tiddlywiki,号称可以用笔记编辑所有笔记的功能,功能非常复杂,没点编程知识真搞不定。
一个优秀的笔记,首先是要有很好的层级。
具有很好层级的笔记才是一个好笔记,大量笔记堆积在一起不是个好习惯。就像桌面,一定要摆放的整整齐齐,需要某个笔记的时候能快速的找到它。
方案基本有两种,一种是文件夹,一种是标签。
我个人喜欢文件夹。因为标签虽然可以对一个笔记进行更精准的交叉分类,但大部分笔记没有解决标签的关键问题就是标签的层级。
比如现在有几个标签,分别是动物,哺乳动物,大型哺乳动物,牛,奶牛。《荷兰奶牛》这个笔记应该具备上述所有标签,添加标签的过程会显得非常繁琐。
文件夹的作用是按某一种规则进行分类,而标签是可以同时通过几种规则来找到文件。
但不管哪种方法,必须有一个好的层级。
除了属性的层级外。还有笔记本身的层级。
一个笔记叫page,page是有若干个note构成,note相当于段落,一个note由其他元素构成,note相当于块(block)。其他元素就相当于notion中的元素。比如文本(text)、图像(imge)等。
元素不能单独放在page里,而应该先放在note里。note是可以放在另一个note中。比如牛是一种哺乳动物。这是一个note,而哺乳动物是一个双链的note,它可以放在这个note中。但是哺乳动物这个双链的来源的note叫元数据,元数据的note必须是单独一行或者一段。
而元素也应该分类,第一类是内容类,比如文本、图像。第二类是格式类,如颜色和加粗。第三类是特殊格式类如序号、待办、标题。第四类是嵌入格式类,如白板、pdf、多元列表等。
层级的关键在于可折叠性,可以一键折叠不同的层级,也可以折叠某个对象。
对象和引用
笔记中所有的东西都是对象。包括内容和格式以及引用。
对象是一种元数据,应该被定义。
引用也是一种对象,应该单独拿出来,被定义。
对象也分两种,一种是格式对象,一种是内容对象。
比如,text对象定义是格式对象储存纯文本,imge对象是格式对象储存图像。note对象是包含text和image等对象的格式对象。而page是由note组成的格式对象。名片是特定内容的由note组成的格式对象。哺乳动物是一个格式为note或者page的内容对象。
引用一个格式对象,那么这个对象会新建一个md文档或者向当前md文档插入一段特定格式的内容。
而引用一个内容对象会以定义的呈现方式以双链的方式呈现。比如哺乳动物这个内容对象,被引用后可以直接显示这个对象的所有内容。内容对象就是词条。引用这个词条的时候可以直接显示词条内容,也可以显示特定内容,比如我们在定义这个词条时,添加显示属性1为词条名,属性2为所有内容,属性3为别名。那么就可以通过“|数字”来显示不同内容,而不用总是每次都把要显示的内容复制粘贴到“|”后面。
创建一个对象就是创建一个模板,或插入,或新建,并不会改变储存的方式。
不是没有规则就是真自由。少量的添加规则,可以让笔记更井井有条。当然也可以像tiddlywike一样,通过开启高级编辑模式编辑笔记软件的本体。开启高级编辑模式后,会出现一些额外的插件,可以编辑软件本身,比如颜色外观,添加删除按钮。笔记软件的所有东西都会成为一个对象。
而任何地方都可以引用,引用也要分块引用和双链引用,双链引用往往引用另一个md文件,用[],而块引用可以用(())加以区别,((md名称|块名|显示内容))
颗粒度
最小颗粒自然是元素对象,比如一个数字一个文本一个图像一个音频,但是引用要加以限制,可以被引用的最小颗粒是note,所有对象的引用都要放在note中实现。而所有被引用的note都要被定义,任何没有定义的note无法被引用。
如何定义一个note,第一就是给它起个名字,引用时不注明的情况下,默认属性1显示名字,注明数字2则显示所有内容。可以自定义属性3别名。在定义词条时,可以直接忽略1和2
用::进行定义。
比如青蛙::青蛙是蛙科褶蛙属的两栖类动物,其头部略呈三角形,长大于宽;眼大而凸出;前肢短,指趾端钝尖,后肢较短粗,趾间几为全蹼;背部较粗糙,生活时蓝绿、黄绿、深绿,灰绿、灰褐色等,具有不规则的黑斑,腹面皮肤白色,光滑,无斑。青蛙::1+空格 青蛙::2+空格 青蛙::3+蛤蟆 青蛙::+3+小蛙,
容量
就是软件卡顿的最大字数,比如一个100万字的小说的md打开是不是卡顿。
简藏
电脑端和手机端的剪藏是非常重要的。现在常用的方法是omnivore随后阅读搭配
使用。