美人鱼CLI - 你怎么逃避角色?

Mar*_*dej 7 diagramming mermaid

我正在使用Mermaid CLI生成流程图(http://knsv.github.io/mermaid/flowchart.html).它工作得很好,但我无法弄清楚如何在节点中使用特殊字符(百分号,括号等)作为文本.

为了便于说明,这里是Mermaid的示例流程图定义(filename是example.mermaid):

graph TD
question1{Gas tank less than 1/8?}
action1[Fill tank to 100%]
question1-- Yes -->action1
Run Code Online (Sandbox Code Playgroud)

当我在该文件上运行美人鱼时,我收到此错误(它在百分号上爆炸):

My-MacBook-Pro:mermaid mark$ mermaid example.mermaid 
Error: Parse error on line 3:
...on1[Fill tank to 100%]question1-- Yes -
-----------------------^
Expecting 'QUOTE', 'TAG_END', 'TAG_START', 'MULT', 'EQUALS', 'PLUS', 'DOT', 'BRKT', 'COLON', 'ALPHA', 'COMMA', 'NUM', 'CLICK', 'CLASS', 'CLASSDEF', 'LINKSTYLE', 'STYLE', 'PIPE', 'THICK_ARROW_OPEN', 'THICK_ARROW_CROSS', 'THICK_ARROW_CIRCLE', 'THICK_ARROW_POINT', 'DOTTED_ARROW_OPEN', 'DOTTED_ARROW_CROSS', 'DOTTED_ARROW_CIRCLE', 'DOTTED_ARROW_POINT', 'ARROW_OPEN', 'ARROW_CROSS', 'ARROW_CIRCLE', 'ARROW_POINT', '==', '-.', '--', 'MINUS', 'DIAMOND_STOP', 'DIAMOND_START', 'PE', 'PS', 'SQE', 'SQS', 'end', 'subgraph', 'NEWLINE', 'TAGSTART', 'TAGEND', 'DIR', 'SPACE', 'GRAPH', 'EOF', 'SEMI', got 'PCT'

  ../dist/mermaid.full.js:14712 in parseError
  ../dist/mermaid.full.js:14782 in parse
  ../dist/mermaid.full.js:13260
  ../dist/mermaid.full.js:16846
  ../dist/mermaid.full.js:16889
  phantomjs://webpage.evaluate():23 in executeInPage
  phantomjs://webpage.evaluate():29
  phantomjs://webpage.evaluate():29
PHANTOM ERROR: TypeError: 'null' is not an object (evaluating 'element.setAttribute')
TRACE:
 -> /usr/local/lib/node_modules/mermaid/lib/phantomscript.js: 149 (in function resolveSVGElement)
 -> /usr/local/lib/node_modules/mermaid/lib/phantomscript.js: 69
Run Code Online (Sandbox Code Playgroud)

我尝试转义百分号,如下所示:

action1[Fill tank to 100&]
Run Code Online (Sandbox Code Playgroud)

但是我在分号上得到了同样的错误.有关如何逃避这些角色以使其发挥作用的任何想法?谢谢!

fik*_*tor 13

以下是转义/引用特殊字符的更多示例。代码

\n
flowchart LR\n  A["For most symbols double quotes are enough: ```~`!@#$%^*()[]{}|\\/:;\'?<>,.+=-_"]\n  B["[&quot;&amp;quot;&amp;lt;&lt;br&gt;&amp;gt;&amp;amp;&amp;frac12;#35;189;&quot;]"]\n  B --> C["&quot;&lt;<br>&gt;&amp;&frac12;#189;"]\n
Run Code Online (Sandbox Code Playgroud)\n

产生\n美人鱼流程图

\n

使用此方法,可以使用 unicode 实体或 markdown#code;语法包含大多数 unicode 字符(包括非 ASCII)(这两种方式均使用上图中的字符 \xc2\xbd 进行说明)。另请参阅官方文档

\n

免责声明:我没有在 Mermaid CLI 中对其进行测试。在markdown-viewerMermaid live editor中进行了测试。

\n


Azi*_*lto 10

使用引号""括起文本并转义特殊字符,例如在您的示例中:

graph TD

    question1{"Gas tank less than 1/8?"}
    action1["Fill tank to 100%"]

    question1-- Yes -->action1
Run Code Online (Sandbox Code Playgroud)

将产生这个图:

在此输入图像描述

现在,这已在官方文档中记录.

  • 这似乎不适用于序列图?(至少不是“:”) (6认同)
  • 但是如果我想在引号*内*添加引号怎么办?我*那么*必须使用转义码,还是有更好的方法? (3认同)
  • 当前序列图语法链接:https://github.com/mermaidjs/mermaidjs.github.io/blob/master/sequenceDiagram.md (3认同)