diff options
-rw-r--r-- | public/js/extra.js | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/public/js/extra.js b/public/js/extra.js index ba61a669..1f45606a 100644 --- a/public/js/extra.js +++ b/public/js/extra.js @@ -11,6 +11,7 @@ var PDFObject = require('pdfobject'); var S = require('string'); var saveAs = require('file-saver').saveAs; require('../vendor/md-toc'); +var Viz = require("viz.js"); //auto update last change window.createtime = null; @@ -335,22 +336,31 @@ function finishView(view) { } }); //graphviz - var Viz = require("viz.js"); var graphvizs = view.find("div.graphviz.raw").removeClass("raw"); - graphvizs.each(function (key, value) { - try { - var $value = $(value); - var $ele = $(value).parent().parent(); + function parseGraphviz(key, value) { + var $value = $(value); + var $ele = $(value).parent().parent(); - var graphviz = Viz($value.text()); - if (!graphviz) throw Error('viz.js output empty graph'); - $value.html(graphviz); + var graphviz = Viz($value.text()); + if (!graphviz) throw Error('viz.js output empty graph'); + $value.html(graphviz); - $ele.addClass('graphviz'); - $value.children().unwrap().unwrap(); + $ele.addClass('graphviz'); + $value.children().unwrap().unwrap(); + } + graphvizs.each(function (key, value) { + try { + parseGraphviz(key, value); } catch (err) { - $value.unwrap(); - console.warn(err); + // workaround for graphviz not recover from error + try { + parseGraphviz(key, value); + } catch (err) { + var $value = $(value); + $value.unwrap(); + $value.parent().append('<div class="alert alert-warning">' + err + '</div>'); + console.warn(err); + } } }); //mermaid |