Generierung der Menüstruktur aus den JSON-Daten überarbeitet
authorKai Moritz <kai@juplo.de>
Mon, 6 May 2019 10:25:48 +0000 (12:25 +0200)
committerKai Moritz <kai@juplo.de>
Sun, 22 Nov 2020 16:07:18 +0000 (17:07 +0100)
Die Struktur der JSON-Daten so überarbeitet, dass sie keine redundanten
Informationen mehr enthalten und leichter zu generieren sind.

dist/blog/blog.json
dist/potemkin.json
dist/potemkin/accelerator.html
dist/sitemap.json
dist/templates/layout.html

index af1010c..ee206b0 100644 (file)
@@ -1,28 +1,25 @@
 {
-  "pages": {
-    "/blog/": {
-      "name": "Blog",
-      "childs": {
-        "/blog/article.html": "An Article",
-        "/blog/comments.html": "Comments"
-      },
-      "crumbs": [
-        { "uri": "/blog/", "name": "Blog" }
-      ]
-    },
-    "/blog/article.html": {
-      "name": "An Article",
-      "crumbs": [
-        { "uri": "/blog/", "name": "Blog" },
-        { "uri": "/blog/article.html", "name": "An Article" }
-      ]
-    },
-    "/blog/comments.html": {
-      "name": "Comments",
-      "crumbs": [
-        { "uri": "/blog/", "name": "Blog" },
-        { "uri": "/blog/comments.html", "name": "Comments" }
-      ]
-    }
+  "_names": {
+    "/blog/article.html": "An Article",
+    "/blog/comments.html":"Comments"
+  },
+  "_childs": {
+    "/blog/": [
+      "/blog/article.html",
+      "/blog/comments.html"
+    ]
+  },
+  "_crumbs": {
+    "/blog/": [
+      "/blog/"
+    ],
+    "/blog/article.html": [
+      "/blog/",
+      "/blog/article.html"
+    ],
+    "/blog/comments.html": [
+      "/blog/",
+      "/blog/comments.html"
+    ]
   }
 }
index 48795d7..a2b38d6 100644 (file)
 {
-  "pages": {
-    "/projects.html": {
-      "name": "Projects",
-      "childs": {
-        "/potemkin/fix-swf/overview.html": "Fix SWF",
-        "/potemkin/html-experimente.html": "HTML-Experimente",
-        "/potemkin/accelerator.html": "accelerator",
-        "/potemkin/typo.html": "Typography"
-      },
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" }
-      ]
-    },
-    "/potemkin/fix-swf/overview.html": {
-      "name": "Overview",
-      "childs": {
-        "/potemkin/fix-swf/overview.html": "Overview",
-        "/potemkin/fix-swf/getting-started.html": "Getting Started",
-        "#faq": "FAQ",
-        "#documentation": "Documentation"
-      },
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/fix-swf/overview.html", "name": "Fix SWF" },
-        { "uri": "/potemkin/fix-swf/overview.html", "name": "Overview" }
-      ]
-    },
-    "#faq": { "name": "FAQ" },
-    "#documentation": { "name": "Documentation" },
-    "/potemkin/accelerator.html": {
-      "name": "Accellerator",
-      "childs": {}
-    },
-    "/potemkin/typo.html": {
-      "name": "Typography",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/typo.html", "name": "Typography" }
-      ]
-    },
-    "/potemkin/html-experimente.html": {
-      "name": "HTML-Experimente",
-      "childs": {
-        "/potemkin/html-experimente/formulare.html": "Formulare",
-        "/potemkin/html-experimente/symbole.html": "Symbol-Font",
-        "/templates/404.html": "404-Template",
-        "/potemkin/html-experimente/gibts-ja-gar-nicht.html": "404-Fehlerseite",
-        "/templates/error.html": "5xx-Template",
-        "/potemkin/html-experimente/error.html": "5xx-Fehlerseite",
-        "/potemkin/html-experimente/fast-leer-mit-menü.html": "Leer, mit Menü, ohne Marginal",
-        "/potemkin/html-experimente/fast-leer-mit-menü-und-marginalinhalt.html": "Leer, mit Menü, mit Marginal",
-        "/potemkin/html-experimente/fast-leer-kein-menü.html": "Leer, ohne Menü, ohne Marginal",
-        "/potemkin/html-experimente/fast-leer-kein-menü-aber-marginalinhalt.html": "Leer, ohne Menü, mit Marginal",
-        "/potemkin/html-experimente/fast-leer-einspaltig.html": "Leer, einspaltig",
-        "/potemkin/html-experimente/fast-leer-einspaltig-mit-marginalinhalt.html": "Leer, einspaltig, mit Marginal",
-        "/potemkin/html-experimente/breadcrumb.html": "Langer Breadcrumb",
-        "/potemkin/html-experimente/kein-layout.html": "Alle Stylings deaktiviert",
-        "/potemkin/html-experimente/basis-layout.html": "Nur das Basis-Layout",
-        "/potemkin/html-experimente/druck-layout.html": "Druck-Layout",
-        "/potemkin/html-experimente/tiny.html": "Layout TINY",
-        "/potemkin/html-experimente/phone.html": "Layout PHONE",
-        "/potemkin/html-experimente/tablet.html": "Layout TABLET",
-        "/potemkin/html-experimente/seitenaufteilung.html": "Basis-Layout & Seitenaufteilung",
-        "/potemkin/html-experimente/seitenkopf.html": "Basis-Layout & Seitenkopf",
-        "/potemkin/html-experimente/testlab.html": "Media-Query-Test (Beispiel)"
-      },
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/html-experimente.html", "name": "HTML-Experimente" }
-      ]
-    },
-    "/potemkin/fix-swf/getting-started.html": {
-      "name": "Getting Started",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/fix-swf/overview.html", "name": "Fix SWF" },
-        { "uri": "/potemkin/fix-swf/getting-started.html", "name": "Getting Started" }
-      ]
-    },
-    "/potemkin/html-experimente/formulare.html": {
-      "name": "Formulare",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/html-experimente.html", "name": "HTML-Experimente" },
-        { "uri": "/potemkin/html-experimente/formulare.html", "name": "Formulare" }
-      ]
-    },
-    "/potemkin/html-experimente/symbole.html": {
-      "name": "Symbol-Font",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/html-experimente.html", "name": "HTML-Experimente" },
-        { "uri": "/potemkin/html-experimente/symbole.html", "name": "Symbol-Font" }
-      ]
-    },
-    "/templates/404.html": {
-      "name": "404-Template",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/html-experimente.html", "name": "HTML-Experimente" },
-        { "uri": "/templates/404.html", "name": "404-Template" }
-      ]
-    },
-    "/potemkin/html-experimente/gibts-ja-gar-nicht.html": {
-      "name": "404-Fehlerseite",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/html-experimente.html", "name": "HTML-Experimente" },
-        { "uri": "/potemkin/html-experimente/gibts-ja-gar-nicht.html", "name": "404-Fehlerseite" }
-      ]
-    },
-    "/templates/error.html": {
-      "name": "5xx-Template",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/html-experimente.html", "name": "HTML-Experimente" },
-        { "uri": "/templates/error.html", "name": "5xx-Template" }
-      ]
-    },
-    "/potemkin/html-experimente/error.html": {
-      "name": "5xx-Fehlerseite",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/html-experimente.html", "name": "HTML-Experimente" },
-        { "uri": "/potemkin/html-experimente/error.html", "name": "5xx-Fehlerseite" }
-      ]
-    },
-    "/potemkin/html-experimente/fast-leer-mit-menü.html": {
-      "name": "Leer, mit Menü, ohne Marginal",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/html-experimente.html", "name": "HTML-Experimente" },
-        { "uri": "/potemkin/html-experimente/fast-leer-mit-menü.html", "name": "Leer, mit Menü, ohne Marginal" }
-      ]
-    },
-    "/potemkin/html-experimente/fast-leer-mit-menü-und-marginalinhalt.html": {
-      "name": "Leer, mit Menü, mit Marginal",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/html-experimente.html", "name": "HTML-Experimente" },
-        { "uri": "/potemkin/html-experimente/fast-leer-mit-menü-und-marginalinhalt.html", "name": "Leer, mit Menü, mit Marginal" }
-      ]
-    },
-    "/potemkin/html-experimente/fast-leer-kein-menü.html": {
-      "name": "Leer, ohne Menü, ohne Marginal",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/html-experimente.html", "name": "HTML-Experimente" },
-        { "uri": "/potemkin/html-experimente/fast-leer-kein-menü.html", "name": "Leer, ohne Menü, ohne Marginal" }
-      ]
-    },
-    "/potemkin/html-experimente/fast-leer-kein-menü-aber-marginalinhalt.html": {
-      "name": "Leer, ohne Menü, mit Marginal",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/html-experimente.html", "name": "HTML-Experimente" },
-        { "uri": "/potemkin/html-experimente/fast-leer-kein-menü-aber-marginalinhalt.html", "name": "Leer, ohne Menü, mit Marginal" }
-      ]
-    },
-    "/potemkin/html-experimente/fast-leer-einspaltig.html": {
-      "name": "Leer, einspaltig",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/html-experimente.html", "name": "HTML-Experimente" },
-        { "uri": "/potemkin/html-experimente/fast-leer-einspaltig.html", "name": "Leer, einspaltig" }
-      ]
-    },
-    "/potemkin/html-experimente/fast-leer-einspaltig-mit-marginalinhalt.html": {
-      "name": "Leer, einspaltig, mit Marginal",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/html-experimente.html", "name": "HTML-Experimente" },
-        { "uri": "/potemkin/html-experimente/fast-leer-einspaltig-mit-marginalinhalt.html", "name": "Leer, einspaltig, mit Marginal" }
-      ]
-    },
-    "/potemkin/html-experimente/breadcrumb.html": {
-      "name": "Langer Breadcrumb",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/html-experimente.html", "name": "HTML-Experimente" },
-        { "uri": "/potemkin/html-experimente/breadcrumb.html", "name": "Langer Breadcrumb" }
-      ]
-    },
-    "/potemkin/html-experimente/kein-layout.html": {
-      "name": "Alle Stylings deaktiviert",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/html-experimente.html", "name": "HTML-Experimente" },
-        { "uri": "/potemkin/html-experimente/kein-layout.html", "name": "Alle Stylings deaktiviert" }
-      ]
-    },
-    "/potemkin/html-experimente/basis-layout.html": {
-      "name": "Nur das Basis-Layout",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/html-experimente.html", "name": "HTML-Experimente" },
-        { "uri": "/potemkin/html-experimente/basis-layout.html", "name": "Nur das Basis-Layout" }
-      ]
-    },
-    "/potemkin/html-experimente/druck-layout.html": {
-      "name": "Druck-Layout",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/html-experimente.html", "name": "HTML-Experimente" },
-        { "uri": "/potemkin/html-experimente/druck-layout.html", "name": "Druck-Layout" }
-      ]
-    },
-    "/potemkin/html-experimente/tiny.html": {
-      "name": "Layout TINY",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/html-experimente.html", "name": "HTML-Experimente" },
-        { "uri": "/potemkin/html-experimente/tiny.html", "name": "Layout TINY" }
-      ]
-    },
-    "/potemkin/html-experimente/phone.html": {
-      "name": "Layout PHONE",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/html-experimente.html", "name": "HTML-Experimente" },
-        { "uri": "/potemkin/html-experimente/phone.html", "name": "Layout PHONE" }
-      ]
-    },
-    "/potemkin/html-experimente/tablet.html": {
-      "name": "Layout TABLET",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/html-experimente.html", "name": "HTML-Experimente" },
-        { "uri": "/potemkin/html-experimente/tablet.html", "name": "Layout TABLET" }
-      ]
-    },
-    "/potemkin/html-experimente/seitenaufteilung.html": {
-      "name": "Basis-Layout & Seitenaufteilung",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/html-experimente.html", "name": "HTML-Experimente" },
-        { "uri": "/potemkin/html-experimente/seitenaufteilung.html", "name": "Basis-Layout & Seitenaufteilung" }
-      ]
-    },
-    "/potemkin/html-experimente/seitenkopf.html": {
-      "name": "Basis-Layout & Seitenkopf",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/html-experimente.html", "name": "HTML-Experimente" },
-        { "uri": "/potemkin/html-experimente/seitenkopf.html", "name": "Basis-Layout & Seitenkopf" }
-      ]
-    },
-    "/potemkin/html-experimente/testlab.html": {
-      "name": "Media-Query-Test (Beispiel)",
-      "crumbs": [
-        { "uri": "/projects.html", "name": "Projects" },
-        { "uri": "/potemkin/html-experimente.html", "name": "HTML-Experimente" },
-        { "uri": "/potemkin/html-experimente/testlab.html", "name": "Media-Query-Test (Beispiel)" }
-      ]
-    }
+  "_names": {
+    "/projects.html": "Projects",
+    "/potemkin/fix-swf/overview.html": "Overview",
+    "#faq": "FAQ",
+    "#documentation": "Documentation",
+    "/potemkin/accelerator.html": "Accellerator",
+    "/potemkin/typo.html": "Typography",
+    "/potemkin/html-experimente.html": "HTML-Experimente",
+    "/potemkin/fix-swf/getting-started.html": "Getting Started",
+    "/potemkin/html-experimente/formulare.html": "Formulare",
+    "/potemkin/html-experimente/symbole.html": "Symbol-Font",
+    "/templates/404.html": "404-Template",
+    "/potemkin/html-experimente/gibts-ja-gar-nicht.html": "404-Fehlerseite",
+    "/templates/error.html": "5xx-Template",
+    "/potemkin/html-experimente/error.html": "5xx-Fehlerseite",
+    "/potemkin/html-experimente/fast-leer-mit-menü.html": "Leer, mit Menü, ohne Marginal",
+    "/potemkin/html-experimente/fast-leer-mit-menü-und-marginalinhalt.html": "Leer, mit Menü, mit Marginal",
+    "/potemkin/html-experimente/fast-leer-kein-menü.html": "Leer, ohne Menü, ohne Marginal",
+    "/potemkin/html-experimente/fast-leer-kein-menü-aber-marginalinhalt.html": "Leer, ohne Menü, mit Marginal",
+    "/potemkin/html-experimente/fast-leer-einspaltig.html": "Leer, einspaltig",
+    "/potemkin/html-experimente/fast-leer-einspaltig-mit-marginalinhalt.html": "Leer, einspaltig, mit Marginal",
+    "/potemkin/html-experimente/breadcrumb.html": "Langer Breadcrumb",
+    "/potemkin/html-experimente/kein-layout.html": "Alle Stylings deaktiviert",
+    "/potemkin/html-experimente/basis-layout.html": "Nur das Basis-Layout",
+    "/potemkin/html-experimente/druck-layout.html": "Druck-Layout",
+    "/potemkin/html-experimente/tiny.html": "Layout TINY",
+    "/potemkin/html-experimente/phone.html": "Layout PHONE",
+    "/potemkin/html-experimente/tablet.html": "Layout TABLET",
+    "/potemkin/html-experimente/seitenaufteilung.html": "Basis-Layout & Seitenaufteilung",
+    "/potemkin/html-experimente/seitenkopf.html": "Basis-Layout & Seitenkopf",
+    "/potemkin/html-experimente/testlab.html": "Media-Query-Test (Beispiel)"
+  },
+  "_childs": {
+    "/projects.html": [
+      "/potemkin/fix-swf/overview.html",
+      "/potemkin/html-experimente.html",
+      "/potemkin/accelerator.html",
+      "/potemkin/typo.html"
+    ],
+    "/potemkin/fix-swf/overview.html": [
+      "/potemkin/fix-swf/overview.html",
+      "/potemkin/fix-swf/getting-started.html",
+      "#faq",
+      "#documentation"
+    ],
+    "/potemkin/accelerator.html": [],
+    "/potemkin/html-experimente.html": [
+      "/potemkin/html-experimente/formulare.html",
+      "/potemkin/html-experimente/symbole.html",
+      "/templates/404.html",
+      "/potemkin/html-experimente/gibts-ja-gar-nicht.html",
+      "/templates/error.html",
+      "/potemkin/html-experimente/error.html",
+      "/potemkin/html-experimente/fast-leer-mit-menü.html",
+      "/potemkin/html-experimente/fast-leer-mit-menü-und-marginalinhalt.html",
+      "/potemkin/html-experimente/fast-leer-kein-menü.html",
+      "/potemkin/html-experimente/fast-leer-kein-menü-aber-marginalinhalt.html",
+      "/potemkin/html-experimente/fast-leer-einspaltig.html",
+      "/potemkin/html-experimente/fast-leer-einspaltig-mit-marginalinhalt.html",
+      "/potemkin/html-experimente/breadcrumb.html",
+      "/potemkin/html-experimente/kein-layout.html",
+      "/potemkin/html-experimente/basis-layout.html",
+      "/potemkin/html-experimente/druck-layout.html",
+      "/potemkin/html-experimente/tiny.html",
+      "/potemkin/html-experimente/phone.html",
+      "/potemkin/html-experimente/tablet.html",
+      "/potemkin/html-experimente/seitenaufteilung.html",
+      "/potemkin/html-experimente/seitenkopf.html",
+      "/potemkin/html-experimente/testlab.html"
+    ]
+  },
+  "_crumbs": {
+    "/projects.html": [
+      "/projects.html"
+    ],
+    "/potemkin/fix-swf/overview.html": [
+      "/projects.html",
+      "/potemkin/fix-swf/overview.html",
+      "/potemkin/fix-swf/overview.html"
+    ],
+    "/potemkin/typo.html": [
+      "/projects.html",
+      "/potemkin/typo.html"
+    ],
+    "/potemkin/html-experimente.html": [
+      "/projects.html",
+      "/potemkin/html-experimente.html"
+    ],
+    "/potemkin/fix-swf/getting-started.html": [
+      "/projects.html",
+      "/potemkin/fix-swf/overview.html",
+      "/potemkin/fix-swf/getting-started.html"
+    ],
+    "/potemkin/html-experimente/formulare.html": [
+      "/projects.html",
+      "/potemkin/html-experimente.html",
+      "/potemkin/html-experimente/formulare.html"
+    ],
+    "/potemkin/html-experimente/symbole.html": [
+      "/projects.html",
+      "/potemkin/html-experimente.html",
+      "/potemkin/html-experimente/symbole.html"
+    ],
+    "/templates/404.html": [
+      "/projects.html",
+      "/potemkin/html-experimente.html",
+      "/templates/404.html"
+    ],
+    "/potemkin/html-experimente/gibts-ja-gar-nicht.html": [
+      "/projects.html",
+      "/potemkin/html-experimente.html",
+      "/potemkin/html-experimente/gibts-ja-gar-nicht.html"
+    ],
+    "/templates/error.html": [
+      "/projects.html",
+      "/potemkin/html-experimente.html",
+      "/templates/error.html"
+    ],
+    "/potemkin/html-experimente/error.html": [
+      "/projects.html",
+      "/potemkin/html-experimente.html",
+      "/potemkin/html-experimente/error.html"
+    ],
+    "/potemkin/html-experimente/fast-leer-mit-menü.html": [
+      "/projects.html",
+      "/potemkin/html-experimente.html",
+      "/potemkin/html-experimente/fast-leer-mit-menü.html"
+    ],
+    "/potemkin/html-experimente/fast-leer-mit-menü-und-marginalinhalt.html": [
+      "/projects.html",
+      "/potemkin/html-experimente.html",
+      "/potemkin/html-experimente/fast-leer-mit-menü-und-marginalinhalt.html"
+    ],
+    "/potemkin/html-experimente/fast-leer-kein-menü.html": [
+      "/projects.html",
+      "/potemkin/html-experimente.html",
+      "/potemkin/html-experimente/fast-leer-kein-menü.html"
+    ],
+    "/potemkin/html-experimente/fast-leer-kein-menü-aber-marginalinhalt.html": [
+      "/projects.html",
+      "/potemkin/html-experimente.html",
+      "/potemkin/html-experimente/fast-leer-kein-menü-aber-marginalinhalt.html"
+    ],
+    "/potemkin/html-experimente/fast-leer-einspaltig.html": [
+      "/projects.html",
+      "/potemkin/html-experimente.html",
+      "/potemkin/html-experimente/fast-leer-einspaltig.html"
+    ],
+    "/potemkin/html-experimente/fast-leer-einspaltig-mit-marginalinhalt.html": [
+      "/projects.html",
+      "/potemkin/html-experimente.html",
+      "/potemkin/html-experimente/fast-leer-einspaltig-mit-marginalinhalt.html"
+    ],
+    "/potemkin/html-experimente/breadcrumb.html": [
+      "/projects.html",
+      "/potemkin/html-experimente.html",
+      "/potemkin/html-experimente/breadcrumb.html"
+    ],
+    "/potemkin/html-experimente/kein-layout.html": [
+      "/projects.html",
+      "/potemkin/html-experimente.html",
+      "/potemkin/html-experimente/kein-layout.html"
+    ],
+    "/potemkin/html-experimente/basis-layout.html": [
+      "/projects.html",
+      "/potemkin/html-experimente.html",
+      "/potemkin/html-experimente/basis-layout.html"
+    ],
+    "/potemkin/html-experimente/druck-layout.html": [
+      "/projects.html",
+      "/potemkin/html-experimente.html",
+      "/potemkin/html-experimente/druck-layout.html"
+    ],
+    "/potemkin/html-experimente/tiny.html": [
+      "/projects.html",
+      "/potemkin/html-experimente.html",
+      "/potemkin/html-experimente/tiny.html"
+    ],
+    "/potemkin/html-experimente/phone.html": [
+      "/projects.html",
+      "/potemkin/html-experimente.html",
+      "/potemkin/html-experimente/phone.html"
+    ],
+    "/potemkin/html-experimente/tablet.html": [
+      "/projects.html",
+      "/potemkin/html-experimente.html",
+      "/potemkin/html-experimente/tablet.html"
+    ],
+    "/potemkin/html-experimente/seitenaufteilung.html": [
+      "/projects.html",
+      "/potemkin/html-experimente.html",
+      "/potemkin/html-experimente/seitenaufteilung.html"
+    ],
+    "/potemkin/html-experimente/seitenkopf.html": [
+      "/projects.html",
+      "/potemkin/html-experimente.html",
+      "/potemkin/html-experimente/seitenkopf.html"
+    ],
+    "/potemkin/html-experimente/testlab.html": [
+      "/projects.html",
+      "/potemkin/html-experimente.html",
+      "/potemkin/html-experimente/testlab.html"
+    ]
   }
 }
index f3159d5..d43d592 100644 (file)
@@ -1,38 +1,42 @@
 <!DOCTYPE html>
 <html
     xmlns="http://www.w3.org/1999/xhtml"
-    th:replace="~{/templates/layout.html :: layout(uri='/potemkin/accelerator.html', json='MERGE:potemkin.json,MERGE:{&quot;pages&quot;:{
-    &quot;/projects.html&quot;: {
-      &quot;name&quot;: &quot;Projects&quot;,
-      &quot;childs&quot;: {
-        &quot;/projects.html&quot;: &quot;Overview&quot;,
-        &quot;/potemkin/typo.html&quot;: &quot;Typography&quot;,
-        &quot;/potemkin/html-experimente.html&quot;: &quot;HTML-Experimente&quot;,
-        &quot;/potemkin/accelerator.html&quot;: &quot;accelerator!&quot;,
-        &quot;/potemkin/fix-swf/overview.html&quot;: &quot;Fix SWF&quot;
-      },
-      &quot;crumbs&quot;: [
-        { &quot;uri&quot;: &quot;/projects.html&quot;, &quot;name&quot;: &quot;Projects&quot; }
-      ]
-    },
-    &quot;/potemkin/accelerator.html&quot;: {
-      &quot;name&quot;: &quot;Overview&quot;,
-      &quot;childs&quot;: {
-        &quot;/potemkin/accelerator.html&quot;: &quot;Overview&quot;,
-        &quot;/potemkin/accelerator.html#read-on&quot;: &quot;Read on&quot;,
-        &quot;/potemkin/accelerator.html#read-on-and-on&quot;: &quot;Read on and on&quot;,
-        &quot;/potemkin/accelerator.html#read-on-and-on-and-on&quot;: &quot;Read on and on and on&quot;
-      },
-      &quot;crumbs&quot;: [
-        { &quot;uri&quot;: &quot;/projects.html&quot;, &quot;name&quot;: &quot;Projects&quot; },
-        { &quot;uri&quot;: &quot;/potemkin/accelerator.html&quot;, &quot;name&quot;: &quot;accelerator&quot; },
-        { &quot;uri&quot;: &quot;/potemkin/accelerator.html&quot;, &quot;name&quot;: &quot;Overview&quot; }
-      ]
-    },
-    &quot;/potemkin/accelerator.html#read-on&quot;: { &quot;name&quot;: &quot;Read on&quot; },
-    &quot;/potemkin/accelerator.html#read-on-and-on&quot;: { &quot;name&quot;: &quot;Read on and on&quot; },
-    &quot;/potemkin/accelerator.html#read-on-and-on-and-on&quot;: { &quot;name&quot;: &quot;Read on and on and on&quot; }
-    }}')}"
+    th:replace="~{/templates/layout.html :: layout(uri='/potemkin/accelerator.html', json='MERGE:potemkin.json,MERGE:
+      {
+        &quot;_names&quot;: {
+          &quot;/potemkin/accelerator.html&quot;: &quot;Overview&quot;,
+          &quot;/potemkin/accelerator.html#read-on&quot;: &quot;Read on&quot;,
+          &quot;/potemkin/accelerator.html#read-on-and-on&quot;: &quot;Read on and on&quot;,
+          &quot;/potemkin/accelerator.html#read-on-and-on-and-on&quot;: &quot;Read on and on and on&quot;,
+          &quot;/projects.html&quot;: &quot;Projects&quot;
+        },
+        &quot;_childs&quot;: {
+          &quot;/potemkin/accelerator.html&quot;: [
+            &quot;/potemkin/accelerator.html&quot;,
+            &quot;/potemkin/accelerator.html#read-on&quot;,
+            &quot;/potemkin/accelerator.html#read-on-and-on&quot;,
+            &quot;/potemkin/accelerator.html#read-on-and-on-and-on&quot;
+          ],
+          &quot;/projects.html&quot;: [
+            &quot;/potemkin/accelerator.html&quot;,
+            &quot;/potemkin/fix-swf/overview.html&quot;,
+            &quot;/potemkin/html-experimente.html&quot;,
+            &quot;/potemkin/typo.html&quot;,
+            &quot;/projects.html&quot;
+          ]
+        },
+        &quot;_crumbs&quot;: {
+          &quot;/potemkin/accelerator.html&quot;: [
+            &quot;/projects.html&quot;,
+            &quot;/potemkin/accelerator.html&quot;,
+            &quot;/potemkin/accelerator.html&quot;
+          ],
+          &quot;/projects.html&quot;: [
+            &quot;/projects.html&quot;
+          ]
+        }
+      }
+    ')}"
     >
   <head>
     <title id="title">accelerator - Overview</title>
index 8de8c5c..429fe7e 100644 (file)
 {
-  "sections": {
+  "_sections": {
     "blog": "/blog/",
     "projects": "/projects.html",
     "about": "/about.html"
   },
-  "pages": {
-    "/index.html": { "name": "Home" },
-    "/blog/": {
-      "name": "Blog",
-      "childs": {}
-    },
-    "/projects.html": {
-      "name": "Projects",
-      "childs": {}
-    },
-    "/about.html": {
-      "name": "About",
-      "childs": {
-        "/expertise.html": "Expertise",
-        "/references.html": "References",
-        "/impressum.html": "Impressum",
-        "/contact.html": "Contact"
-      },
-      "crumbs": [{ "uri": "/about.html", "name": "About" }]
-    },
-    "/expertise.html": {
-      "name": "Expertise",
-      "childs": {},
-      "crumbs": [
-        { "uri": "/about.html", "name": "About" },
-        { "uri": "/expertise.html", "name": "Expertise" }
-      ]
-    },
-    "/references.html": {
-      "name": "References",
-      "childs": {},
-      "crumbs": [
-        { "uri": "/about.html", "name": "About" },
-        { "uri": "/references.html", "name": "References" }
-      ]
-    },
-    "/impressum.html": {
-      "name": "Impressum",
-      "childs": {
-        "/agb.html": "AGB",
-        "/haftung-inhalte.html": "Haftung für Inhalte",
-        "/haftung-links.html": "Haftung für Links",
-        "/urheberrechte.html": "Urheberrechte",
-        "/datenschutz.html": "Datenschutz"
-      },
-      "crumbs": [
-        { "uri": "/about.html", "name": "About" },
-        { "uri": "/impressum.html", "name": "Impressum" }
-      ]
-    },
-    "/contact.html": {
-      "name": "Contact",
-      "crumbs": [
-        { "uri": "/about.html", "name": "About" },
-        { "uri": "/contact.html", "name": "Contact" }
-      ]
-    },
-    "/agb.html": {
-      "name": "AGB",
-      "crumbs": [
-        { "uri": "/about.html", "name": "About" },
-        { "uri": "/impressum.html", "name": "Impressum" },
-        { "uri": "/agb.html", "name": "AGB" }
-      ]
-    },
-    "/haftung-inhalte.html": {
-      "name": "Haftung für Inhalte",
-      "crumbs": [
-        { "uri": "/about.html", "name": "About" },
-        { "uri": "/impressum.html", "name": "Impressum" },
-        { "uri": "/haftung-inhalte.html", "name": "Haftung für Inhalte" }
-      ]
-    },
-    "/haftung-links.html": {
-      "name": "Haftung für Links",
-      "crumbs": [
-        { "uri": "/about.html", "name": "About" },
-        { "uri": "/impressum.html", "name": "Impressum" },
-        { "uri": "/haftung-links.html", "name": "Haftung für Links" }
-      ]
-    },
-    "/urheberrechte.html": {
-      "name": "Urheberrechte",
-      "crumbs": [
-        { "uri": "/about.html", "name": "About" },
-        { "uri": "/impressum.html", "name": "Impressum" },
-        { "uri": "/urheberrechte.html", "name": "Urheberrechte" }
-      ]
-    },
-    "/datenschutz.html": {
-      "name": "Datenschutz",
-      "crumbs": [
-        { "uri": "/about.html", "name": "About" },
-        { "uri": "/impressum.html", "name": "Impressum" },
-        { "uri": "/datenschutz.html", "name": "Datenschutz" }
-      ]
-    },
-    "/templates/404.html": {
-      "name": "404-Template",
-      "crumbs": [
-        { "uri": "/templates/404.html", "name": "404-Template" }
-      ]
-    },
-    "/templates/error.html": {
-      "name": "5xx-Template",
-      "crumbs": [
-        { "uri": "/templates/error.html", "name": "5xx-Template" }
-      ]
-    }
+  "_names": {
+    "/index.html": "Home",
+    "/blog/": "Blog",
+    "/projects.html": "Projects",
+    "/about.html": "About",
+    "/expertise.html": "Expertise",
+    "/references.html": "References",
+    "/impressum.html": "Impressum",
+    "/contact.html": "Contact",
+    "/agb.html": "AGB",
+    "/haftung-inhalte.html": "Haftung für Inhalte",
+    "/haftung-links.html": "Haftung für Links",
+    "/urheberrechte.html": "Urheberrechte",
+    "/datenschutz.html": "Datenschutz",
+    "/templates/404.html": "404-Template",
+    "/templates/error.html": "5xx-Template"
+  },
+  "_childs": {
+    "/blog/": [],
+    "/projects.html": [],
+    "/about.html": [
+      "/expertise.html",
+      "/references.html",
+      "/impressum.html",
+      "/contact.html"
+    ],
+    "/expertise.html": [],
+    "/references.html": [],
+    "/impressum.html": [
+      "/agb.html",
+      "/haftung-inhalte.html",
+      "/haftung-links.html",
+      "/urheberrechte.html",
+      "/datenschutz.html"
+    ] 
+  },
+  "_crumbs": {
+    "/about.html": [
+      "/about.html"
+    ],
+    "/expertise.html": [
+      "/about.html",
+      "/expertise.html"
+    ],
+    "/references.html": [
+      "/about.html",
+      "/references.html"
+    ],
+    "/impressum.html": [
+      "/about.html",
+      "/impressum.html"
+    ],
+    "/contact.html": [
+      "/about.html",
+      "/contact.html"
+    ],
+    "/agb.html": [
+      "/about.html",
+      "/impressum.html",
+      "/agb.html"
+    ],
+    "/haftung-inhalte.html": [
+      "/about.html",
+      "/impressum.html",
+      "/haftung-inhalte.html"
+    ],
+    "/haftung-links.html": [
+      "/about.html",
+      "/impressum.html",
+      "/haftung-links.html"
+    ],
+    "/urheberrechte.html": [
+      "/about.html",
+      "/impressum.html",
+      "/urheberrechte.html"
+    ],
+    "/datenschutz.html": [
+      "/about.html",
+      "/impressum.html",
+      "/datenschutz.html"
+    ],
+    "/templates/404.html": [
+      "/templates/404.html"
+    ],
+    "/templates/error.html": [
+      "/templates/error.html"
+    ]
   }
 }
index f75606d..b8e870c 100644 (file)
@@ -38,7 +38,7 @@
   <body
       th:fragment="body(uri)"
       thymeproxy:variables="${json}"
-      th:with="page=${pages.get(uri)},crumbs=${page['crumbs']}"
+      th:with="crumbs=${_crumbs.get(uri)}"
       id="top"
       class="menu"
       th:class="${contentclass}?:'menu'"
@@ -55,7 +55,7 @@
         <ol class="b" th:include="~{::#crumbs}?:_">
           <li class="b"><a class="b" href="../index.html" th:href="@{/index.html}">Home</a></li>
           <li class="b" th:each="crumb: ${crumbs}">
-            <a class="b" href="../projects.html" th:href="@{${crumb.uri}}" th:text="${crumb.name}">Projects</a>
+            <a class="b" href="../projects.html" th:href="@{${crumb}}" th:text="${_names.get(crumb)}">Projects</a>
           </li>
           <!--/*-->
           <li class="b"><strong class="b" th:text="${title}">Fix SWF</strong></li>
             <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.uri} ? 'm selected' : 'm'" th:text="${pages.get(entry.value).name}">Blog</a>
+              <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="${_names.get(entry.value)}">Blog</a>
               </li>
               <!--/*-->
               <li class="m projects"><a href="../projects.html" class="m selected">Projects</a></li>
             </ul>
             <h2 class="nav submenu">
               <span class="s">Submenu for section</span>
-              <a class="s selected" href="../projects.html" th:href="@{${section.uri}}" th:text="${section.name}">Projects</a>
+              <a class="s selected" href="../projects.html" th:href="@{${section}}" th:text="${_names.get(section)}">Projects</a>
             </h2>
             <ul th:include="${submenu}?:_"
                 th:with="
                   len=${crumbs.size()},
-                  submenu=${pages[section.uri]['childs']},
-                  parent=${crumbs[0].uri},
+                  submenu=${_childs.get(section)},
+                  parent=${crumbs[0]},
                   pos=1"
                 id="submenu"
                 class="s"
-                th:class="'s' + (${len == 1 or (len == 2 and page['childs'] == null)} ? ' selected' : '')"
+                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).uri == entry.key},
-                      sibling=${pos + 1 == len and (page['childs'] == null or uri == parent)},
-                      childs=${entry.key == parent ? null : pages[entry.key]['childs']}
+                      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:href="@{${entry.key}}"
+                    th:href="@{${entry}}"
                     class="s selected"
                     th:class="${selected} ? 's selected' : 's'"
-                    th:text="${entry.value}"
+                    th:text="${_names.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.key == uri or (len &gt; 1 and entry.key == crumbs.get(len-2).uri and page['childs'] == null)} ? ' selected' : '')"
+                    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="/templates/layout.html :: submenu(submenu=${childs}, parent=${entry.key}, pos=${pos + 1})"
+                  <li th:replace="this :: submenu(submenu=${childs}, parent=${entry}, pos=${pos + 1})"
                       class="s"
                       >
                     <strong class="s">Overview</strong>