added files with prompts

This commit is contained in:
2026-06-12 12:54:10 +02:00
parent 0f791c3a90
commit 2cd8671014
21 changed files with 1517 additions and 0 deletions

67
docs/prompts/step15.md Normal file
View File

@ -0,0 +1,67 @@
# 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