美文网首页
markdown 流程图渲染Demo

markdown 流程图渲染Demo

作者: 99ZY | 来源:发表于2021-05-08 17:27 被阅读0次

(原创)大部分md编辑器不支持渲染流程图,目前找到两种合理的方式 实现

方式一

Typora编辑---> 导出成HTML

方式二

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>flowchart.js · Playground</title>
        <style type="text/css">
          .end-element { fill : #FFCCFF; }
</style>
        <script src="http://cdnjs.cloudflare.com/ajax/libs/raphael/2.3.0/raphael.min.js"></script>
        <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
        <script src="http://flowchart.js.org/flowchart-latest.js"></script>
        <!-- <script src="../release/flowchart.min.js"></script> -->
        <script>

            window.onload = function () {
                var btn = document.getElementById("run"),
                    cd = document.getElementById("code"),
                    chart;

                (btn.onclick = function () {
                    var code = cd.value;

                    if (chart) {
                      chart.clean();
                    }

                    chart = flowchart.parse(code);
                    chart.drawSVG('canvas', {
                      // 'x': 30,
                      // 'y': 50,
                      'line-width': 3,
                      'maxWidth': 3,//ensures the flowcharts fits within a certian width
                      'line-length': 50,
                      'text-margin': 10,
                      'font-size': 14,
                      'font': 'normal',
                      'font-family': 'Helvetica',
                      'font-weight': 'normal',
                      'font-color': 'black',
                      'line-color': 'black',
                      'element-color': 'black',
                      'fill': 'white',
                      'yes-text': 'yes',
                      'no-text': 'no',
                      'arrow-end': 'block',
                      'scale': 1,
                      'symbols': {
                        'start': {
                          'font-color': 'red',
                          'element-color': 'green',
                          'fill': 'yellow'
                        },
                        'end':{
                          'class': 'end-element'
                        }
                      },
                      'flowstate' : {
                        'past' : { 'fill' : '#CCCCCC', 'font-size' : 12},
                        'current' : {'fill' : 'yellow', 'font-color' : 'red', 'font-weight' : 'bold'},
                        'future' : { 'fill' : '#FFFF99'},
                        'request' : { 'fill' : 'blue'},
                        'invalid': {'fill' : '#444444'},
                        'approved' : { 'fill' : '#58C4A3', 'font-size' : 12, 'yes-text' : 'APPROVED', 'no-text' : 'n/a' },
                        'rejected' : { 'fill' : '#C45879', 'font-size' : 12, 'yes-text' : 'n/a', 'no-text' : 'REJECTED' }
                      }
                    });

                    $('[id^=sub1]').click(function(){
                      alert('info here');
                    });
                })();

            };

            function myFunction(event, node) {
              console.log("You just clicked this node:", node);
            }
</script>
    </head>
    <body>
        <div><textarea id="code" style="width: 100%;" rows="11">
              st=>start: Start|past:>http://www.google.com[blank]
             e=>end: End:>http://www.google.com
             op1=>operation: My Operation|past:$myFunction
             op2=>operation: Stuff|current
             sub1=>subroutine: My Subroutine|invalid
             cond=>condition: Yes
             or No?|approved:>http://www.google.com
             c2=>condition: Good idea|rejected
             io=>inputoutput: catch something...|request
             para=>parallel: parallel tasks

             st->op1(right)->cond
             cond(yes, right)->c2
             cond(no)->para
             c2(true)->io->e
             c2(false)->e

             para(path1, bottom)->sub1(left)->op1
             para(path2, right)->op2->e

st@>op1({"stroke":"Red"})@>cond({"stroke":"Red","stroke-width":6,"arrow-end":"classic-wide-long"})@>c2({"stroke":"Red"})@>op2({"stroke":"Red"})@>e({"stroke":"Red"})</textarea></div>
        <div><button id="run" type="button">Run</button></div>
        <div id="canvas"></div>
    </body>
</html>

相关文章

  • markdown 流程图渲染Demo

    (原创)大部分md编辑器不支持渲染流程图,目前找到两种合理的方式 实现 方式一 Typora编辑---> 导出成H...

  • MarkDown流程图渲染

    序列图 (sequence) 流程图(flow) 直接抄官方的 甘特(gantt)图 访问首页 登录 (是否注册)...

  • iOS 界面绘制渲染的流程

    参考文档和资料 Demo 流程图 参考链接 界面渲染的整体流程 界面渲染续之CALayer的显示流程 iOS7编程...

  • 【Markdown】相关参考

    流程图 学习Markdown绘制流程图 Typora流程图代码 测试

  • Django添加Markdown输入框和渲染

    Django添加Markdown支持 Markdown渲染,自带markdown库 安装markdown 模型中添...

  • Markdown

    一篇很详细的 Markdown 语法手册 使用 Markdown 画流程图

  • 使用vscode的markdown插件绘图写文档

    使用Markdown 语法绘制相关的流程图以及其他相关的图 使用Markdown 语法绘制相关的流程图以及其他相关...

  • 六十分钟入门Activiti框架原理

    本文基于一个简单的Demo流程介绍了Activiti框架启动、部署、运行过程。 Demo准备 流程图文件: 流程图...

  • 2018-02-24

    markdown simple demo: 1. Title Demo This is level 1 title...

  • Markdown Demo

    寫在前面的話:這算是我第一次使用markdown來寫文章, 說來慚愧,從兩三年前就已 經有學習markdow...

网友评论

      本文标题:markdown 流程图渲染Demo

      本文链接:https://www.haomeiwen.com/subject/qoaudltx.html