Mermaid中classDef default仅部分生效问题求助(Obsidian集成版)
Mermaid classDef default 不作用于双圈节点的解决方案(Obsidian集成版)
在Obsidian的Mermaid环境里,你碰到的问题根源很明确:双圈节点(终态节点,用(((...)))定义)默认自带一个内置类,所以它们不属于「未附加类的节点」范畴,自然不会继承classDef default的样式。而单圈节点没有内置类,所以能正常应用default的样式。
直接给节点加style能生效,是因为行内样式的优先级比类样式高,不管节点有没有自带类都会强制覆盖。
有两种实用的解决办法:
方法一:给双圈节点显式绑定default类
在每个双圈节点末尾加上:::default,强制让它们使用default类的样式:
flowchart LR δ: B:::hidden --> 0 0((q<sub>0)) -->|a|1(((q<sub>1)))):::default 1(((q<sub>1)))):::default -->|b| 1(((q<sub>1)))):::default 0((q<sub>0</sub>)) -->|a| 2(((q<sub>2)))):::default 2(((q<sub>2)))):::default -->|c| 2(((q<sub>2)))):::default classDef default stroke:white
方法二:直接覆盖双圈节点的内置类样式
Mermaid里双圈节点的内置类是end-node,直接定义这个类的样式,就能统一修改所有双圈节点:
flowchart LR δ: B:::hidden --> 0 0((q<sub>0)) -->|a|1(((q<sub>1)))) 1(((q<sub>1)))) -->|b| 1(((q<sub>1)))) 0((q<sub>0</sub>)) -->|a| 2(((q<sub>2)))) 2(((q<sub>2)))) -->|c| 2(((q<sub>2)))) classDef default stroke:white classDef end-node stroke:white
这两种方式都能让单圈和双圈节点统一应用白色描边,不用给每个节点单独加style标签。
内容的提问来源于stack exchange,提问作者Daerker
相关产品推荐
相关产品推荐

