@@ -6,6 +6,7 @@ import { CompileNodeGraphRequest } from '../messages';
66import { IConnectionManager , ConnectionStatus } from '../connection' ;
77import { reporter } from '../telemetry/telemetry' ;
88import * as messages from '../messages' ;
9+ import * as viz from 'viz.js' ;
910
1011export function isNodeGraphFile ( document : vscode . TextDocument ) {
1112 return document . languageId === 'puppet'
@@ -63,7 +64,7 @@ export class PuppetNodeGraphContentProvider implements vscode.TextDocumentConten
6364 . then (
6465 ( compileResult ) => {
6566
66- var graphContent = ''
67+ var svgContent = '' ;
6768 if ( compileResult . dotContent != null ) {
6869 var styling = `
6970 bgcolor = "transparent"
@@ -74,9 +75,10 @@ export class PuppetNodeGraphContentProvider implements vscode.TextDocumentConten
7475
7576 label = ""`
7677
77- graphContent = compileResult . dotContent ;
78+ var graphContent = compileResult . dotContent ;
7879 graphContent = graphContent . replace ( `label = "vscode"` , styling ) ;
79- graphContent = `<textarea id="graphviz_data" style="display:none">\n` + graphContent + `\n</textarea>` ;
80+
81+ svgContent = viz ( graphContent , "svg" ) ;
8082 }
8183
8284 var errorContent = `<div style='font-size: 1.5em'>${ compileResult . error } </div>`
@@ -85,31 +87,11 @@ export class PuppetNodeGraphContentProvider implements vscode.TextDocumentConten
8587 reporter . sendTelemetryEvent ( messages . PuppetCommandStrings . PuppetNodeGraphToTheSideCommandId ) ;
8688 }
8789
88- // WARNING - THIS IS A MAJOR HACK!!!
8990 return `
9091 ${ errorContent }
91- ${ graphContent }
9292 <div id="graphviz_svg_div">
93- <!-- Target for dynamic svg generation -->
94- </div>
95-
96- <!-- Defer loading of javascript by placing these tags at the tail end of the document -->
97- <script language="javascript" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"> </script>
98- <script language="javascript" type="text/javascript" src="http://www.webgraphviz.com/viz.js"></script>
99-
100- <script language="javascript" type="text/javascript">
101- var svg_div = jQuery('#graphviz_svg_div');
102- var graphviz_data_textarea = jQuery('#graphviz_data');
103-
104- // Startup function: call UpdateGraphviz
105- jQuery(function() {
106- svg_div.html("");
107- var data = graphviz_data_textarea.val();
108- // Generate the Visualization of the Graph into "svg".
109- var svg = Viz(data, "svg");
110- svg_div.html(svg);
111- });
112- </script>` ;
93+ ${ svgContent }
94+ </div>` ;
11395 } )
11496 } ) ;
11597 }
0 commit comments