如何使用DiagrammeR在R中复现指定的Mermaid序列图?
如何使用DiagrammeR在R中复现指定的Mermaid序列图?
我懂你碰到的这个问题!在mermaid.live里好好的序列图,放到DiagrammeR里就不是预期的样子,对吧?这其实是版本兼容的问题——DiagrammeR自带的Mermaid版本比较老,不支持你用的->>+和-->>-这种简化的激活/销毁参与者的语法,而mermaid.live用的是最新版Mermaid,自然能识别这种新写法。
下面给你两个可行的解决办法:
方法一:用DiagrammeR兼容的旧版语法
把箭头里的加减号替换成显式的activate和deactivate指令,就能在DiagrammeR里复现和预期一致的效果了。修改后的代码如下:
library(DiagrammeR) mermaid("sequenceDiagram Alice->>John: Hello John, how are you? activate John # 对应原语法里的->>+,激活John这个参与者 Alice->>John: John, can you hear me? John-->>Alice: Hi Alice, I can hear you! John-->>Alice: I feel great! deactivate John # 对应原语法里的-->>-,结束John的激活状态")
运行这段代码后,你就能看到和mermaid.live里类似的序列图,参与者的激活状态会被正确展示出来。
方法二:使用支持新版Mermaid的工具(可选)
如果你特别想用->>+/-->>-这种简化语法,可以考虑用其他能调用最新版Mermaid的R工具,比如借助htmltools引入最新的Mermaid JS库来渲染图表。不过这种方式相对繁琐,如果你只是为了复现这个序列图,方法一已经足够简单好用。
备注:内容来源于stack exchange,提问作者bird
相关产品推荐
相关产品推荐

