Mermaid CLI - 你如何转义角色?
Mermaid CLI - how do you escape characters?
我正在使用 Mermaid CLI 生成流程图 (http://knsv.github.io/mermaid/flowchart.html)。它工作得很好,但我不知道如何让特殊字符(百分号、括号等)在节点内作为文本工作。
为了便于说明,这里是美人鱼的示例流程图定义(文件名为 example.mermaid):
graph TD
question1{Gas tank less than 1/8?}
action1[Fill tank to 100%]
question1-- Yes -->action1
当我 运行 美人鱼在那个文件上时,我得到这个错误(它在百分号上爆炸):
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
我试过像这样转义百分号:
action1[Fill tank to 100&]
但是我在分号上遇到了同样的错误。关于如何逃脱这些角色以使其发挥作用的任何想法?谢谢!
这是早期美人鱼版本的问题。我用 mermaid 0.4.0 尝试了你的示例代码,它呈现得很好。我建议升级。
使用引号 ""
将您的文本括起来并转义特殊字符,例如在你的例子中:
graph TD
question1{"Gas tank less than 1/8?"}
action1["Fill tank to 100%"]
question1-- Yes -->action1
将生成此图:
这现在记录在 official documentation 中。
这里有更多转义/引用特殊字符的例子。代码
flowchart LR
A["For most symbols double quotes are enough: ```~`!@#$%^*()[]{}|\/:;'?<>,.+=-_"]
B["["&quot;&lt;<br>&gt;&amp;&frac12;#35;189;"]"]
B --> C[""<<br>>&½#189;"]
生产
使用此方法,可以使用 unicode 实体或 markdown #code;
语法包含大多数 unicode 字符(包括 non-ASCII)(在上图中,这两种方式都使用字符 ½ 进行了说明)。另见 official documentation.
免责声明:我没有在 Mermaid CLI 中测试它。在 markdown-viewer and Mermaid live editor.
中测试
我正在使用 Mermaid CLI 生成流程图 (http://knsv.github.io/mermaid/flowchart.html)。它工作得很好,但我不知道如何让特殊字符(百分号、括号等)在节点内作为文本工作。
为了便于说明,这里是美人鱼的示例流程图定义(文件名为 example.mermaid):
graph TD
question1{Gas tank less than 1/8?}
action1[Fill tank to 100%]
question1-- Yes -->action1
当我 运行 美人鱼在那个文件上时,我得到这个错误(它在百分号上爆炸):
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
我试过像这样转义百分号:
action1[Fill tank to 100&]
但是我在分号上遇到了同样的错误。关于如何逃脱这些角色以使其发挥作用的任何想法?谢谢!
这是早期美人鱼版本的问题。我用 mermaid 0.4.0 尝试了你的示例代码,它呈现得很好。我建议升级。
使用引号 ""
将您的文本括起来并转义特殊字符,例如在你的例子中:
graph TD
question1{"Gas tank less than 1/8?"}
action1["Fill tank to 100%"]
question1-- Yes -->action1
将生成此图:
这现在记录在 official documentation 中。
这里有更多转义/引用特殊字符的例子。代码
flowchart LR
A["For most symbols double quotes are enough: ```~`!@#$%^*()[]{}|\/:;'?<>,.+=-_"]
B["["&quot;&lt;<br>&gt;&amp;&frac12;#35;189;"]"]
B --> C[""<<br>>&½#189;"]
生产
使用此方法,可以使用 unicode 实体或 markdown #code;
语法包含大多数 unicode 字符(包括 non-ASCII)(在上图中,这两种方式都使用字符 ½ 进行了说明)。另见 official documentation.
免责声明:我没有在 Mermaid CLI 中测试它。在 markdown-viewer and Mermaid live editor.
中测试