Skip to content

Commit 01b1faa

Browse files
committed
Render viz.js
1 parent ec6cee3 commit 01b1faa

3 files changed

Lines changed: 56 additions & 0 deletions

File tree

package-lock.json

Lines changed: 21 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,12 @@
5656
"mini-css-extract-plugin": "^0.8.0",
5757
"mocha": "^6.1.4",
5858
"raphael": "git+ssh://git@github.com/DmitryBaranovskiy/raphael.git#v2.2.7",
59+
"script-loader": "^0.7.2",
5960
"style-loader": "^0.23.1",
6061
"ts-loader": "^6.0.4",
6162
"tslint": "^5.12.1",
6263
"typescript": "^3.3.1",
64+
"viz.js": "^2.1.2",
6365
"vscode-test": "^1.0.0-next.0",
6466
"webpack": "^4.37.0",
6567
"webpack-cli": "^3.3.6"

src/page.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import './style.css';
77
import * as mermaid from 'mermaid';
88
import * as flowchart from 'flowchart.js';
99
import 'js-sequence-diagrams';
10+
import Viz from 'viz.js';
11+
import { Module, render } from 'viz.js/full.render.js';
1012
import * as S from 'string';
1113

1214
const 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

Comments
 (0)