diff -r c5ba1e77f054 -r ddb2c4668a6b svghmi/gen_index_xhtml.ysl2 --- a/svghmi/gen_index_xhtml.ysl2 Fri Oct 11 12:03:14 2019 +0200 +++ b/svghmi/gen_index_xhtml.ysl2 Tue Oct 15 17:14:48 2019 +0200 @@ -1,7 +1,7 @@ include yslt_noindent.yml2 // overrides yslt's output function to set CDATA -decl output(method, cdata-section-elements="script"); +decl output(method, cdata-section-elements="xhtml:script"); istylesheet /* From Inkscape */ @@ -11,6 +11,7 @@ xmlns:svg="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:xhtml="http://www.w3.org/1999/xhtml" /* Our namespace to invoke python code */ xmlns:ns="beremiz" @@ -163,7 +164,8 @@ function "scripts" { - /* paste hmitree hash stored in hmi tree root node */ + | (function(){ + | | var hmi_hash = [«$hmitree/@hash»]; /* TODO re-enable @@ -194,7 +196,7 @@ foreach "$widget/arg" | "«@value»"`if "position()!=last()" > ,` | ], - | paths: [ + | indexes: [ foreach "$widget/path" { const "hmipath","@value"; const "hmitree_match","$indexed_hmitree/*[@hmipath = $hmipath]"; @@ -207,19 +209,10 @@ } | } | - | var hmi_index = [ - - const "svg","/"; /* foreach loses document root */ + | var hmitree_types = [ + foreach "$indexed_hmitree/*" { - | { /* «@index» «@hmipath» */ - | type: "«local-name()»", - | ids: [ - const "hmipath","@hmipath"; - foreach "$svg//*[substring-after(@inkscape:label,'@') = $hmipath]" { - | hmi_widgets["«@id»"]`if "position()!=last()" > ,` - } - | ] - | }`if "position()!=last()" > ,` + | /* «@index» «@hmipath» */ "«substring(local-name(), 5)»"`if "position()!=last()" > ,` } | ] @@ -238,17 +231,7 @@ | id: "«@id»", | widgets: [ foreach "$page_ids" { - | "«.»"`if "position()!=last()" > ,` - } - | ] - | subscriptions: [ - foreach "$page_elements" { - const "hmipaths", "func:parselabel(@inkscape:label)/widget/path/@value"; - const "notlast", "position()!=last()"; - foreach "$hmipaths" { - const "hmipath","."; - | «$indexed_hmitree/*[@hmipath = $hmipath]/@index»`if "$notlast or position()!=last()" > ,` - } + | hmi_widgets.«.»`if "position()!=last()" > ,` } | ] | }`if "position()!=last()" > ,` @@ -259,6 +242,7 @@ | var default_page = "«$default_page»"; include text svghmi.js + | })(); } /*