Odstranění technické / vývojářské copy z veřejného webu
Cíl: Texty typu odkazů na docs/…, názvů tabulek a sloupců, stacku (D1, Workers), query parametrů a interních „docRef“ pod nadpisy sekcí jsou pro běžného návštěvníka rušivé. Tento soubor je inventura míst k úpravě nebo odstranění (copy nahradit srozumitelnou češtinou, případně blok úplně zrušit).
Rozsah: Primárně app/routes/*.tsx, app/components/herb-detail-section.tsx, app/root.tsx. Backend (app/db/*) a migrace se netýkají — tam technické názvy patří.
Mimo scope (samostatné rozhodnutí): Stránky /dokumentace, /roadmap a jejich obsah jsou záměrně projektová dokumentace. Úkol může být jen odstranit odkazy z patičky / úvodu, nebo je nechat jen pro vývojáře — není součástí tabulky níže jako „řádek k přepsání“, ale viz sekce Doplňková rozhodnutí.
Druhý audit (kontrola úplnosti): Prošly znovu všechny app/routes/*.tsx, app/root.tsx, app/components/*.tsx a uživatelsky viditelné řetězce v app/lib/claim-labels.ts (grep na databáz, v datech, docs/, codeInline, migrac, slug, tabulk, repozitář, D1, Worker, npm run, „řádek“ v copy). Backend app/db/*.server.ts záměrně vynechán.
Přehledná tabulka — konkrétní místa
| # | Oblast | Soubor | Řádky (orientační) | Co návštěvník vidí / problém | Navrhovaná akce |
|---|---|---|---|---|---|
| 1 | Úvod — lead | app/routes/home.tsx | cca 44–47 | Odkaz na docs/, README.md, „technická dokumentace pro vývoj“ | Odstavec zjednodušit na produktový popis; odkazy do repa vynechat nebo přesunout jen do README. |
| 2 | Úvod — collapsible | app/routes/home.tsx | cca 84–93 | „Technická poznámka (vývoj)“, React Router, Workers, D1, Worker env (ukázka) | Celý <details> blok odstranit; v loader pak zvážit odstranění cfHint, pokud už nikde nebude potřeba. |
| 3 | Patička | app/root.tsx | cca 111–126 | Odkazy Roadmapa / Dokumentace + text o složce docs/ v repozitáři | Odkazy a text buď odstranit, nebo nahradit neutrálním „O projektu“ bez cesty k souborům (podle produktového rozhodnutí). |
| 4 | Katalog — technický blok | app/routes/byliny.tsx | cca 220–231 | <details> „Technické poznámky (data a dokumentace)“ — D1, is_published, docs/23-api…, docs/22-data-model… | Celý blok odstranit. |
| 5 | Katalog — prázdný stav | app/routes/byliny.tsx | cca 552–554 | npm run d1:apply:local | Nahradit srozumitelnou větou pro prázdný katalog (bez CLI). |
| 6 | Katalog — hint u filtru měsíce | app/routes/byliny.tsx | cca 268–270 | „záznam sběru v datech“ | Přeformulovat bez „v datech“ (např. „u uvedeného sběru“). |
| 7 | Katalog — hint část rostliny | app/routes/byliny.tsx | cca 291–294 | harvest_periods → plant_parts, „řádku“ | Popis čistě uživatelsky (měsíc + část z jednoho záznamu sběru), bez názvů tabulek. |
| 8 | Katalog — hint typ vazby tématu | app/routes/byliny.tsx | cca 393–396 | link_type = scientific, topicScope=lifestyle | Vysvětlit význam filtrů česky bez SQL/parametrů URL. |
| 9 | Katalog — hint vědecká evidence | app/routes/byliny.tsx | cca 418–421 | „tabulka scientific_evidence“ | Popis bez názvu tabulky. |
| 10 | Katalog — hint min. síla | app/routes/byliny.tsx | cca 439–441 | scientific_evidence.evidence_level, „řádek“ | Stejné — obecná čeština. |
| 11 | Katalog — hint typ studie | app/routes/byliny.tsx | cca 465–468 | study_type, „publikovaný řádek“ | Přeformulovat (např. „záznam o studii na kartě“). |
| 12 | Katalog — hint bezpečnost | app/routes/byliny.tsx | cca 490–491 | herbs.safety_level | Bez názvu sloupce; např. „podle stupně opatrnosti uvedeného u byliny“. |
| 13 | Katalog — hint spirituální | app/routes/byliny.tsx | cca 513–515 | spiritual_uses | Bez názvu tabulky/sloupce. |
| 14 | Katalog — rychlé filtry (chips) | app/routes/byliny.tsx | cca 70–71, 75 | „v datech sběru“, „Tradiční vrstva…“ v popisku chipu | Přejmenovat na srozumitelné štítky (např. „Květy (sběr)“, „List (sběr)“); chip „Tradiční vrstva…“ sjednotit s uživatelskou terminologií ze zbytku UI. |
| 15 | Katalog — úvodní odstavce | app/routes/byliny.tsx | cca 193–197 | „v datech“, „odkazy v datech“ (opakovaně) | Jemná redakce do přirozené češtiny. |
| 16 | Karta byliny — docRef | app/routes/byliny.$slug.tsx | více <Section … docRef="…"> | Pod každým nadpisem sekce interní odkaz (12-katalog…, symptomy-a-temata, tasks/…) | Odstranit prop docRef u všech sekcí; v herb-detail-section.tsx pak zrušit zobrazení docRef nebo prop úplně vyhodit. |
| 17 | Karta byliny — prázdné obrázky | app/routes/byliny.$slug.tsx | cca 661–665 | „Do D1“, public_url, r2_key, /media/… | Text jen pro návštěvníka („zatím bez fotografií“) nebo úplně bez technického návodu. |
| 18 | Karta byliny — druhý empty obrázků | app/routes/byliny.$slug.tsx | cca 668–670 | tabulka images | Bez názvu tabulky. |
| 19 | Karta byliny — zpracování | app/routes/byliny.$slug.tsx | cca 452–457 | „Tradiční vrstva v datech“, „Vědecké sledování v datech“ ano/ne | Buď skrýt, nebo přepsat na lidsky (např. „má oddíl tradičního využití“), bez slova „data“. |
| 20 | Recepty — prázdný stav | app/routes/recepty.tsx | cca 54–55 | herb_method_recipes | Obecná věta bez názvu tabulky. |
| 21 | Recepty — lead | app/routes/recepty.tsx | cca 49 | „publikovaným receptem v datech“ | „… s uveřejněným postupem“ apod. |
| 22 | Zpracování — index lead | app/routes/zpracovani.tsx | cca 45–47 | parametr pm, příklad caj | Odkaz na katalog tlačítkem/odkazem místo názvu query parametru. |
| 23 | Zpracování — detail sekce | app/routes/zpracovani.$slug.tsx | cca 142–144 | herb_processing_methods | Text bez názvu vazební tabulky. |
| 24 | Zpracování — empty herbs | app/routes/zpracovani.$slug.tsx | cca 147–152 | „přidejte obsah v datech“ | Redakce pro veřejnost nebo interní placeholder odstranit. |
| 25 | Regiony — index | app/routes/region._index.tsx | cca 57–62 | „tabulka výskytu“, parametr region | Popis oblastí bez DB slovníku; odkaz do katalogu srozumitelně (tlačítko „Filtrovat v katalogu“). |
| 26 | Regiony — meta | app/routes/region._index.tsx | cca 26–27 | „z databáze výskytu“, „v datech“ | SEO text uživatelsky. |
| 27 | Region — detail | app/routes/region.$slug.tsx | cca 82–86 | region={slug} jako hlavní lead | Lead o oblasti; filtr přes běžný odkaz bez zobrazení query stringu v monospace. |
| 28 | Region — meta | app/routes/region.$slug.tsx | cca 31 | „v datech“ | Upravit meta description. |
| 29 | Sezóna — index | app/routes/sezona._index.tsx | cca 37–45 | month, /co-sbirat/…, „SEO alias“, „databáze“ | Jedna věta pro uživatele; alias /co-sbirat řešit skrytě (redirect zůstane, copy zjednodušit). |
| 30 | Sezóna — meta | app/routes/sezona._index.tsx | cca 13–14 | „v datech“ | Meta popis srozumitelněji. |
| 31 | Sezóna — měsíc | app/routes/sezona.$month.tsx | cca 84–96, 129, 149 | Lead: „řádků sběru“, month={n}, „SEO alias“; facet záhlaví „…v datech“; prázdný stav „nemáme v datech…“ | Sjednotit copy bez DB jazyka; odkazy do katalogu lidsky (bez monospace query). |
| 32 | Sezóna — meta | app/routes/sezona.$month.tsx | cca 31–34 | „v datech“ | Meta popis. |
| 33 | Symptomy — empty | app/routes/symptomy._index.tsx | cca 85 | „v databázi“ | „Zatím tu nejsou žádná témata s bylinami v katalogu.“ |
| 34 | Symptomy — hint vyhledávání | app/routes/symptomy._index.tsx | cca 55 | „slug“ v nápovědě | Nahradit „adresa tématu“ nebo vynechat technický termín. |
| 35 | Zpracování — empty methods | app/routes/zpracovani.tsx | cca 57 | „v databázi“ | „Zatím nejsme doplnili způsoby zpracování.“ (nebo podle tónu značky) |
| 36 | Karta byliny — témata (úvod sekce) | app/routes/byliny.$slug.tsx | cca 271–276 | „Propojení z databáze.“; odkaz zobrazený jako surová cesta /symptomy | Přepsat na běžnou větu; odkaz s textem „Přehled témat“ / „Symptomy a témata“. |
| 37 | Karta byliny — léky / fotosenzitivita | app/routes/byliny.$slug.tsx | cca 299–300 | „Informační texty z databáze“ | Např. „Informace na kartě…“ bez slova databáze. |
| 38 | Karta byliny — legenda bezpečnosti | app/lib/claim-labels.ts | cca 219 (HERB_SAFETY_LEVEL_LEGEND_HINTS_CS.unknown) | „Stupeň v datech zatím neuveden…“ (rendruje se v boxu „Význam stupňů“ na kartě) | Nahradit formulací bez „v datech“ (např. „stupeň zatím není vyplněný“). |
| 39 | Rituály — úvodní lead + meta | app/routes/ritualy._index.tsx | lead cca 44–45; meta cca 13–14 | Lead: „mimo pole … na kartě byliny“, „štítky typu tvrzení“; meta: „editorských návodů“ | Lead zjednodušit; meta bez editorialního žargonu, pokud má být veřejná. |
| 40 | Rituály — prázdný stav | app/routes/ritualy._index.tsx | cca 57–58 | „V databázi…“, „migraci / editora“ | Veřejná věta typu „Zatím tu nejsou žádné návody.“ |
| 41 | Detail tématu | app/routes/symptomy.$slug.tsx | cca 69–73 | „Kompletní katalog s filtry:“ + odkaz s textem /byliny | Odkaz s lidským popiskem („Otevřít katalog bylin“). |
| 42 | Meta / SEO (další výskyty „v datech“) | app/routes/region.$slug.tsx, app/routes/sezona.$month.tsx, app/routes/region._index.tsx, app/routes/sezona._index.tsx | funkce meta / description | Popisy pro vyhledávače s „v datech“ nebo „databáze“ | Sjednotit s tónem zbytku webu; při úpravách těchto stránek zkontrolovat i meta, nejen tělo stránky. |
| 43 | Chybové hlášky (volitelné) | app/routes/ritualy.$slug.tsx | loader 404 | „Chybí slug návodu.“ | Pro návštěvníka neutrálně („Neplatná adresa návodu.“). |
| 44 | Recepty — meta description | app/routes/recepty.tsx | meta, cca 13–14 | „editorských receptů“ (vnitřní editorialní termín) | Veřejný popis např. „receptů a postupů“ bez slova „editorské“, pokud má být copy konzistentní s názvem stránky pro návštěvníka. |
Volitelně: tón prázdných stavů na kartě byliny
Některé EmptyHint znějí spíš pro editory než pro čtenáře (např. „Doplňte poznámky k určení“, „…zatím nejsou vyplněná“). Nejsou technicky „DB copy“, ale stojí za sjednocení tónu při stejné pass.
| Soubor | Řádky (orientační) | Poznámka |
|---|---|---|
app/routes/byliny.$slug.tsx | cca 241, 249 | Přeformulovat na „Zatím bez …“ apod. |
Okrajové: neznámé slugy v UI
Funkce jako labelHerbTopicLinkType, labelHerbSafetyLevel atd. při neznámé hodnotě vrací raw slug (anglický identifikátor). To není nový text v šabloně, ale může se občas objevit u chybějících překladů v datech — zvážit fallback „Jiný typ vazby“ / skrytí badge (samostatný drobný úkol, není v hlavní tabulce).
Související úklid po úpravách (volitelné)
| Položka | Poznámka |
|---|---|
app/ui/nature-classes.ts — třída detailsTech | Pokud po odstranění <details> nezůstane žádné použití, zvážit smazání stylů. |
app/components/herb-detail-section.tsx — prop docRef | Po odstranění ze všech volání smazat prop a podmíněné zobrazení. |
home.tsx loader — cfHint | Odstranit z loaderu a typů route, pokud už nebude v UI. |
Doplňková rozhodnutí (mimo řádky tabulky)
- Veřejné
/dokumentacea/roadmap: Zda zůstanou linkované z produkční patičky, nebo pouze v README / pro vývoj. - Chování redirectů (
/co-sbirat/:month): měnit nemusíte — jde jen o copy na stránkách sezóny.
Kontrola po implementaci
- Projít hlavní šablony (
home,byliny, karta byliny,sezona,region,zpracovani,recepty,symptomy,ritualy,root) a vyhledat např.:docs/,D1,Worker,npm run,migrac,repozitář, „v datech“, „databáz“, „z databáze“, „tabulk“,is_published,slugv nápovědách, monospace s názvy tabulek/sloupců, surové cesty/bylinynebo/symptomyjako text odkazu. - Znovu projít
app/lib/claim-labels.ts(řetězce vRecordmapách zobrazované ve UI, ne jen komentáře).