Closed dongrentianyu closed 5 months ago
完整筛选器表达式如下
<$list filter="[<currentTiddler>field:type[text/vnd.tiddlywiki]!prefix[$:/]!wysiwyg-disabled[yes]!regexp:text[(?i)<<]!regexp:text[(?i)<$]!regexp:text[(?i)```]] :or[<currentTiddler>!prefix[$:/]!wysiwyg-disabled[yes]!regexp:text[(?i)<<]!regexp:text[(?i)<$]!regexp:text[(?i)```]field:type[]]">
更简练的表达式如下
regexp:text[(?i)<<|<\$|```]
一般来说排除这几种类型的应该就足够了。
我觉得这个方案还是可行的。因为以后如果要支持wikitext语法的话,也只是修改一下筛选器就可以了。
调整了一下,最终的筛选器如下
!regexp:text[(?i)<<|<\$|```|\|!]
目前主要是发现了这些内容。
我测试了一下,大部分tiddlywiki的wikitext语法都没有很好支持。
比如像---
,只要反复点击就会不断生成</hr>
。类似的还有"""
,这是硬换行,反复点击后就会不断生成</br>
。
而像@@
来快速构建css样式的写法,也容易出问题。
感觉用正则表达式来调整不是一个好的解决方案了。还是得从真正的代码层面适配。不然这个筛选器得写非常长了。
因为一直没有很好的支持wikitext语法,一编辑起来就容易报错。
但目前所见即所得又是支持wikitext语法编辑的。
这里面分三种情况。
一种是```类型的,这种三重引号支持的很好,基本上能够编辑。
一种是<<类型的,这种编辑起来虽然不会报错,但基本上不能正常保存。
一种是<$类型的,这种也和上面一样,编辑起来不会报错,但也不能正常保存。
如果原文本已有后面两种类型的内容,则容易在使用插件后丢失文本内容。这个简单测试一下就能发现。
为了提高插件的利用率,我想到用正则表达式排除上面三种情况。表达式如下
但同样会有一个问题,就是如果用户在使用插件时,使用了wikitext语法,就不能很好的退出保存。因为按钮理论上就不应该存在了。所以配套的建议是提醒用户在使用插件时不要写上面三种wikitext语法。
暂时只能想到这些。当然从代码层面解决是最好的。