2.6 KiB
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
- Vytvorenie triedy
App\Services\Renderervsrc/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).
- Metóda
- 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.
- 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.phpsrc/Templates/base.phpsrc/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
- Spusti
Renderer::render()pre projekt, ktorý má vcontent.generatedzákladné SEO dáta. - Over, či vznikol súbor
exports/<project_id>/index.html. - Over v prehliadači, či má stránka správny titulok a meta tagy.
- 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