v1除了#,::也能创建主题,但问题是v1对这些不同符号形式标记的内容没有作任何区分处理,而导致这些功能大同小异,在使用时也难以区分选择。
我理解的纯标签是类似flomo那种,带层级的可以通过点击来快捷检索汇总相关内容的标签。个人认为把标签改成所谓的纯标签并不明智,和反链聚焦整合不同内容的理念不合。
我这里提出一套重做标签系统的方案。此方案依然将标签视为双链主题的一部分,但是可以让用户自行通过不同的自定义前缀来区分不同属性的主题和标签,而不是像v1那样把标签和主题完全混在一起难以区分,也不是重做一套完全独立于双链之外的层级标签系统。
此方案有以下三项重要的设计:一是可以通过给[[]]加上前缀来给不同主题设定属性值,从而在不同的文本中区分同名主题或标签所具有的不同属性值(内涵);二是加上不同前缀的主题,既会被归到一个父主题里面,同时也各自作为不同的主题存在单独的主题页面;三是在主题页面里(包括主题里的节点,反链列表,提及列表中)加入一键筛选功能,从而可以根据不同的属性值来筛选自己想要的部分。通过这些设计,可以实现层级标签功能、多义词功能、星标引用功能、主题传送功能等一系列功能的融合。
既然节点可以有子节点,标签可以有子标签,那主题当然也可以有子主题。哈哈,无限套娃。
例如,A是一个人名,我可以用#哲学家[[A]]来标记一段哲学家A说过的名言,用#哲学家/唯物主义哲学家[[A]]来标记A说过的一句唯物主义哲学相关的名言,用#数学家[[A]]来标记一段数学家A提出的数学猜想,用@同事[[A]]来标记一项同事A相关的项目内容(据hardy说,@符号被预留为了加人名来实现以后要加入的协同功能)。后续的记录中,当需要给一段哲学相关的名言打上标签A标明作者时,我不仅可以直接输入#哲学家[[A]],还可以通过输入[[A]]或#A来从弹出的几个子主题里选择,当然也可以只标上#A来自行判断。
可以注意到,这里的A无论是同一个人的不同身份还是同名不同人都不会影响后续的操作。这样无论是跨学科还是跨项目,不同的同名主题即可以相互关联又可以彼此独立。
我可以给予不同的前后缀符号不同的定义来区分引用不同的bullet中的同一主题,并且实现预处理功能。用!来定义B主题的星标级引用,在daily中打了!B标记的内容会在B主题的反链中置顶显示;用::定义C主题的解释,在daily中输入C::xx后这部分内容会直接传送到C主题中。当然这只是我随意举的例子,如何区分使用不同类型的主题引用是由用户自行决定,预处理功能等可以通过插件来实现。
上面的用法,可能看起来太复杂了。但是,通用的符号其实是可以系统预设的,自定义前缀在用到的时候再自行添加就行了。只是日常记录最简单的打标签的话,直接用#A或者#A/B这种最通用形式就ok了,并不用考虑那么多。
以上都是我个人不成熟的想法,欢迎大家提出意见。