diff options
author | Stephane Desneux <stephane.desneux@iot.bzh> | 2016-11-08 12:39:57 +0100 |
---|---|---|
committer | Stephane Desneux <stephane.desneux@iot.bzh> | 2016-11-10 14:53:01 +0100 |
commit | c530e84843444a40804e0c2b038c2ec53fe411b2 (patch) | |
tree | 1a9eebf49fd85027ba472bad8c178d686bad8d56 /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.js | 72 |
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); + } + + } + } + + } +); + |