obsidian全局搜索的一个巨大问题

网页是富文本… ob渲染出来的样式就是网页,很显然,它没搜索html标签 :upside_down_face:

markdown的标记和html的标签是完全同性质的东西,都是标记语言的标记。==囗囗==正是被定义成<mark>囗囗</mark>的。==***> 等当然不应被搜索出来,或者至少应该存在忽略标签搜索的选择。

markdown只是一种较为简单的标记语言,一种保证了可读性的标记语言而已。即是说,它的源码看起来和(可能的)渲染结果差别不大,但它毕竟还是源码

你能想象浏览器在执行网页检索时,不对连续的文本进行检索,却对html源码进行检索吗?那简直是灾难,会导致检索功能完全不可用。而对于markdown,仅仅是由于md的标记较少而过于简单,所以造成的后果不太明显而已,但偶尔^1还是有的。更重要的是,对源码进行带标签检索根本上不符合markdown的设计逻辑。从设计逻辑上来说,对不带语义标签的纯文本进行检索才是一个markdown查看器^2应有的基本功能,而带语义标签检索才应该是可选的、拓展的、增强的功能。^3

你能想象纯文本搜不到等号吗 :upside_down_face: 我们不谈这玩意儿是否合理,从实现上来看,去除markdown标记进行搜索其实比较容易,在原有的基础上封装一层正则表达式就好了,写个插件的事。然而那么久都没有插件,可能这玩意儿并不是刚需。

是的,正如我前面提到的,md当初设计的目的就是为了让源码看起来尽量接近渲染效果嘛,所以应用偷点懒,该操作渲染结果的地方直接去操作源码,几乎也能实现差不多的效果,而不会造成太大麻烦。但总是会造成麻烦的,比如帖主。

(这几天才来玩儿Obsidian论坛,这会儿发现注释语法似乎在这儿不能用?)

这个需求小还有一个原因,前面有评论提到了。

那就是,一般搜索都是以关键词为单位搜索,很少会拿较长的词组甚至句子去搜索;而正常的标签一般不可能去隔断词语,所以把标签纳入检索,一般不会造成影响。

不过不管怎么说,以上都是对为什么在Obsidian这么设计的情况下,却没有产生要求改进的需求的解释,这和Ob的这个设计有问题是不矛盾的。

现在好像有这种了,不知道能不能此贴完结。

1 个赞