PureWiki verarbeitet Benutzeranfragen nach Inhalten (das öffentliche Wiki) mithilfe einer effizienten Routing- und Rendering-Engine. Dieser Leitfaden erklärt, wie das System eine URL in eine vollständig realisierte HTML-Seite übersetzt.

Der Router (index.php)

Jede Anfrage durchläuft die index.php. Sie normalisiert die angeforderte URL und bestimmt, ob der Pfad auf /setup, eine Dashboard-Route oder eine reguläre Wiki-Seite verweist.

Rendering-Pipeline:
Öffentliche Anfragen werden an das Frontend-Rendering-System (purewiki/frontend/renderer.php) delegiert.

Die Rendering-Engine

Die Funktion renderPage() ist das Herzstück der PureWiki-Generierung. Sie übernimmt:

  1. Datenextraktion: Parst die page.json, um Metadaten und Blöcke abzurufen.
  2. Inhalts-Parsing: Blöcke werden über purewiki/frontend/parser.php in semantisches HTML umgewandelt.
  3. Theme-Injektion: Die aggregierten Daten und der HTML-Inhalt werden an das aktive Theme-Template übergeben.
  4. Platzhalter-Ersetzung: Ersetzt spezialisierte Platzhalter (z. B. {{ content }}, {{ assets_head }}) innerhalb der Theme-Ausgabe.

Der Caching-Mechanismus (/cache)

Um blitzschnelle Antwortzeiten zu ermöglichen, verwendet PureWiki ein robustes statisches HTML-Caching-System.

Cache:
Für nicht authentifizierte Benutzer werden statische HTML-Dateien ausgeliefert, wodurch die PHP-Verarbeitung und das JSON-Parsing umgangen werden.
Hinweis:
Das Caching ist für authentifizierte Benutzer explizit deaktiviert, um während der aktiven Bearbeitung immer die aktuellsten Inhalte anzuzeigen.

Sitemap (sitemap.xml)

PureWiki generiert dynamisch eine sitemap.xml, um die Indexierung durch Suchmaschinen zu unterstützen. Sie wird aus dem Wiki-Root ausgeliefert und folgt dem sitemaps.org Standard.

Generierungslogik:
Die Sitemap durchläuft den Seitenbaum (getCachedPagesTree()) und schließt private Seiten automatisch aus. Die Priorität wird dynamisch basierend auf der Seitentiefe berechnet.