Skip to content
Snippets Groups Projects
Commit 1ee20a67 authored by Léa Рая DÉCORNOD's avatar Léa Рая DÉCORNOD
Browse files

better graphviz init

parent 0ccd08e2
Branches
Tags
No related merge requests found
......@@ -2903,19 +2903,20 @@ application {
<script src="webjars/reveal.js/lib/js/head.min.js"></script>
<script src="webjars/reveal.js/js/reveal.js"></script>
<script src="webjars/hpcc-js__wasm/1.16.5/dist/index.js"></script>
<script>
var graphviz = window["@hpcc-js/wasm"].graphviz;
</script>
<script src="lib/plugin/graphviz.js"></script>
<script src="teavm/classes.js"></script>
<script>
(async () => {
// rendering graphviz diagrams to SVG
await allGraphvizToSVG().then(() => { console.log("all graphviz rendered.") });
// Required, even if empty.
Reveal.initialize({
transition: 'convex',
// Optional reveal.js plugins
dependencies: [
{ src: 'lib/plugin/graphviz.js', async: true },
{ src: 'webjars/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
]
});
......@@ -2954,7 +2955,7 @@ application {
});
// inline source files from data-src
(function (){
Reveal.addEventListener( 'ready', function (){
var codeDataSrc = document.querySelectorAll('code[data-src]');
Array.prototype.forEach.call(codeDataSrc, function(element) {
var srcUrl = element.getAttribute('data-src');
......@@ -2968,7 +2969,7 @@ application {
title.innerText = srcUrl;
element.parentElement.insertBefore(title, element);
});
})();
});
function loadFile(src, cb) {
var xhr = new XMLHttpRequest();
xhr.responseType = 'text';
......@@ -2987,6 +2988,7 @@ application {
// force SVG repaint on slidechanged (avoid random svg text misplaced/missized)
Reveal.addEventListener('slidechanged', (event) => Array.prototype.forEach.call(event.currentSlide.querySelectorAll('svg'), (svg) => svg.innerHTML += ""));
})();
</script>
</body>
</html>
// START CUSTOM HPCC-JS/WASM GRAPHVIZ INTEGRATION
(function() {
var graphviz = window["@hpcc-js/wasm"].graphviz;
function allGraphvizToSVG() {
var graphs = document.querySelectorAll( 'pre.viz, script[type="text/vnd.graphviz"]' );
Array.prototype.forEach.call(graphs, function(element) {
return Promise.allSettled(Array.prototype.map.call(graphs, graphvizToSVG));
}
function graphvizToSVG(element) {
if (element.parentNode === null) {
console.error('parentNode is null for', element);
return;
throw new Error('parentNode is null');
}
var graph = element.innerHTML;
......@@ -19,15 +24,10 @@
// element.innerHTML = element.innerHTML.replace(/</g,"&lt;").replace(/>/g,"&gt;");
//}
//element.innerHTML = ansi_up.ansi_to_html(element.textContent, { 'use_classes': true });
// var options = { format: 'svg' };
// if( element.hasAttribute( 'data-engine' )) {
// options['engine'] = element.getAttribute('data-engine');
// }
graphviz.dot(graph)
return graphviz.layout(graph, 'svg', element.hasAttribute('data-engine')?element.getAttribute('data-engine'):'dot')
.then(function(svgString) {
var parser = new DOMParser();
var svg = parser.parseFromString(svgString, "image/svg+xml").documentElement
var svg = parser.parseFromString(svgString, "image/svg+xml").documentElement;
// copy attributes
for (var i=0; i<element.attributes.length; i++)
if (!svg.hasAttribute(element.attributes[i].name))
......@@ -45,9 +45,7 @@
err_eltp.appendChild(err_eltc);
err_elt.appendChild(err_eltp);
element.parentNode.replaceChild(err_elt, element);
console.log(err)
});
});
})();
}
// END CUSTOM HPCC-JS/WASM GRAPHVIZ INTEGRATION
// REQUIRE @hpcc-js/wasm
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment