forked from revolunet/sublimetext-markdown-preview
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathuml.html
More file actions
58 lines (52 loc) · 2.18 KB
/
uml.html
File metadata and controls
58 lines (52 loc) · 2.18 KB
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
49
50
51
52
53
54
55
56
57
58
<script type="text/javascript" charset="utf-8" src="https://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.2/raphael-min.js"></script>
<script type="text/javascript" charset="utf-8" src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.7.0/underscore-min.js"></script>
<script type="text/javascript" charset="utf-8" src="https://cdnjs.cloudflare.com/ajax/libs/js-sequence-diagrams/1.0.4/sequence-diagram-min.js"></script>
<script type="text/javascript">{{ flowchart }}</script>
<script type="text/javascript">
(function (win, doc) {
function onReady(fn) {
if (doc.addEventListener) {
doc.addEventListener('DOMContentLoaded', fn);
} else {
doc.attachEvent('onreadystatechange', function() {
if (doc.readyState === 'interactive')
fn();
});
}
}
win.convertUML = function(className, converter, settings) {
var charts = doc.querySelectorAll("pre." + className),
arr = [],
i, j, maxItem, diagaram, text, curNode;
// Is there a settings object?
if (settings === void 0) {
settings = {};
}
// Make sure we are dealing with an array
for(i = 0, maxItem = charts.length; i < maxItem; i++) arr.push(charts[i])
// Find the UML source element and get the text
for (i = 0, maxItem = arr.length; i < maxItem; i++) {
childEl = arr[i].firstChild;
parentEl = childEl.parentNode;
text = "";
for (j = 0; j < childEl.childNodes.length; j++) {
curNode = childEl.childNodes[j];
whitespace = /^\s*$/;
if (curNode.nodeName === "#text" && !(whitespace.test(curNode.nodeValue))) {
text = curNode.nodeValue;
break;
}
}
// Do UML conversion and replace source
el = doc.createElement('div');
el.className = className;
parentEl.parentNode.insertBefore(el, parentEl);
parentEl.parentNode.removeChild(parentEl);
diagram = converter.parse(text);
diagram.drawSVG(el, settings);
}
}
onReady(function(){convertUML('uml-flowchart', flowchart);});
onReady(function(){convertUML('uml-sequence-diagram', Diagram, {theme: 'simple'});});
})(window, document)
</script>