CU
1
无论使用的什么编码(序号、时间),我见很多分享都是在文件名上编码:
2026-01-01-xxxx.md
1.1a xxxx.md、1.1.2 xxxx.md
我们知道文件是以“路径+文件名”的形式存在的,那为什么不把编码部分放到路径中呢?
以时间编码为例,可以创建日期文件夹,把笔记放进去,如 2026/01/01/xxxx.md。
如果用这个方式,就只需要建立一次最初的编码前缀,不用像“在文件名上编码”那样,重复写已经写过的前缀编码。例如: 1.1a xxxx.md 和 1.1b xxxx.md 就需要重复写 1.1 这个前缀。
我想知道,相较于“在文件夹上编码”,“在文件名上编码”有什么功能或需求是不可替代的呢?
Ryooo
(Roy)
2
我感觉你这种做法某些情况下更灵活——需要改变文件的分类,那么就把这个文件移动到相应文件夹即可。
唯一可能不好的地方在于使用快速切换查找文件的时候没法从完整编码入手?
单纯方便一些吧,把唯一标识放到条目层级而不是文件夹上,避免创建/检索/引用的时候无法区分同标题的条目,毕竟不是每个人都会创建日期文件夹
CU
4
可以举个例子说明吗?我在 Obsidian 中使用时并没有发现这个问题,或者说你指的是别的笔记软件?
以下是我对“创建/检索/引用”的理解:
创建:
如果要在同一文件夹下创建同名笔记,在修改名字的时候, Obsidian 会有提示 “已有重名文件”,我们是没法创建的。如果实际使用中确实遇到了这种情况,是否可以看作是一种提醒?提醒我们重新考虑重名笔记,能不能进一步区分?
检索:
如果使用“全局搜索”,由于同名文件并不会显示各自的目录,所以在文件名上确实无法区分。但在实际使用中,笔记中的具体内容通常也会被搜索关键字匹配到,我们区分笔记并不仅从文件名上区分,还会从内容上区分。所以我认为能满足检索需求。
如果使用“快速打开”(Command + O),笔记下方是会显示目录的。
引用:
在使用 [[ 引用笔记的时候,会在标题名下显示文件所在目录(根目录为空白)。两个重名笔记是可以区分的。
CU
5
我试了一下,Obsidian 的快速切换查找文件可以匹配目录,但这个匹配算法可能会有影响。
比如 test/a/tst/tes/000.md这个文件:
如果想通过文件名检索,输入000 是可以直接匹配到这个文件的。
但如果想通过笔记的上一级编码 tes 来匹配,却只能匹配到 test 这个顶层目录。
但是又仔细想来,比较符合“由浅入深”层级匹配的思想,先匹配最顶层,再层层深入匹配。
所以如果要使用文件夹来编码,在通过编码检索的时候确实需要注意一下。
开发者做了适配当然没关系呀,但不能要求所有早期插件或者三方工具都预置校验或自定义路径功能,从条目标识上区分显然是最简洁保险的方法。
举个例子,我以前用毛线剪藏这类三方剪藏工具的时候,直接在文件目录创建md文档,默认的动作就是覆盖同名文件,直接区分时间戳明显比写脚本自定义路径更方便保险;自己开发脚本时也是一个逻辑。
检索的问题因人而异,不清楚楼主的工作流是怎样的,我个人没有配置关于自定义路径的自动化脚本,单纯是把编码到标题上更方便模板、检索等工具,例如以前有一些卡片视图的插件(Page Gallery 、Vault Explorer等),都保留了在当前卡片视图下检索文件名的功能。
很简单的一个逻辑,文件名的成本小于路径。前者是与条目强绑定的,不需要在交互时参考或键入路径信息,且大部分插件都会至少保留这项检索功能;后者比较适配特定工具,但需要规划好结构。
结合自己的工作流选择,适合自己的就是最好的。
trentswd
(trentswd)
7
这个思路延展开去
就是为什么要用卡片笔记法,为什么一定要有编号?
只要能检索到,怎么做都可以。
不过,使用日期做目录,我觉得只适用于日期这玩意不会更改,并且确实很必要的情况
比如日记。
Ryooo
(Roy)
8
原版卡片法就是通过1a1、1a2这种编号来形成一个非典型的树状分类,从而通过分类去加强检索。这在手工检索时代非常有用。只不过现在我们可以通过计算机快速全文检索,这就导致编码在非大量笔记的情况下优势不明显。
再退一步说,在电子笔记中,编码也不一定要放在文件名上,只要能被检索软件访问到,其实放哪都行。
DavidJoy
(DavidJoy)
9
我觉得倒不是不可替代,不过我确实用文件名编码,没实践过文件夹编码的方式。
“在文件夹上编码”,“在文件名上编码” 二者相比,后者可能更容易脱离 Obsidian 检索吧。
如果在文件名处编码了,就摆脱了文件夹的限制,毕竟文件夹是唯一的。比如可以用文件夹从其他角度对文件进行分类。
我觉得这个“xxxx”怎么写对编码也有影响,比如如果什么都不写,可能还是用文件名编码更好。
暂时想到这些
CU
10
编号形成了逻辑上的树状结构,使得线性排列在卡片盒中的纸质卡片笔记便于检索。
另外,我认为编号还隐含了时间顺序。表面上标识了不同卡片被创建的先后顺序,本质上则标识了个人观点的发展变化。
如果按卢曼的方式对卡片进行编码,知识的层次结构将几乎无法体现在卡片编码的层级结构上。比如在自下而上的认知过程中,末端的知识往往比顶层知识更早被认识,它们的编码层级也就相对较浅,但按照知识层次来排的话,应该是顶层知识在前,末端知识在后。
如果按时间戳对卡片进行编码,就会失去“附近的知识”这种检索方式,导致基于链接的主题索引系统不适用于检索孤立卡片。倘若进一步把时间戳拆分成文件夹的树结构,不仅会使打开一份已知笔记所需步骤增加,而且很有可能让文件夹的数量比笔记的数量还多,届时将时间戳前缀从文件名转移到目录的方案反而会增加工作量。
CU
12
拓宽了思路!
总结需求:
- 顶层知识在前,末端知识在后
- 能检索“附近的知识”
通过双链将相关的笔记连接起来,就可以实现检索“附近的知识”。在此基础之上,假设末端的知识比顶层知识更早被认识,那么末端的知识卡片的创建时间要早于顶层知识卡片,通过按创建时间排序,就可以实现 “顶层知识在前,末端知识在后”。
如此看来,如果 只是 为了满足上述两种需求,在 Obsidian 等双链笔记中,在.md 文件名上进行何种形式的编码都是不必要的。例如:我们可以直接创建一个文件夹,把所有笔记丢进去。