@@ -7,6 +7,8 @@ import './style.css';
77import * as mermaid from 'mermaid' ;
88import * as flowchart from 'flowchart.js' ;
99import 'js-sequence-diagrams' ;
10+ import Viz from 'viz.js' ;
11+ import { Module , render } from 'viz.js/full.render.js' ;
1012import * as S from 'string' ;
1113
1214const mermaids = $ ( 'span.mermaid.raw' ) ;
@@ -78,3 +80,34 @@ sequences.each((key, value) => {
7880 $ele . addClass ( 'sequence-diagram' )
7981 }
8082} )
83+
84+ let viz = new Viz ( { Module, render } ) ;
85+
86+ const graphvizs = $ ( 'span.graphviz.raw' )
87+ graphvizs . removeClass ( 'raw' )
88+ graphvizs . each ( function ( key , value ) {
89+ try {
90+ var $value = $ ( value )
91+ var $ele = $ ( value ) . parent ( ) . parent ( )
92+ $value . unwrap ( )
93+ const option = {
94+ engine : $value . attr ( 'data-engine' ) || undefined
95+ }
96+ viz . renderString ( $value . text ( ) , option )
97+ . then ( result => {
98+ if ( ! result ) throw Error ( 'viz.js output empty graph' )
99+ $value . html ( result )
100+ $ele . addClass ( 'graphviz' )
101+ $value . children ( ) . unwrap ( )
102+ } )
103+ . catch ( err => {
104+ viz = new Viz ( { Module, render } ) ;
105+
106+ // $value.parent().append(`<div class="alert alert-warning">${S(err).escapeHTML().s}</div>`)
107+ // console.warn(err)
108+ } )
109+ } catch ( err ) {
110+ // $value.parent().append(`<div class="alert alert-warning">${S(err).escapeHTML().s}</div>`)
111+ // console.warn(err)
112+ }
113+ } )
0 commit comments