-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvisdown.js
48 lines (38 loc) · 1.13 KB
/
visdown.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
window.onload = function () {
// Start Marked Renderer
const renderer = new marked.Renderer();
marked.setOptions({
renderer: renderer,
gfm: true,
tables: true,
});
const opts = {
"mode": "vega-lite",
"renderer": "svg",
"actions": {export: true, source: false, editor: false}
};
//Render the vega-lite chart for each json spec
function _render(element) {
let specs = element.getElementsByClassName('lang-vis')
let num = specs.length;
for (var i=0; i < num; i++) {
let el = "#vis-" + i;
let jsonSpec = YAML.parse(specs[i].textContent)
console.log(jsonSpec)
htmlString = "<div class='vega-embed' id='vis-" + i + "'></div>"
specs[i].parentNode.insertAdjacentHTML('beforebegin', htmlString);
specs[i].parentNode.style.display = 'none';
vegaEmbed(el, jsonSpec, opts);
};
};
// Convert from Markdown to HTML
let input = document.querySelector("#visdown-input");
let output = document.querySelector("#visdown-output");
function visdown(input, element) {
console.log('visdown');
let visdownText = input.innerHTML;
element.innerHTML = marked(visdownText);
_render(element);
}
visdown(input, output)
}