Kanonische Links über _canonical realisiert
[website] / dist / templates / layout.html
index 46f8c3f..7175241 100644 (file)
     th:fragment="layout(uri,maincontent)"
     thymeproxy:variables="SET:sitemap.json"
     >
-  <head>
+  <head thymeproxy:variables="${json}">
     <meta charset="utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1">
     <title th:replace="${title}">juplo - BASISTEMPLATE</title>
     <link rel="stylesheet" href="../css/juplo.css" th:href="@{/css/juplo.css}">
-    <link rel="caononical" href="layout.html" th:replace="${scripts_head}?:~{}">
+    <link rel="canonical" href="layout.html" th:href="${_canonical.get(uri)}?:${uri}">
+    <script th:replace="${scripts_head}?:~{}"></script>
   </head>
   <body
       th:fragment="body(uri, maincontent, marginalcontent)"
-      thymeproxy:variables="${json}"
-      th:with="crumbs=${_crumbs.get(uri)}"
-      >
-    <nav class="section column is-8-desktop is-offset-2-desktop">
-      <div class="navbar is-size-2-tablet has-text-weight-bold" role="navigation" aria-label="main navigation">
-        <div class="navbar-brand">
-          <a class="navbar-item" href="../index.html" th:href="@{/}" title="Home">
-            <img src="/img/logo.svg" alt="juplo" class="logo">
-          </a>
-      
-          <a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navbar">
-            <span aria-hidden="true"></span>
-            <span aria-hidden="true"></span>
-            <span aria-hidden="true"></span>
-          </a>
-        </div>
-      
-        <div id="navbar" class="navbar-menu">
-          <div class="navbar-start" th:each="entry : ${_sections}">
-            <a class="navbar-item" href="../blog/" th:href="@{${entry.value}}" th:text="${_titles.get(entry.value)}">Blog</a>
-            <!--/*-->
-            <a class="navbar-item" href="../projects.html">Projects</a>
-            <a class="navbar-item" href="../about.html">About</a>
-            <!--*/-->
-          </div>
-          <div class="navbar-end">
-            <a class="navbar-item" href="../about.html">About</a>
-          </div>
-        </div>
-      </div>
-    </nav>
-    <section class="section">
-      <div class="container">
-        <div class="columns">
-          <div class="column is-8-desktop is-offset-2-desktop breadcrumb" aria-label="breadcrumbs">
-            <strong>You are here:</strong>
-            <ul>
-              <li><a href="../index.html" th:href="@{/index.html}">Home</a></li>
-              <li th:each="crumb: ${crumbs}"><a href="../projects.html" th:href="@{${crumb}}" th:text="${_titles.get(crumb)}">Projects</a></li>
-              <!--/*-->
-              <li class="is-active"><a class="b" th:text="${title}">Fix SWF</a></li>
-              <!--*/-->
-            </ul>
-            <a href="#nav" title="Show navigation menu">Jump to navigation</a>
-          </div>
-        </div>
-      </div>
-    </section>
-    <section class="section" id="top">
-      <div class="container">
-        <div class="columns">
-          <nav id="nav" class="column is-3-tablet is-3-desktop content" th:include="~{::#navigation}?:_" th:with="section=${crumbs != null ? crumbs[0] : null}">
-            <a class="hide" href="#top" title="Show Content">Jump back to the top of the page</a>
-            <h1 class="nav">Navigation</h1>
-            <h2 class="nav menu">Section-Menu</h2>
-            <ul id="menu" class="cf">
-              <li class="m blog" th:each="entry : ${_sections}" th:class="'m ' + ${entry.key}">
-                <a href="../blog/" th:href="@{${entry.value}}" class="m" th:class="${entry.value == section} ? 'm selected' : 'm'" th:text="${_titles.get(entry.value)}">Blog</a>
-              </li>
-              <!--/*-->
-              <li class="m projects"><a href="../projects.html" class="m selected">Projects</a></li>
-              <li class="m about"><a href="../about.html" class="m">About</a></li>
-              <!--*/-->
-            </ul>
-            <h2 class="nav submenu">
-              <span class="s">Submenu for section</span>
-              <a class="s selected" href="../projects.html" th:href="@{${section}}" th:text="${_titles.get(section)}">Projects</a>
-            </h2>
-            <ul th:include="${submenu}?:_"
-                th:with="
-                  len=${crumbs.size()},
-                  submenu=${_childs.get(section)},
-                  parent=${crumbs[0]},
-                  pos=1"
-                id="submenu"
+      th:with="crumbs=${_crumbs.get(uri)}">
+    <div id="page" class="">
+      <main class="content section" th:include="${maincontent}" th:fragment="maincontent">
+        <h1 th:text="${_titles.get(uri)}">TEMPLATE: Layout</h1>
+        <p>
+          <strong>Lorem ipsum</strong> dolor
+          <a href="../potemkin/typo.html" th:href="@{/potemkin/typo.html}">sit amet</a>,
+          consectetur adipisicing elit, sed do eiusmod tempor incididunt ut
+          labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
+          <a href="../potemkin/html-experimente.html" th:href="@{/potemkin/html-experimente.html}">exercitation</a>
+          ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
+          irure dolor in reprehenderit in voluptate velit esse cillum dolore
+          eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
+          proident, sunt in culpa qui officia deserunt mollit anim id est
+          laborum.
+        </p>
+        <h2 class="title">Duis aute irure dolor</h2>
+        <ul>
+          <li>Operators and other mathematical stuff: -+/*</li>
+          <li>
+            Characters offten used in programming languages:
+            {(&lt;&gt;)}@$?%*#;:&amp;/\!^&#034;&#039;`~
+          </li>
+          <li>Special german characters: ÄäÖöÜü</li>
+          <li>Other special characters: @?¢§%°</li>
+        </ul>
+        <h2 class="title">Excepteur sint occaecat cupidatat</h2>
+        <p>
+          Lorem ipsum dolor <em>sit amet</em>, consectetur adipisicing elit,
+          sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+          Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
+          nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
+          reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
+          pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
+          culpa qui officia deserunt mollit anim id est laborum.
+        </p>
+        <p>
+          Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
+          eiusmod tempor incididunt ut labore et dolore magna aliqua.
+          <strong>Ut enim ad minim veniam, quis nostrud <em>exercitation
+          ullamco</em> laboris nisi ut aliquip ex ea commodo consequat</strong>.
+          Duis aute irure dolor in reprehenderit in voluptate velit esse
+          cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
+          cupidatat non proident, sunt in culpa qui officia deserunt mollit
+          anim id est laborum.
+        </p>
+      </main>
+      <nav class="section has-text-right">
+        <a href="../index.html" th:href="@{/}" title="Home">
+          <img src="/img/logo.svg" alt="juplo" class="logo">
+        </a>
+        <ul th:with="
+              len=${crumbs == null} ? 0 : ${crumbs.size()},
+              parent=${crumbs == null} ? '' : ${crumbs[0]},
+              submenu=${_childs.get(parent)},
+              pos=1"
+            id="navigation"
+            class="s mr-4 mt-4"
+            th:class="'mr-4 mt-4 s' + (${len == 1 or (len == 2 and _childs.get(uri) == null)} ? ' selected' : '')">
+          <!--/*-->
+          <li class="s sub off"><a href="../blog/" class="s">Blog</a></li>
+          <!--*/-->
+          <li th:fragment="submenu(submenu, parent, pos)"
+              th:each="entry : ${submenu}"
+              th:with="
+                  child=${pos == len},
+                  selected=${!child and crumbs.get(pos) == entry},
+                  leaf=${pos >= (len - 1) and not selected},
+                  sibling=${pos + 1 == len and (_childs.get(uri) == null or uri == parent)},
+                  childs=${entry == parent ? null : _childs.get(entry)}
+                  "
+              class="s sub"
+              th:class="'s' + (${childs} ? ' sub' : '') + (${selected or sibling or child} ? '' : ' off')">
+            <a  href="../projects.html"
+                th:if="${entry != parent}"
+                th:href="@{${entry}}"
+                class="s selected"
+                th:class="(${selected} ? 's selected' : 's') + ' len_' + ${len} + ' pos_' + ${pos} + (${leaf}?' leaf':'')"
+                th:text="${_titles.get(entry)}">Projekte</a>
+            <ul th:if="${selected and childs != null}"
                 class="s"
-                th:class="'s' + (${len == 1 or (len == 2 and _childs.get(uri) == null)} ? ' selected' : '')"
-                >
-              <li th:fragment="submenu(submenu, parent, pos)"
-                  th:each="entry : ${submenu}"
-                  th:with="
-                      child=${pos == len},
-                      selected=${!child and crumbs.get(pos) == entry},
-                      sibling=${pos + 1 == len and (_childs.get(uri) == null or uri == parent)},
-                      childs=${entry == parent ? null : _childs.get(entry)}
-                      "
-                  class="s sub"
-                  th:class="'s' + (${childs} ? ' sub' : '') + (${selected or sibling or child} ? '' : ' off')"
-                  >
-                <a  href="../potemkin/fix-swf/overview.html"
-                    th:if="${entry != parent}"
-                    th:href="@{${entry}}"
-                    class="s selected"
-                    th:class="${selected} ? 's selected' : 's'"
-                    th:text="${_titles.get(entry)}"
-                    >fix-swf</a>
-                <ul th:if="${selected and childs != null}"
-                    class="s active"
-                    th:class="'s' + (${selected &amp;&amp; pos == crumbs.size()-1} ? ' active' : '') + (${entry == uri or (len &gt; 1 and entry == crumbs.get(len-2) and _childs.get(uri) == null)} ? ' selected' : '')"
-                    >
-                  <li th:replace="this :: submenu(submenu=${childs}, parent=${entry}, pos=${pos + 1})"
-                      class="s"
-                      >
-                    <strong class="s">Overview</strong>
-                  </li>
-                  <!--/*-->
-                  <li class="s"><a href="../potemkin/fix-swf/getting-started.html" class="s">Getting Started</a></li>
-                  <li class="s"><a href="#" class="s">FAQ</a></li>
-                  <li class="s"><a href="#" class="s">Documentation</a></li>
-                  <!--*/-->
+                th:class="'s' + (${entry == uri or (len &gt; 1 and entry == crumbs.get(len-2) and _childs.get(uri) == null)} ? ' selected' : '')">
+              <!--/*-->
+              <li class="s sub">
+                <a class="s selected" href="../potemkin/fix-swf/overview.html">fix swf</a>
+                <ul class="s">
+                  <li class="s"><strong class="s selected">Overview</strong></li>
+                  <li class="s"><a class="s leaf" href="../potemkin/fix-swf/getting-started.html">Getting Started</a></li>
+                  <li class="s"><a class="s leaf" href="#">FAQ</a></li>
+                  <li class="s"><a class="s leaf" href="#">Documentation</a></li>
                 </ul>
               </li>
-              <!--/*-->
               <li class="s sub off"><a href="#" class="s">hibernate4-maven-plugin</a></li>
               <li class="s off"><a href="#" class="s">jquery.openx</a></li>
               <li class="s sub off"><a href="../potemkin/html-experimente.html" th:href="@{/potemkin/html-experimente.html}" class="s">HTML-Experimente</a></li>
               <li class="s sub off"><a href="#" class="s">accelerator</a></li>
-              <li class="s off"><a href="../potemkin/typo.html" th:href="@{/potemkin/typo.html}" class="s">Typography</a></li>
               <!--*/-->
+              <li th:replace="this :: submenu(submenu=${childs}, parent=${entry}, pos=${pos + 1})" class="s off"><a href="../potemkin/typo.html" th:href="@{/potemkin/typo.html}" class="s">Typography</a></li>
             </ul>
-            <hr class="n"/>
-          </nav>
-          <div class="column is-9-tablet is-8-desktop content" th:include="${maincontent}">
-            <h1 class="title" th:include="${title}">Title</h1>
-            <div class="content" th:fragment="maincontent">
-              <p>
-                <strong>Lorem ipsum</strong> dolor
-                <a href="../potemkin/typo.html" th:href="@{/potemkin/typo.html}">sit amet</a>,
-                consectetur adipisicing elit, sed do eiusmod tempor incididunt ut
-                labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
-                <a href="../potemkin/html-experimente.html" th:href="@{/potemkin/html-experimente.html}">exercitation</a>
-                ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
-                irure dolor in reprehenderit in voluptate velit esse cillum dolore
-                eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
-                proident, sunt in culpa qui officia deserunt mollit anim id est
-                laborum.
-              </p>
-              <h2 class="title">Duis aute irure dolor</h2>
-              <ul>
-                <li>Operators and other mathematical stuff: -+/*</li>
-                <li>
-                  Characters offten used in programming languages:
-                  {(&lt;&gt;)}@$?%*#;:&amp;/\!^&#034;&#039;`~
-                </li>
-                <li>Special german characters: ÄäÖöÜü</li>
-                <li>Other special characters: @?¢§%°</li>
-              </ul>
-              <h2 class="title">Excepteur sint occaecat cupidatat</h2>
-              <p>
-                Lorem ipsum dolor <em>sit amet</em>, consectetur adipisicing elit,
-                sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
-                Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
-                nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
-                reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
-                pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
-                culpa qui officia deserunt mollit anim id est laborum.
-              </p>
-              <p>
-                Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
-                eiusmod tempor incididunt ut labore et dolore magna aliqua.
-                <strong>Ut enim ad minim veniam, quis nostrud <em>exercitation
-                ullamco</em> laboris nisi ut aliquip ex ea commodo consequat</strong>.
-                Duis aute irure dolor in reprehenderit in voluptate velit esse
-                cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
-                cupidatat non proident, sunt in culpa qui officia deserunt mollit
-                anim id est laborum.
-              </p>
-              <ul>
-                <li>
-                  <code><a href="https://github.com/jgthms/bulma">bulma</a></code>
-                </li>
-                <li>
-                  <code><a href="https://github.com/sass/node-sass">node-sass</a></code> to compile your own Sass file
-                </li>
-                <li>
-                  <code><a href="https://github.com/postcss/postcss-cli">postcss-cli</a></code> and <code><a href="https://github.com/postcss/autoprefixer">autoprefixer</a></code> to add support for older browsers
-                </li>
-                <li>
-                  <code><a href="https://babeljs.io/docs/usage/cli/">babel-cli</a></code>,
-                  <code><a href="https://github.com/babel/babel-preset-env">babel-preset-env</a></code>
-                  and
-                  <code><a href="https://github.com/jmcriffey/babel-preset-es2015-ie">babel-preset-es2015-ie</a></code>
-                  for compiling ES6 JavaScript files
-                </li>
-              </ul>
-              <p>
-                Apart from <code>package.json</code>, the following files are included:
-              </p>
-              <ul>
-                <li>
-                  <code>.babelrc</code> configuration file for <a href="https://babeljs.io/">Babel</a>
-                </li>
-                <li>
-                  <code>.gitignore</code> common <a href="https://git-scm.com/">Git</a> ignored files
-                </li>
-                <li>
-                  <code>index.html</code> this HTML5 file
-                </li>
-                <li>
-                  <code>_sass/main.scss</code> a basic SCSS file that <strong>imports Bulma</strong> and explains how to <strong>customize</strong> your styles, and compiles to <code>css/main.css</code>
-                </li>
-                <li>
-                  <code>_javascript/main.js</code> an ES6 JavaScript that compiles to <code>lib/main.js</code>
-                </li>
-              </ul>
-              <h3>Try it out!</h3>
-              <p>
-                To see if your setup works, follow these steps:
-              </p>
-              <ol>
-                <li>
-                  <p>
-                    <strong>Move</strong> to this directory:
-                    <br />
-                    <pre><code>cd bulma-start</code></pre>
-                  </p>
-                </li>
-                <li>
-                  <p>
-                    <strong>Install</strong> all dependencies:
-                    <br />
-                    <pre><code>npm install</code></pre>
-                  </p>
-                </li>
-                <li>
-                  <p>
-                    <strong>Start</strong> the CSS and JS watchers:
-                    <br />
-                    <pre><code>npm start</code></pre>
-                  </p>
-                </li>
-                <li>
-                  <p>
-                    <strong>Edit</strong> <code>_sass/main.scss</code> by adding the following rule at the <strong>end</strong> of the file:
-                    <br />
-                    <pre><span style="color: #22863a;">html</span> {
-    <span style="color: #005cc5;"><span style="color: #005cc5;">background-color</span></span>: <span style="color: #24292e">$green</span>;
-  }</pre>
-                  </p>
-                </li>
-              </ol>
-              <p>
-                The page background should turn <strong class="has-text-success">green</strong>!
-              </p>
-              <h3>Get started</h3>
-              <p>
-                You're <strong>ready</strong> to create your own designs with Bulma. Just edit or duplicate this page, or simply create a new one!
-                <br>
-                For example, this page is <strong>only</strong> built with the following <strong>Bulma elements</strong>:
-              </p>
-            </div>
-            <!--/*-->
-            <table class="table is-bordered is-fullwidth">
-              <thead>
-                <tr>
-                  <th>Type</th>
-                  <th>CSS class</th>
-                </tr>
-              </thead>
-              <tbody>
-                <tr>
-                  <th>Columns</th>
-                  <td>
-                    <code><a href="http://bulma.io/documentation/columns/basics">columns</a></code>
-                    <code><a href="http://bulma.io/documentation/columns/basics">column</a></code>
-                  </td>
-                </tr>
-                <tr>
-                  <th>Layout</th>
-                  <td>
-                    <code><a href="http://bulma.io/documentation/layout/section">section</a></code>
-                    <code><a href="http://bulma.io/documentation/layout/container">container</a></code>
-                    <code><a href="http://bulma.io/documentation/layout/footer">footer</a></code>
-                  </td>
-                </tr>
-                <tr>
-                  <th>Elements</th>
-                  <td>
-                    <code><a href="http://bulma.io/documentation/elements/button">button</a></code>
-                    <code><a href="http://bulma.io/documentation/elements/content">content</a></code>
-                    <code><a href="http://bulma.io/documentation/elements/title">title</a></code>
-                    <code><a href="http://bulma.io/documentation/elements/title">subtitle</a></code>
-                  </td>
-                </tr>
-                <tr>
-                  <th>Form</th>
-                  <td>
-                    <code><a href="http://bulma.io/documentation/form/general">field</a></code>
-                    <code><a href="http://bulma.io/documentation/form/general">control</a></code>
-                  </td>
-                </tr>
-                <tr>
-                  <th>Helpers</th>
-                  <td>
-                    <code><a href="http://bulma.io/documentation/modifiers/typography-helpers/">has-text-centered</a></code>
-                    <code><a href="http://bulma.io/documentation/modifiers/typography-helpers/">has-text-weight-semibold</a></code>
-                  </td>
-                </tr>
-              </tbody>
-            </table>
-            <div class="content">
-              <p>
-                If you want to <strong>learn more</strong>, follow these links:
-              </p>
-            </div>
-            <div class="field is-grouped">
-              <p class="control">
-                <a class="button is-medium is-primary" href="http://bulma.io">
-                  <strong class="has-text-weight-semibold">Bulma homepage</strong>
-                </a>
-              </p>
-              <p class="control">
-                <a class="button is-medium is-link" href="http://bulma.io/documentation/overview/start/">
-                  <strong class="has-text-weight-semibold">Documentation</strong>
-                </a>
-              </p>
-            </div>
-            <!--*/-->
-          </div>
-          <aside class="column is-hidden-touch is-2-desktop content" th:insert="${marginalcontent}?:~{}">
-          <!--/* the following  is only visible during natural templating -->
-            <h1>Other nasty but marginal stuff</h1>
-            <p>
-              Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
-              eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
-              ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
-              aliquip ex ea commodo consequat. Duis aute irure dolor in
-              reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
-              pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
-              culpa qui officia deserunt mollit anim id est laborum.
-            </p>
-          </aside>
-          <aside class="m">
-            <h1>More nasty stuff</h1>
-            <p>
-              This one is really short!
-            </p>
+          </li>
+          <!--/*-->
+          <li class="s sub off"><a href="../about.html" class="s">About</a></li>
           <!--*/-->
-          </aside>
-        </div>
+        </ul>
+      </nav>
+    </div>
+    <footer>
+      <div id="copyright" class="section">
+        <span>© <strong>mo</strong> 2021</span>
       </div>
-    </section>
-    <footer class="footer">
-      <div class="container">
-        <div class="columns">
-          <div class="column is-8-desktop is-offset-2-desktop">
-            <div class="level">
-              <div class="level-left">
-                <span class="level-item">© <strong>mo</strong> 2021</span>
-              </div>
-              <div class="level-right" id="footerlinks" th:include="~{::#links}?:_">
-                <a class="level-item" href="../impressum.html" th:href="@{/impressum.html}">Impressum</a>
-                <a class="level-item" href="../datenschutz.html" th:href="@{/datenschutz.html}">Datenschutz</a>
-              </div>
-            </div>
-          </div>
-        </div>
+      <div id="footerlinks" class="section has-text-right" th:include="~{::#links}?:_">
+        <a href="../impressum.html" th:href="@{/impressum.html}">Impressum</a>
+        <span class="spacer">|</span>
+        <a href="../datenschutz.html" th:href="@{/datenschutz.html}">Datenschutz</a>
       </div>
     </footer>
-    </div>
   </body>
 </html>