Files
WebWizard/docs/prompts/step15.md
2026-06-12 12:54:10 +02:00

2.6 KiB

Krok 15 - Rendering Vrstva (Jadro a Baseline šablóna)

Kontext projektu

Renderer je PHP služba, ktorá z wizard_data a AI vygenerovaného obsahu vytvorí statický HTML web. Rendering layer je oddelená od content layer.

Pred implementáciou si preštuduj

  • docs/mvp.md - Sekcia 4 (Rendering layer).
  • docs/architecture.md - Sekcia 12 (Website Quality Requirements).

Cieľ

Vytvoriť základnú triedu Renderer a baseline HTML šablónu, ktorá bude slúžiť ako kostra pre generovaný web.

Požadované zmeny

  1. Vytvorenie triedy App\Services\Renderer v src/Services/Renderer.php:
    • Metóda render(string $projectId): bool.
    • Načítanie dát projektu.
    • Implementácia "tvrdého" HTML escapovania pre všetky texty z JSONu (htmlspecialchars).
  2. Vytvorenie základnej šablóny src/Templates/base.php:
    • Kompletná HTML5 štruktúra.
    • Dynamické vkladanie SEO meta tagov (title, description, OpenGraph).
    • Inklúzia CSS a JS súborov (relatívne cesty).
    • Kontajner <main id="content">, do ktorého sa budú vkladať sekcie.
  3. Vytvorenie statických assetov pre export:
    • src/Templates/css/site.css (základný reset a štruktúra).
    • src/Templates/js/site.js (voliteľné pre interaktivitu).

Implementačné pravidlá

  • Všetky URL v exporte musia byť relatívne.
  • Renderer nesmie generovať žiadne inline štýly, ak to nie je nevyhnutné (napr. farby v :root).
  • Striktné dodržanie sémantiky HTML5.

Súbory ktoré je potrebné vytvoriť

  • src/Services/Renderer.php
  • src/Templates/base.php
  • src/Templates/css/site.css

Súbory ktoré je potrebné upraviť

Žiadne.

API a dátové štruktúry

Metóda render zapisuje výsledok do exports/<project_id>/index.html.

Frontend požiadavky

Nerelevantné (generovanie výstupu).

Backend požiadavky

  • PHP 8.2 (použitie ob_start() / ob_get_clean() pre buffering šablón).

Testovací scenár

  1. Spusti Renderer::render() pre projekt, ktorý má v content.generated základné SEO dáta.
  2. Over, či vznikol súbor exports/<project_id>/index.html.
  3. Over v prehliadači, či má stránka správny titulok a meta tagy.
  4. Over, či je HTML kód čistý a správne escapovaný.

Definition of Done

  • Renderer dokáže vytvoriť základnú HTML kostru webu.
  • SEO metadáta sú správne namapované.
  • Escapovanie je implementované na úrovni jadra.

Obmedzenia

  • Žiadne externé template engine (ako Twig/Blade), použi čisté PHP šablóny.

Výstup

  • zoznam vytvorených súborov
  • zoznam upravených súborov
  • stručné zhrnutie vykonaných zmien
  • prípadné otvorené problémy