From 8a0fc513f7aeb6e9c9dab4937fcfb1962eaa01f4 Mon Sep 17 00:00:00 2001 From: Torsten Sommer Date: Tue, 9 Dec 2025 09:11:43 +0100 Subject: [PATCH 1/7] Use Modelica theme --- .github/workflows/build-ls-struct.yml | 43 ++- .gitmodules | 3 + docs/docinfo.html | 102 ------ docs/fmi-spec.css | 468 -------------------------- docs/images/FMI_logo_horizontal.svg | 103 ------ docs/images/favicon.ico | Bin 15086 -> 0 bytes docs/index.adoc | 18 +- docs/theme | 1 + 8 files changed, 40 insertions(+), 698 deletions(-) create mode 100644 .gitmodules delete mode 100644 docs/docinfo.html delete mode 100644 docs/fmi-spec.css delete mode 100644 docs/images/FMI_logo_horizontal.svg delete mode 100644 docs/images/favicon.ico create mode 160000 docs/theme diff --git a/.github/workflows/build-ls-struct.yml b/.github/workflows/build-ls-struct.yml index 91b6735..a708c0d 100644 --- a/.github/workflows/build-ls-struct.yml +++ b/.github/workflows/build-ls-struct.yml @@ -14,8 +14,16 @@ jobs: runs-on: ubuntu-24.04 steps: - - name: checkout - uses: actions/checkout@v4 + - name: Checkout + uses: actions/checkout@v4.1.7 + with: + submodules: recursive + + - uses: actions/download-artifact@v4.1.8 + with: + name: schema-figures + path: docs/images/schema + - name: Generate revnumber run: | [[ $GITHUB_REF_TYPE == "tag" ]] && REVNUMBER=${GITHUB_REF:11} || REVNUMBER=${GITHUB_SHA:0:7} @@ -24,26 +32,31 @@ jobs: echo GITHUB_REF: $GITHUB_REF echo REVNUMBER: $REVNUMBER echo "REVNUMBER=$REVNUMBER" >> $GITHUB_ENV + - name: Create build directory run: | + mkdir -p build/headers mkdir -p build/schema - mkdir -p build/images - - name: build layered standard struct + mkdir -p build/images/schema + + - name: Generate HTML uses: avattathil/asciidoctor-action@master with: - program: "asciidoctor -D build --backend=html5 --attribute=revnumber=${{ env.REVNUMBER }} --attribute=revdate=$(date +%F) docs/index.adoc" - - name: Copy resources - run: | - cp LICENSE.txt build - cp schema/*.xsd build/schema - cp docs/images/favicon.ico build/images - cp docs/images/*.svg build/images - - name: archive layered standard struct - uses: actions/upload-artifact@v4 + program: asciidoctor --attribute=revnumber=${{ env.REVNUMBER }} --attribute=revdate=$(date +%F) docs/index.adoc + + - name: Create ZIP archive + uses: actions/upload-artifact@v5 with: - name: FMI-LS-STRUCT - path: build/* + name: FMI-LS-Struct-${{ env.REVNUMBER }} + path: | + LICENSE.txt build + docs/index.html + docs/images/*.svg + docs/theme/css/*.css + docs/theme/images/*.svg + docs/theme/js/*.js if-no-files-found: error + - name: extract branch name id: extract_branch shell: bash diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..5ad00ee --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "docs/theme"] + path = docs/theme + url = git@github.com:modelica/ma-asciidoctor-theme.git diff --git a/docs/docinfo.html b/docs/docinfo.html deleted file mode 100644 index a72a766..0000000 --- a/docs/docinfo.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - -FMI logo diff --git a/docs/fmi-spec.css b/docs/fmi-spec.css deleted file mode 100644 index 09cf1b4..0000000 --- a/docs/fmi-spec.css +++ /dev/null @@ -1,468 +0,0 @@ -/* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */ -/* Uncomment @import statement below to use as custom stylesheet */ -/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/ -article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block} -audio,canvas,video{display:inline-block} -audio:not([controls]){display:none;height:0} -script{display:none!important} -html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%} -a{background:transparent} -a:focus{outline:thin dotted} -a:active,a:hover{outline:0} -h1{font-size:2em;margin:.67em 0} -abbr[title]{border-bottom:1px dotted} -b,strong{font-weight:bold} -dfn{font-style:italic} -hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0} -mark{background:#ff0;color:#000} -code,kbd,pre,samp{font-family:monospace;font-size:1em} -pre{white-space:pre-wrap} -q{quotes:"\201C" "\201D" "\2018" "\2019"} -small{font-size:80%} -sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline} -sup{top:-.5em} -sub{bottom:-.25em} -img{border:0} -svg:not(:root){overflow:hidden} -figure{margin:0} -fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em} -legend{border:0;padding:0} -button,input,select,textarea{font-family:inherit;font-size:100%;margin:0} -button,input{line-height:normal} -button,select{text-transform:none} -button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer} -button[disabled],html input[disabled]{cursor:default} -input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0} -button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0} -textarea{overflow:auto;vertical-align:top} -table{border-collapse:collapse;border-spacing:0} -*,*::before,*::after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box} -html,body{font-size:100%} -body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;tab-size:4;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased} -a:hover{cursor:pointer} -img,object,embed{max-width:100%;height:auto} -object,embed{height:100%} -img{-ms-interpolation-mode:bicubic} -.left{float:left!important} -.right{float:right!important} -.text-left{text-align:left!important} -.text-right{text-align:right!important} -.text-center{text-align:center!important} -.text-justify{text-align:justify!important} -.hide{display:none} -img,object,svg{display:inline-block;vertical-align:middle} -textarea{height:auto;min-height:50px} -select{width:100%} -.center{margin-left:auto;margin-right:auto} -.stretch{width:100%} -.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em} -div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr} -a{color:#2156a5;text-decoration:underline;line-height:inherit} -a:hover,a:focus{color:#1d4b8f} -a img{border:none} -p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility} -p aside{font-size:.875em;line-height:1.35;font-style:italic} -h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em} -h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0} -h1{font-size:2.125em} -h2{font-size:1.6875em} -h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em} -h4,h5{font-size:1.125em} -h6{font-size:1em} -hr{border:solid #ddddd8;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0} -em,i{font-style:italic;line-height:inherit} -strong,b{font-weight:bold;line-height:inherit} -small{font-size:60%;line-height:inherit} -code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)} -ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit} -ul,ol{margin-left:1.5em} -ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em} -ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit} -ul.square{list-style-type:square} -ul.circle{list-style-type:circle} -ul.disc{list-style-type:disc} -ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0} -dl dt{margin-bottom:.3125em;font-weight:bold} -dl dd{margin-bottom:1.25em} -abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help} -abbr{text-transform:none} -blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd} -blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)} -blockquote cite::before{content:"\2014 \0020"} -blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)} -blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)} -@media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2} -h1{font-size:2.75em} -h2{font-size:2.3125em} -h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em} -h4{font-size:1.4375em}} -table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede} -table thead,table tfoot{background:#f7f8f7} -table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left} -table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)} -table tr.even,table tr.alt,table tr:nth-of-type(even){background:#f8f8f7} -table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6} -h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em} -h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400} -.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table} -.clearfix::after,.float-group::after{clear:both} -*:not(pre)>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background-color:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed;word-wrap:break-word} -*:not(pre)>code.nobreak{word-wrap:normal} -*:not(pre)>code.nowrap{white-space:nowrap} -pre,pre>code{line-height:1.45;color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;text-rendering:optimizeSpeed} -em em{font-style:normal} -strong strong{font-weight:400} -.keyseq{color:rgba(51,51,51,.8)} -kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap} -.keyseq kbd:first-child{margin-left:0} -.keyseq kbd:last-child{margin-right:0} -.menuseq,.menuref{color:#000} -.menuseq b:not(.caret),.menuref{font-weight:inherit} -.menuseq{word-spacing:-.02em} -.menuseq b.caret{font-size:1.25em;line-height:.8} -.menuseq i.caret{font-weight:bold;text-align:center;width:.45em} -b.button::before,b.button::after{position:relative;top:-1px;font-weight:400} -b.button::before{content:"[";padding:0 3px 0 2px} -b.button::after{content:"]";padding:0 2px 0 3px} -p a>code:hover{color:rgba(0,0,0,.9)} -#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em} -#header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table} -#header::after,#content::after,#footnotes::after,#footer::after{clear:both} -#content{margin-top:1.25em} -#content::before{content:none} -#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0} -#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #ddddd8} -#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #ddddd8;padding-bottom:8px} -#header .details{border-bottom:1px solid #ddddd8;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap} -#header .details span:first-child{margin-left:-.125em} -#header .details span.email a{color:rgba(0,0,0,.85)} -#header .details br{display:none} -#header .details br+span::before{content:"\00a0\2013\00a0"} -#header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)} -#header .details br+span#revremark::before{content:"\00a0|\00a0"} -#header #revnumber{text-transform:capitalize} -#header #revnumber::after{content:"\00a0"} -#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #ddddd8;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem} -#toc{border-bottom:1px solid #efefed;padding-bottom:.5em} -#toc>ul{margin-left:.125em} -#toc ul.sectlevel0>li>a{font-style:italic} -#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0} -#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none} -#toc li{line-height:1.3334;margin-top:.3334em} -#toc a{text-decoration:none} -#toc a:active{text-decoration:underline} -#toctitle{color:#7a2518;font-size:1.2em} -@media screen and (min-width:768px){#toctitle{font-size:1.375em} -body.toc2{padding-left:15em;padding-right:0} -#toc.toc2{margin-top:0!important;background-color:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #efefed;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto} -#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em} -#toc.toc2>ul{font-size:.9em;margin-bottom:0} -#toc.toc2 ul ul{margin-left:0;padding-left:1em} -#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em} -body.toc2.toc-right{padding-left:0;padding-right:15em} -body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #efefed;left:auto;right:0}} -@media screen and (min-width:1280px){body.toc2{padding-left:30em;padding-right:0} -#toc.toc2{width:30em} -#toc.toc2 #toctitle{font-size:1.375em} -#toc.toc2>ul{font-size:.95em} -#toc.toc2 ul ul{padding-left:1.25em} -body.toc2.toc-right{padding-left:0;padding-right:20em}} -#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px} -#content #toc>:first-child{margin-top:0} -#content #toc>:last-child{margin-bottom:0} -#footer{max-width:100%;background-color:rgba(0,0,0,.8);padding:1.25em} -#footer-text{color:rgba(255,255,255,.8);line-height:1.44} -#content{margin-bottom:.625em} -.sect1{padding-bottom:.625em} -@media screen and (min-width:768px){#content{margin-bottom:1.25em} -.sect1{padding-bottom:1.25em}} -.sect1:last-child{padding-bottom:0} -.sect1+.sect1{border-top:1px solid #efefed} -#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400} -#content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em} -#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible} -#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none} -#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221} -.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em} -.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic} -table.tableblock.fit-content>caption.title{white-space:nowrap;width:0} -.paragraph.lead>p,#preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)} -table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:inherit} -.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%} -.admonitionblock>table td.icon{text-align:center;width:80px} -.admonitionblock>table td.icon img{max-width:none} -.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase} -.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #ddddd8;color:rgba(0,0,0,.6)} -.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0} -.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px} -.exampleblock>.content>:first-child{margin-top:0} -.exampleblock>.content>:last-child{margin-bottom:0} -.sidebarblock{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px} -.sidebarblock>:first-child{margin-top:0} -.sidebarblock>:last-child{margin-bottom:0} -.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center} -.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0} -.literalblock pre,.listingblock pre:not(.highlight),.listingblock pre[class="highlight"],.listingblock pre[class^="highlight "],.listingblock pre.CodeRay,.listingblock pre.prettyprint{background:#f7f7f8} -.sidebarblock .literalblock pre,.sidebarblock .listingblock pre:not(.highlight),.sidebarblock .listingblock pre[class="highlight"],.sidebarblock .listingblock pre[class^="highlight "],.sidebarblock .listingblock pre.CodeRay,.sidebarblock .listingblock pre.prettyprint{background:#f2f1f1} -.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;padding:1em;font-size:.8125em} -.literalblock pre.nowrap,.literalblock pre[class].nowrap,.listingblock pre.nowrap,.listingblock pre[class].nowrap{overflow-x:auto;white-space:pre;word-wrap:normal} -@media screen and (min-width:768px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:.90625em}} -@media screen and (min-width:1280px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:1em}} -.literalblock.output pre{color:#f7f7f8;background-color:rgba(0,0,0,.9)} -.listingblock pre.highlightjs{padding:0} -.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px} -.listingblock pre.prettyprint{border-width:0} -.listingblock>.content{position:relative} -.listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:#999} -.listingblock:hover code[data-lang]::before{display:block} -.listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:#999} -.listingblock.terminal pre .command:not([data-prompt])::before{content:"$"} -table.pyhltable{border-collapse:separate;border:0;margin-bottom:0;background:none} -table.pyhltable td{vertical-align:top;padding-top:0;padding-bottom:0;line-height:1.45} -table.pyhltable td.code{padding-left:.75em;padding-right:0} -pre.pygments .lineno,table.pyhltable td:not(.code){color:#999;padding-left:0;padding-right:.5em;border-right:1px solid #ddddd8} -pre.pygments .lineno{display:inline-block;margin-right:.25em} -table.pyhltable .linenodiv{background:none!important;padding-right:0!important} -.quoteblock{margin:0 1em 1.25em 1.5em;display:table} -.quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em} -.quoteblock blockquote,.quoteblock blockquote p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify} -.quoteblock blockquote{margin:0;padding:0;border:0} -.quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)} -.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0} -.quoteblock .attribution{margin-top:.5em;margin-right:.5ex;text-align:right} -.quoteblock .quoteblock{margin-left:0;margin-right:0;padding:.5em 0;border-left:3px solid rgba(0,0,0,.6)} -.quoteblock .quoteblock blockquote{padding:0 0 0 .75em} -.quoteblock .quoteblock blockquote::before{display:none} -.verseblock{margin:0 1em 1.25em} -.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility} -.verseblock pre strong{font-weight:400} -.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex} -.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic} -.quoteblock .attribution br,.verseblock .attribution br{display:none} -.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)} -.quoteblock.abstract{margin:0 1em 1.25em;display:block} -.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center} -.quoteblock.abstract blockquote,.quoteblock.abstract blockquote p{word-spacing:0;line-height:1.6} -.quoteblock.abstract blockquote::before,.quoteblock.abstract p::before{display:none} -table.tableblock{max-width:100%;border-collapse:separate} -p.tableblock:last-child{margin-bottom:0} -td.tableblock>.content{margin-bottom:-1.25em} -table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede} -table.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0} -table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0} -table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0} -table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px} -table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0} -table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0} -table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0} -table.frame-all{border-width:1px} -table.frame-sides{border-width:0 1px} -table.frame-topbot,table.frame-ends{border-width:1px 0} -table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd){background:#f8f8f7} -table.stripes-none tr,table.stripes-odd tr:nth-of-type(even){background:none} -th.halign-left,td.halign-left{text-align:left} -th.halign-right,td.halign-right{text-align:right} -th.halign-center,td.halign-center{text-align:center} -th.valign-top,td.valign-top{vertical-align:top} -th.valign-bottom,td.valign-bottom{vertical-align:bottom} -th.valign-middle,td.valign-middle{vertical-align:middle} -table thead th,table tfoot th{font-weight:bold} -tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7} -tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold} -p.tableblock>code:only-child{background:none;padding:0} -p.tableblock{font-size:1em} -td>div.verse{white-space:pre} -ol{margin-left:1.75em} -ul li ol{margin-left:1.5em} -dl dd{margin-left:1.125em} -dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0} -ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em} -ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none} -ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em} -ul.unstyled,ol.unstyled{margin-left:0} -ul.checklist{margin-left:.625em} -ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em} -ul.checklist li>p:first-child>input[type="checkbox"]:first-child{margin-right:.25em} -ul.inline{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em} -ul.inline>li{margin-left:1.25em} -.unstyled dl dt{font-weight:400;font-style:normal} -ol.arabic{list-style-type:decimal} -ol.decimal{list-style-type:decimal-leading-zero} -ol.loweralpha{list-style-type:lower-alpha} -ol.upperalpha{list-style-type:upper-alpha} -ol.lowerroman{list-style-type:lower-roman} -ol.upperroman{list-style-type:upper-roman} -ol.lowergreek{list-style-type:lower-greek} -.hdlist>table,.colist>table{border:0;background:none} -.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none} -td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em} -td.hdlist1{font-weight:bold;padding-bottom:1.25em} -.literalblock+.colist,.listingblock+.colist{margin-top:-.5em} -.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top} -.colist td:not([class]):first-child img{max-width:none} -.colist td:not([class]):last-child{padding:.25em 0} -.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd} -.imageblock.left,.imageblock[style*="float: left"]{margin:.25em .625em 1.25em 0} -.imageblock.right,.imageblock[style*="float: right"]{margin:.25em 0 1.25em .625em} -.imageblock>.title{margin-bottom:0} -.imageblock.thumb,.imageblock.th{border-width:6px} -.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em} -.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0} -.image.left{margin-right:.625em} -.image.right{margin-left:.625em} -a.image{text-decoration:none;display:inline-block} -a.image object{pointer-events:none} -sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super} -sup.footnote a,sup.footnoteref a{text-decoration:none} -sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline} -#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em} -#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0} -#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em} -#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em} -#footnotes .footnote:last-of-type{margin-bottom:0} -#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0} -.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0} -.gist .file-data>table td.line-data{width:99%} -div.unbreakable{page-break-inside:avoid} -.big{font-size:larger} -.small{font-size:smaller} -.underline{text-decoration:underline} -.overline{text-decoration:overline} -.line-through{text-decoration:line-through} -.aqua{color:#00bfbf} -.aqua-background{background-color:#00fafa} -.black{color:#000} -.black-background{background-color:#000} -.blue{color:#0000bf} -.blue-background{background-color:#0000fa} -.fuchsia{color:#bf00bf} -.fuchsia-background{background-color:#fa00fa} -.gray{color:#606060} -.gray-background{background-color:#7d7d7d} -.green{color:#006000} -.green-background{background-color:#007d00} -.lime{color:#00bf00} -.lime-background{background-color:#00fa00} -.maroon{color:#600000} -.maroon-background{background-color:#7d0000} -.navy{color:#000060} -.navy-background{background-color:#00007d} -.olive{color:#606000} -.olive-background{background-color:#7d7d00} -.purple{color:#600060} -.purple-background{background-color:#7d007d} -.red{color:#bf0000} -.red-background{background-color:#fa0000} -.silver{color:#909090} -.silver-background{background-color:#bcbcbc} -.teal{color:#006060} -.teal-background{background-color:#007d7d} -.white{color:#bfbfbf} -.white-background{background-color:#fafafa} -.yellow{color:#bfbf00} -.yellow-background{background-color:#fafa00} -span.icon>.fa{cursor:default} -a span.icon>.fa{cursor:inherit} -.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default} -.admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c} -.admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111} -.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900} -.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400} -.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000} -.conum[data-value]{display:inline-block;color:#fff!important;background-color:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold} -.conum[data-value] *{color:#fff!important} -.conum[data-value]+b{display:none} -.conum[data-value]::after{content:attr(data-value)} -pre .conum[data-value]{position:relative;top:-.125em} -b.conum *{color:inherit!important} -.conum:not([data-value]):empty{display:none} -dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility} -h1,h2,p,td.content,span.alt{letter-spacing:-.01em} -p strong,td.content strong,div.footnote strong{letter-spacing:-.005em} -p,blockquote,dt,td.content,span.alt{font-size:1.0625rem} -p{margin-bottom:1.25rem} -.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em} -.exampleblock>.content{background-color:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc} -.print-only{display:none!important} -@page{margin:1.25cm .75cm} -@media print{*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important} -html{font-size:80%} -a{color:inherit!important;text-decoration:underline!important} -a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important} -a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em} -abbr[title]::after{content:" (" attr(title) ")"} -pre,blockquote,tr,img,object,svg{page-break-inside:avoid} -thead{display:table-header-group} -svg{max-width:100%} -p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3} -h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid} -#toc,.sidebarblock,.exampleblock>.content{background:none!important} -#toc{border-bottom:1px solid #ddddd8!important;padding-bottom:0!important} -body.book #header{text-align:center} -body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em} -body.book #header .details{border:0!important;display:block;padding:0!important} -body.book #header .details span:first-child{margin-left:0!important} -body.book #header .details br{display:block} -body.book #header .details br+span::before{content:none!important} -body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important} -body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always} -.listingblock code[data-lang]::before{display:block} -#footer{padding:0 .9375em} -.hide-on-print{display:none!important} -.print-only{display:block!important} -.hide-for-print{display:none!important} -.show-for-print{display:inherit!important}} -@media print,amzn-kf8{#header>h1:first-child{margin-top:1.25rem} -.sect1{padding:0!important} -.sect1+.sect1{border:0} -#footer{background:none} -#footer-text{color:rgba(0,0,0,.6);font-size:.9em}} -@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}} - -/* customizations */ - -body{ - font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; -} - -.toc-hidden { - padding-left: 0 !important; -} - -.imageblock { - text-align: center; -} - -.imageblock img { - display: block; - margin: auto; -} - -.imageblock .title { - display: inline-block; - margin: auto; -} - -.vertical-text { - transform: rotate(-90deg) translate(-11em, 0); - transform-origin: left top 0; - float: left; - display: inline-block; - white-space: nowrap; - width: 1em; - height: 11em; -} - -/* no alternating row colors */ -table tr.even,table tr.alt,table tr:nth-of-type(even) { - background:none -} - -/* use parent text color for captions */ -.subheader, .admonitionblock td.content>.title, .audioblock>.title, .exampleblock>.title, .imageblock>.title, .listingblock>.title, .literalblock>.title, .stemblock>.title, .openblock>.title, .paragraph>.title, .quoteblock>.title, table.tableblock>.title, .verseblock>.title, .videoblock>.title, .dlist>.title, .olist>.title, .ulist>.title, .qlist>.title, .hdlist>.title { - color: inherit; -} - -a { - text-decoration: none; -} diff --git a/docs/images/FMI_logo_horizontal.svg b/docs/images/FMI_logo_horizontal.svg deleted file mode 100644 index 4a28e0f..0000000 --- a/docs/images/FMI_logo_horizontal.svg +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/images/favicon.ico b/docs/images/favicon.ico deleted file mode 100644 index 38acadfb417b0b6e224fe3ca0750b1f2baf6e55d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15086 zcmeHN_gB+b6#uII1N@~wb#Yp)+V-@zwf3}%7584HOY1pW#8nqntb3w$pt!|_ihF^8 z6UE}TC5(g_b`nN_Fd{4LzRwqL`iSHkLntJtaL(m^-+lMpd*995_X|6V%n!8o$x6>MDcCNA+8#4KLmGt7}P-HYGYT>jqD5a> z)7C~_Tjqc*b5LyC?4n==5$lW-gMkdNKAHPtKI+WCg~0(E{bd{nuOJ7ypcA?Wy#l{A zvaR8T4F}s%e_Q(88o&H+dHYY!H}o2*t?MydTmLFxE$`@=x-zNp=6fPleZ@amHD;Es zZ0PiYaw!<)t}DCDc)fg5a;5lCH({=>H1Oml)uGclDk=S&rw$SKjl{q1Cra_5E+Z~7 z4*Sbm*RLuq@yhO8O$P7IS>we$&>a7oNnciiFY<0sGVweJIGN7&NNvphn@XYqV=n~n z?;}1E&j@@S_CvHulm9KA86I3Ykq%z3DK3)!Z%)6j=d?n!4cxmii`OBgpZ4EJS5K#* zO^1FP{J(UXu3i1#&iW58a})c2dDq%(e*DEf2}^=sa7N_m_}=h?b2;iB2c5Bb{9W3) zItQ}0P9OQ4*AsGhn+9|Mon=wa&Y{sbUxSV_IcWKs4EfV*=Tj9ALz8$JI9sMEBH{^F zjQz9WQ1SxOZOc9K@HJYP3U8I7~r24b?=&ztw$B0 z^XpRVqdQ4Bho18C(DM3muEqL6a!fJqA2rnm8P3Y4btrH9Wz_R!qdtDAJ^GJ1Pr9&% zf!}MgOF7X9U+`X$vv|n+wE)tAb2rg&52&rJk=;19Q|;|OR=;fYC*m2No%PkA!{5i( z&do=^;lBfmrxr$qg&5aQ=y?)+HWl)=xs7h}8Xz%-1d*46l4&0W0fG+gAv$=PHwxZ*mf<2K6 z(-=s-Q?P3BkJ&ty!C?mX8QAMR6}G{~F=RI|D|^|o&E|aR^}=@e-5ig-(_#A&2e#kd z$GfH9-=62HCEGjd?Ree?gjS@w&M(y4BLv;8NU^l$>^ohm>OM@{fOp4kL$wXI!hk9H zmA1-op4=$I_gtC9JJ|7nvW$Qm`Kb~2?kJ}(FDkM{_u4%rIkLMU$==8GnwH9OTUk^n z3%i|sF1R@TWMH}R{%!7eD9BOAZ2ajP@vY>_p7mK;U2SwrASbUf=I9Fd0^Hel&-<=e zqb`)UM9xK@HQA7X_rp9*rp5bb_{C%5y8_yOp z7^4&~>MYs+yhs;?w+n)DeQ{KCGOe-y+4YM?d3ayq<+Zl`cz-5;0Q2u;yk2YUUo`OD zI+A(!%)ur;?y$e<8P(za&)z`kw|2#KcJ+{LI%;ejddS ziEs79FAUd@?ocCsiI^SYa#Y7-#P`q^vAZWB=TgykzJB*SS7SaO^>cyq+s5t~op4r4yqIHZst0lBJXM;U@+wX1sf@Xe7`nN85AhMk{z!nFPNJK` z_b(q$C;Nfu-CqnYRV&3%_Or9oQ`9@A5qM{=Mnv!Ny!; z^ac6J=$F0QP4;1*V zoE2~;L|;MaD#Hd-wR;rQqx2 Date: Tue, 9 Dec 2025 09:31:45 +0100 Subject: [PATCH 2/7] Fix CI --- .github/workflows/build-ls-struct.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/build-ls-struct.yml b/.github/workflows/build-ls-struct.yml index a708c0d..b1f8943 100644 --- a/.github/workflows/build-ls-struct.yml +++ b/.github/workflows/build-ls-struct.yml @@ -19,11 +19,6 @@ jobs: with: submodules: recursive - - uses: actions/download-artifact@v4.1.8 - with: - name: schema-figures - path: docs/images/schema - - name: Generate revnumber run: | [[ $GITHUB_REF_TYPE == "tag" ]] && REVNUMBER=${GITHUB_REF:11} || REVNUMBER=${GITHUB_SHA:0:7} From 26fd7791482681c90c6e2eb45910567fc5cbf442 Mon Sep 17 00:00:00 2001 From: Torsten Sommer Date: Tue, 9 Dec 2025 09:37:33 +0100 Subject: [PATCH 3/7] Don't copy license --- .github/workflows/build-ls-struct.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build-ls-struct.yml b/.github/workflows/build-ls-struct.yml index b1f8943..e5e3058 100644 --- a/.github/workflows/build-ls-struct.yml +++ b/.github/workflows/build-ls-struct.yml @@ -44,7 +44,6 @@ jobs: with: name: FMI-LS-Struct-${{ env.REVNUMBER }} path: | - LICENSE.txt build docs/index.html docs/images/*.svg docs/theme/css/*.css From 6d65331eeec5b004d47af7f76c55aad82541d856 Mon Sep 17 00:00:00 2001 From: Torsten Sommer Date: Tue, 9 Dec 2025 09:43:02 +0100 Subject: [PATCH 4/7] Add license to ZIP --- .github/workflows/build-ls-struct.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-ls-struct.yml b/.github/workflows/build-ls-struct.yml index e5e3058..95cad2a 100644 --- a/.github/workflows/build-ls-struct.yml +++ b/.github/workflows/build-ls-struct.yml @@ -28,23 +28,21 @@ jobs: echo REVNUMBER: $REVNUMBER echo "REVNUMBER=$REVNUMBER" >> $GITHUB_ENV - - name: Create build directory - run: | - mkdir -p build/headers - mkdir -p build/schema - mkdir -p build/images/schema - - name: Generate HTML uses: avattathil/asciidoctor-action@master with: program: asciidoctor --attribute=revnumber=${{ env.REVNUMBER }} --attribute=revdate=$(date +%F) docs/index.adoc + - name: Copy license + run: cp LICENSE.txt docs + - name: Create ZIP archive uses: actions/upload-artifact@v5 with: name: FMI-LS-Struct-${{ env.REVNUMBER }} path: | docs/index.html + docs/LICENSE.txt docs/images/*.svg docs/theme/css/*.css docs/theme/images/*.svg From 167b8308630ba49d273b0e74431880504e1f8fbd Mon Sep 17 00:00:00 2001 From: Torsten Sommer Date: Tue, 9 Dec 2025 09:59:27 +0100 Subject: [PATCH 5/7] Fix formatting --- docs/index.adoc | 73 ++++++++++++++++++++++--------------------------- 1 file changed, 33 insertions(+), 40 deletions(-) diff --git a/docs/index.adoc b/docs/index.adoc index 8befa14..62bdb43 100644 --- a/docs/index.adoc +++ b/docs/index.adoc @@ -25,7 +25,7 @@ Copyright (C) 2025 The Modelica Association Project FMI. This document is licensed under the Attribution-ShareAlike 4.0 International license. The code is released under the 2-Clause BSD License. -The licenses text can be found in the https://raw.githubusercontent.com/modelica/fmi-standard/main/LICENSE.txt[LICENSE.txt] file that accompanies this distribution. +The licenses text can be found in the link:LICENSE.txt[LICENSE.txt] file that accompanies this distribution. == Introduction @@ -45,7 +45,9 @@ In key parts of this document, non-normative examples are used to help understan Conventions used in this document: -* Non-normative text is given in square brackets in italic font: _[Especially examples are defined in this style.]_ +* Non-normative text is given like this: ++ +NOTE: Especially examples are defined in this style. * The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in https://tools.ietf.org/html/rfc2119[RFC 2119] (regardless of formatting and capitalization). @@ -105,7 +107,6 @@ n-d lookup table:: In the context of this layered standard, an n-d lookup table is a sampled representation of a function of n input variables latexmath:[(y_1, y_2, \dots, y_m) = F(x_1, x_2, x_3, \dots, x_n)], sampled on points of the n-dimensional domain. Such an n-d lookup table could be also called a map from the n-dimensional domain to an m-dimensional codomain. - ==== Definition of `terminalKind` attribute values `org.fmi-standard.fmi-ls-struct.map.rectilinearGrid`:: @@ -114,7 +115,6 @@ for maps defined on the vertices of a rectilinear grid. `org.fmi-standard.fmi-ls-struct.map.irregular`:: for maps defined by unstructured tuples of ("point cloud"). - ==== `variableKind` attribute values of terminal member variables: We want to represent a map from a domain set to a codomain by providing points in the domain set and the values they are mapped to. @@ -130,7 +130,8 @@ However the size of each `domainInput` must be the same for each domain: For non `org.fmi-standard.fmi-ls-struct.map.codomain`:: For each of the represented points in the domain set, the values to which they are mapped are represented. -_[There can be multiple terminal member variables with `variableKind` `codomain` to represent multiple maps in one terminal.]_ ++ +NOTE: There can be multiple terminal member variables with `variableKind` `codomain` to represent multiple maps in one terminal. `org.fmi-standard.fmi-ls-struct.map.domainOutput`:: Optionally, for each `domain` variable at most one array variable (typically an output or a local variable) can be referenced that represents calculated output value of the map. @@ -138,7 +139,6 @@ If present, a `domainOutput` variable must be listed directly after the correspo Additional terminal member variables can be added to the terminal as related variables but if they do not fit into one of the above categories, they shall not have a `variableKind` starting with `org.fmi-standard.fmi-ls-struct`. - ==== Definition of map specific `matchingRule` The matching rule `org.fmi-standard.fmi-ls-struct.map` should be used for terminals that represent maps. @@ -146,28 +146,31 @@ The matching rule `org.fmi-standard.fmi-ls-struct.map` should be used for termin Requirements for matching: * The number of domain entries must be the same. + * The terminal member names, its data types and the (effective) size and of all domains (`variableKind=org.fmi-standard.fmi-ls-struct.map.domain`) must match. + * If all domains match, connect all these domains. + * Connect all codomains (`variableKind=org.fmi-standard.fmi-ls-struct.map.codomain`) that match. -* Don't connect any other terminal member variables. -_[This indicates that the variableKind of the member must be considered for the connection of the individual members of the terminal.]_ +* Don't connect any other terminal member variables. ++ +NOTE: This indicates that the variableKind of the member must be considered for the connection of the individual members of the terminal. === Structure of the FMU archive This layered standard uses "Terminals and Icons" mechanism of FMI 3.0. All information is stored in the TerminalsAndIcons.xml file in the TerminalsAndIcons folder of an FMU. - == Maps sampled on rectilinear grids === Definitions n-d lookup table on a rectilinear grid:: In the context of this layered standard, an n-d lookup table on a rectilinear grid is a sampled representation of a function of n input variables latexmath:[y=F(x_1, x_2, x_3, \dots, x_n)] sampled on the vertices of a rectilinear grid. - -_[In <>, such a 1-d lookup table is called a *CURVE*, a 2-d lookup table is called *MAP*, and a 3-d lookup table is called *CUBOID*. -4-d and 5-d lookup tables are called *CUBE_4* and *CUBE_5*, respectively. Higher dimensional lookup tables are not defined in <>.]_ ++ +NOTE: In <>, such a 1-d lookup table is called a *CURVE*, a 2-d lookup table is called *MAP*, and a 3-d lookup table is called *CUBOID*. +4-d and 5-d lookup tables are called *CUBE_4* and *CUBE_5*, respectively. Higher dimensional lookup tables are not defined in <>. terminalKind:: A terminal with `terminalKind="org.fmi-standard.fmi-ls-struct.map.rectilinearGrid"` defines a map on the vertices of a rectilinear grid. @@ -180,24 +183,22 @@ For each of the m dimensions of the codomain, the sampled function values (along The length of the i-th domain vector must be equal to length of the i-th codomain dimension. -_[Note: This layered standard doesn't define how maps have to be represented in a GUI. +NOTE: Note: This layered standard doesn't define how maps have to be represented in a GUI. In particular, the standard doesn't define if the first dimension is displayed as columns or rows. -However, for the example lookup tables of this document, the sampling points of first dimension of the domain are shown as a column vector, and the values of second dimension are shown as a row vector.]_ - +However, for the example lookup tables of this document, the sampling points of first dimension of the domain are shown as a column vector, and the values of second dimension are shown as a row vector. === 2-d example of a lookup table on a rectilinear grid - [[rectilinear_example]] [cols="1,1,1,1,1"] |==== -2.2+|v -3+|y +2.2+h|v +3+h|y |10.0 |25.0 |30.0 -.2+|x +.2+h|x |2.0 |11.0 |12.0 @@ -209,7 +210,6 @@ However, for the example lookup tables of this document, the sampling points of |23.0 |==== - The individual variables of the example 2-dimensional map on a rectilinear grid are given in the modelDescription.xml. [source, xml] @@ -224,12 +224,8 @@ These variables are grouped in a terminal with the terminalKind `org.fmi-standar include::examples/terminalsAndIcons.xml[] ---- - - - == Maps sampled on irregular grids ("Point Cloud") - === Definitions n-d lookup table on an irregular grid:: @@ -249,9 +245,9 @@ and codomains latexmath:[u=[u_1, u_2, \dots, u_n\], v=[v_1, v_2, \dots, v_n\], \ All domain arrays and codomain arrays must have the same length. -_[Note: A map on a 1-dimensional domain can be equivalently represented by a terminal of `terminalKind="org.fmi-standard.fmi-ls-struct.map.irregular"` or a terminal with `terminalKind="org.fmi-standard.fmi-ls-struct.map.rectilinearGrid"`.]_ +NOTE: Note: A map on a 1-dimensional domain can be equivalently represented by a terminal of `terminalKind="org.fmi-standard.fmi-ls-struct.map.irregular"` or a terminal with `terminalKind="org.fmi-standard.fmi-ls-struct.map.rectilinearGrid"`. -_[Note: Any n-d lookup table that can be described with `terminalKind="org.fmi-standard.fmi-ls-struct.map.rectilinearGrid"` could be also represented by an n-d lookup table with `terminalKind="org.fmi-standard.fmi-ls-struct.map.irregular"`.]_ +NOTE: Note: Any n-d lookup table that can be described with `terminalKind="org.fmi-standard.fmi-ls-struct.map.rectilinearGrid"` could be also represented by an n-d lookup table with `terminalKind="org.fmi-standard.fmi-ls-struct.map.irregular"`. === 3-d example of a lookup table on an irregular grid @@ -261,11 +257,11 @@ The lookup table is sampled at 3 different points of the domain (2, 10, 10), (3, [cols="1,1,1,1,1"] |==== -|x -|y -|z -|v1 -|v2 +h|x +h|y +h|z +h|v1 +h|v2 |2.0 |10.0 @@ -284,7 +280,6 @@ The lookup table is sampled at 3 different points of the domain (2, 10, 10), (3, |30.0 |13.0 |3.0 - |==== [source, xml] @@ -304,13 +299,13 @@ The previous <> with 2 sampli [[irregular_rectilinear_example]] [cols="1,1,1,1,1"] |==== -2.2+|v -3+|y +2.2+h|v +3+h|y |10.0 |25.0 |30.0 -.2+|x +.2+h|x |2.0 |11.0 |12.0 @@ -326,11 +321,10 @@ can be represented as a lookup table on a irregular grid with the same 6 samplin [[irregular_irregular_rectilinear_example]] [cols="1,1,1"] - |==== -|x -|y -|v +h|x +h|y +h|v |2.0 |10.0 @@ -355,7 +349,6 @@ can be represented as a lookup table on a irregular grid with the same 6 samplin |3.0 |30.0 |23.0 - |==== [source, xml] From 196a0f98a35d55508953813b29328ec103c39010 Mon Sep 17 00:00:00 2001 From: Torsten Sommer Date: Wed, 17 Dec 2025 11:54:04 +0100 Subject: [PATCH 6/7] Update theme --- docs/theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/theme b/docs/theme index b95afc1..e077a86 160000 --- a/docs/theme +++ b/docs/theme @@ -1 +1 @@ -Subproject commit b95afc1c903394d2c8d0fdc6a3e84ed41f37108c +Subproject commit e077a86fcbc9de1039724b0a55ad307d566e2024 From f753dd172ffe43521926805240afe0289ae58b9d Mon Sep 17 00:00:00 2001 From: Torsten Sommer Date: Wed, 17 Dec 2025 12:04:44 +0100 Subject: [PATCH 7/7] Remove revnumber --- .github/workflows/build-ls-struct.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-ls-struct.yml b/.github/workflows/build-ls-struct.yml index 95cad2a..aed4034 100644 --- a/.github/workflows/build-ls-struct.yml +++ b/.github/workflows/build-ls-struct.yml @@ -39,7 +39,7 @@ jobs: - name: Create ZIP archive uses: actions/upload-artifact@v5 with: - name: FMI-LS-Struct-${{ env.REVNUMBER }} + name: FMI-LS-Struct path: | docs/index.html docs/LICENSE.txt