You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
语法设计原则
我弄插件非常注重多平台多软件的高兼容性,当前的AnyBlock语法一定程度上满足:
并且在 “无入侵式” 这点一直有改良:
新的语法设计
好,现在才到正文。我在想是否可以加一个智能选择的选项,使在没有头部标识的前提下,通过一些特殊匹配规则进行智能识别(不过这种方式只能支持一部分常用的处理器,一些语法糖罢了)
语法一:用内联标志
语法的判断依据为:列表首项有无 “AnyBlock的内联标识切割标志”(这个标志的规则是:全角符号+空格,或者半角符号+两空格)
例如上面的例子中,我们就不再需要第一行了。如果有这个标志,那么就可以成功转换。
语法像这样:(可以不换行,这里只要有前面说的内联切割标志就行了)
这种方式可以代替 list2lt 或 list2dt,如果进一步判断内联切割的前面部分是文件夹/文件名,则选择list2dt(即目录树表现形式)
语法二:快捷FAQ
这里有两个入侵式,除了头部,还要自己标注 “QA”。并且将多个QA块写在一起似乎不太合适,如果分开那更需要写多个AB header了,语法也很难受。
感觉可以借助callout语法,如果第一个非空行的末尾是
?
+空格
,(半角则加两空格),作为识别标志语法变成这样:
同时如果有callout头则跳过进行忽略。
Q:我记得有其他方法啊,配合ad插件自定义
[!question] 然后这里写问题
这不就很完美了吗?A:确实,在Obsidian用ad去扩展callout语法是更合理的,更别说在callout头后面还能接文字和折叠符号,来定义callout块的标题。但是问题在于……ob的callout语法是不标准的,这种语法在github和在mdit插件中都有支持,但是他们都不允许在首行添加块的标题,即
[!xxx]
的后面是不能接东西的其他
设计中……
但感觉过多的这种语法糖,也有弊端,会导致语法数量就上来了。不像原AnyBlock,就只有快捷选择器语法和mdit-container选择器语法两种。
Beta Was this translation helpful? Give feedback.
All reactions