include yslt_noindent.yml2 in xsl decl widget_desc(%name, match="widget[@type='%name']", mode="widget_desc") alias template { type > «@type» content; }; decl nothing alias - ; decl widget_class(%name) alias - {nothing}; decl widget_defs(%name) alias - {nothing}; decl widget_page(%name) alias - {nothing}; decl gen_index_xhtml alias - {nothing}; decl emit(*name) alias - {nothing}; istylesheet /* From Inkscape */ xmlns:svg="http://www.w3.org/2000/svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" extension-element-prefixes="ns func exsl regexp str dyn" exclude-result-prefixes="ns func exsl regexp str dyn svg inkscape" { const "indexed_hmitree", "/.."; // compatibility with parse_labels.ysl2 include parse_labels.ysl2 const "hmi_elements", "//svg:*[starts-with(@inkscape:label, 'HMI:')]"; include widget_*.ysl2 template "@* | node()", mode="document" { xsl:copy apply "@* | node()", mode="document"; } template "widget", mode="document" { xsl:copy { apply "@* | node()", mode="document"; defs apply ".", mode="widget_desc"; } } template "/" { const "widgets" apply "$hmi_elements", mode="parselabel"; const "widget_ns", "exsl:node-set($widgets)"; widgets apply "$widget_ns", mode="document"; } }