~~NOCACHE~~
~~NOTOC~~
h1. Konzept CAT-Pages
TC hat eine eigene Implementierung von Kategorieseiten. Da TC (wie auch "DokuWiki":https://www.dokuwiki.org/dokuwiki) alle Daten in einfachen Files speichert (also keine Datenbank), ist die Implementierung von Kategorienseiten aufwendiger.
Ab TC (Version 0.7) soll dieses Konzept für Kategorieseiten eingebaut werden:
* Kategorien werden, wie auch bis Version 0.6 über die Syntax * "(cat)$":tc:category:categorie-level-1:...:categorie-level-n definiert/beschrieben
* Über den Kategorienamen %(text-blue)(* "(cat)$":tc:category:categorie-level-1:...:categorie-level-n)% ist auch ein Wiki-Subpage definiert, die aus dem Kategorienamen und einem konfigurierbaren Pre-Seitennamen besteht (*Beispiel:* _subpages_)
* Dadurch entsteht eine Kategorieseite subpages:tc:category:categorie-level-1:...:categorie-level-n
* Alle Kategorieseiten werden über eine [_+PageBuilder+_]-Funktion gebildet, die die vorhandene Kategorieseite scannt und die vorhandenen Inhalte zur aktuellen Seite ersetzt oder erstellt. Der PageBuilder wird jedesmal erneut aufgerufen und aktualisiert alle Kategorieseiten der aktuellen Wiki-Seite, wenn diese aktualisiert (gespeichert) wird.
Der PageBuilder erzeugt dabei diese Inhalte pro Kategorieverlinkung:
* Einen unsichtbaren Teil, der die Rohdaten enthält. Das sind:
** Rohdaten der Texte, die angezeigt werden sollen.
** Seitennamen und Seitennamenlink zur Kategorieeintrag.
** Metadaten wie Creation Date, user etc.
* Einen sichtbaren Teil, der dann auf der Kategorieseiten angezeigt wird.
* Metadaten, die über die Konfiguration sichtbar gemacht wurden.
h3. Beispiel
Kategorieseite Albert Mangelsdorf %(text-blue)(* "(cat)$":tc:category:music:jazz:albert-mangelsdorf)% auf der Audio-Seite media:album:live-in-tokyo
* Überschrift: Kategorie Albert Mangelsdorf
* Seitendetails: Link "(page)Live in Tokyo":media:album:live-in-tokyo
Um die Kategorieseite zu aktualiesieren, wird sie unsichtbar in die aktuelle Seite geladen und danach die Inhalte zur aktuellen Wiki-Seite aktualisiert (oder angelegt). Danach erzeugt der PageBuilder wieder die neue Kategorieseite und speichert sie ab. Fertig!
h2. SUPER Kategorien
Außerdem sollen SUPER-Kategorien eingebaut werden. Dazu werden die Daten der jeweils bearbeiteten Kategorie-Seite in die SUPER-CAT-Bereiche der SUPER-Kategorie-Seiten geladen und dann entsprechend angezeigt.
p(tc-grey). _update me!_
h2. Page Links
*(tc3-ul tc3-card).
* "(page)Template Elemente bearbeiten ...":tc:rel-0.6:templates:default:edit-default-template-elements
* "(page)TextComplex | Dokumentation":tc/current/docu/start
h2. External Links
*(tc3-ul tc3-card).
* "Textile":https://textile-lang.com/
* "w3.css":https://www.w3schools.com/w3css/default.asp
* "Bootstrap 5":https://www.w3schools.com/bootstrap5/index.php
* "$":https://cindyjs.org/
* "ACE Editor":https://ace.c9.io/
* "SQLite":https://www.sqlite.org/
* "DokuWiki":https://www.dokuwiki.org/dokuwiki
* "JSON":https://www.json.org/json-en.html
* "ZUM-Portal (... bietet ein cooles Pad an)":https://www.zum.de/portal
* "(page)TC-Beispiel mit typischen Text-Bausteinen":tc:rel-0.6:templates:default:page:filled-example-1
h2. Kategorien
*(tc-wiki-cat tc3-ul tc3-card).
* "(cat)$":tc:category:update-me
p(tc-mhide). weitere Kategorien ...
*(tc-wiki-cat tc3-ul tc3-card).
* "(cat-page)$":tc:cat-created:2024-11
"(cat)TC Rel 0.6":tc:category:tc:rel-0.6.1
* "(cat)TC Default Page Template":tc:category:templates:default-page
p(tc-mhide-end). ---
{{page>tc:rel-0.6.1:templates:default&noindent&nodate&nouser&nofooter&noeditbutton}}