aboutsummaryrefslogtreecommitdiffstats
path: root/site/static/js/process-uml.js
diff options
context:
space:
mode:
authorStephane Desneux <stephane.desneux@iot.bzh>2016-11-08 12:39:57 +0100
committerStephane Desneux <stephane.desneux@iot.bzh>2016-11-10 14:53:01 +0100
commitc530e84843444a40804e0c2b038c2ec53fe411b2 (patch)
tree1a9eebf49fd85027ba472bad8c178d686bad8d56 /site/static/js/process-uml.js
webdocs-agl: added developer website template
Change-Id: I4a45ee0ad5dd0c29a6d6876a0e02cd5550c010e9 Signed-off-by: Stephane Desneux <stephane.desneux@iot.bzh>
Diffstat (limited to 'site/static/js/process-uml.js')
-rw-r--r--site/static/js/process-uml.js72
1 files changed, 72 insertions, 0 deletions
diff --git a/site/static/js/process-uml.js b/site/static/js/process-uml.js
new file mode 100644
index 0000000..8937612
--- /dev/null
+++ b/site/static/js/process-uml.js
@@ -0,0 +1,72 @@
+---
+ # WARNING: this is needed for {{xxxx}} to be processed by Jkyll
+---
+
+/*
+ * Copyright 2016 IoT.bzh
+ * author: Fulup Ar Foll
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ *limitations under the License.
+ */
+
+$(document).ready(function() {
+"use strict";
+ var umltag = "{{site.graph.tag_uml | "UML" }}";
+ var flowtag= "{{site.graph.tag_flow | "FLOW" }}";
+ var debug = "{{site.graph.tag_debug}}";
+
+ var elements = document.getElementsByTagName('code');
+
+ for(var idx=0; idx < elements.length; idx++) {
+ var style; var parser;
+ var element = elements[idx];
+ var subclass= element.className.split('-');
+
+ // overright style if needed
+ if (subclass.length > 1) {
+ switch (subclass[1]) {
+ case umltag: {
+ parser = Diagram;
+ break;
+ }
+
+ case flowtag: {
+ parser = flowchart;
+ break;
+ }
+
+ default:
+ continue;
+ }
+
+ if (subclass.length > 2) style= subclass[2];
+ else style= "{{site.graph.def_style | "simple"}}";
+
+ var source = element.innerText;
+ if (!debug) element.innerText="";
+ var iDiv = document.createElement('div');
+ element.appendChild (iDiv);
+
+ try {
+ var diagram=parser.parse (source);
+ diagram.drawSVG(iDiv, {theme: style});
+ } catch (err) {
+ element.classList.add ("error");
+ element.innerText="<p>Fail to process UML/Flow<p>" + source + "<br>" +err;
+ console.log ("Error[%s]: class=%s err=%s diagram=%s", subclass[1], element.className, err, source);
+ }
+
+ }
+ }
+
+ }
+);
+