AnyBlock 与 Dataview 内联字段语法冲突的简易解决方案

ab 作者的解决方案

我创建的 ab 分支

原讨论

然后想到了更简单的方法,直接修改 ab 插件原代码。

  1. 代码文件路径:/.obsidian/plugins/any-block/main.js
  2. 查找原 reg_header
/^((\s|>\s|-\s|\*\s|\+\s)*)(%%)?(\[((?!toc|TOC|\!|< )[\|\!#:;\(\)\s0-9a-zA-Z\u4e00-\u9fa5].*)\]):?(%%)?\s*$/

替换为:

/^((\s|>\s|-\s|\*\s|\+\s)*)(%%)?(\[((?!toc|TOC|\!|< )[\|\!#:;\(\)\s0-9a-zA-Z\u4e00-\u9fa5](?:[^:]|:(?!:))*)\]):?(%%)?\s*$/
  1. 查找原 reg_header_up
/^((\s|>\s|-\s|\*\s|\+\s)*)(%%)?(\[((?!toc|TOC|\!)< [\|\!#:;\(\)\s0-9a-zA-Z\u4e00-\u9fa5].*)\]):?(%%)?\s*$/

替换为:

/^((\s|>\s|-\s|\*\s|\+\s)*)(%%)?(\[((?!toc|TOC|\!)< [\|\!#:;\(\)\s0-9a-zA-Z\u4e00-\u9fa5](?:[^:]|:(?!:))*)\]):?(%%)?\s*$/
1 个赞

支持在配置文件中修改了header正则了,我改好后还忘关掉那个issue了 :rofl:

1 个赞

不过之前是改成可以在配置文件中自定义正则,刚刚又改了下,现在默认正则改成这个:

/^((\s|>\s|-\s|\*\s|\+\s)*)(%%)?(\[((?!toc|TOC|\!|< )[\|\!#:;\(\)\s0-9a-zA-Z\u4e00-\u9fa5](?!.*::).*)\]):?(%%)?\s*$/

不允许匹配 [] 内出现连续的 : 的情况 (单个 : 可以被允许)