Přeskočit na obsah

Filtry katalogu bylin (/byliny) — URL parametry a SEO

Stav dokumentu: Částečně — základní filtry (q, month, part, region, pm, topic, topicScope, science, scienceMin, studyType, safety, spiritual, spiritualFacet, severity) jsou v produkci; aliasové routy /byliny/sezona/:mesic, /byliny/tema/:slug, /byliny/zpracovani/:slug mapují na month / topic / pm.

Cíl: jedna doména — parametry URL na /byliny, přehledové routy a SEO aliasy (odděleně od plánu fulltextu a AI).

Vstup: 23-api-and-routes.md · 22-data-model.md. Vyhledávání a AI: vyhledavani-katalogu-a-ai.md. Rozcestník: filtrace-a-vyhledavani-katalogu.md.


1. Současné filtry (parametry URL)

ParametrPopisZdroj dat / poznámka
qTextové vyhledávání názvů (CS / latinsky / alternativy)herb_names
monthMěsíc sběru (1–12), shoda s harvest_periodsviz sezonnost-a-kalendar.md
partČást rostliny ve sběru (slug, např. kvet, list)plant_parts / sběrové řádky
regionGeografický výskyt (slug regionu)výskyt byliny
pmZpůsob zpracování — opakovatelný parametr, OR mezi hodnotamiherb_methods + processing_methods
topicSlug tématu / symptomuherb_topic_links + topics
topicScopeSkupina vazeb tématu: all | tradition | science | lifestyleviz symptomy-a-temata.md
scienceKatalogová úroveň vědy (any / substantial / none)herb_scientific_lines
scienceMinMin. laťka síly důkazu (preliminaryreview)stejné zdroje
studyTypeSlug typu studieherb_scientific_lines.study_type
safetyÚroveň bezpečnosti (safe, caution, avoid, …)herbs.safety_level
spiritualPřítomnost publikovaných spiritual_usesspiritual_uses
spiritualFacetOpakovatelný parametr — slug z JSON pole spiritual_uses.facets (OR mezi hodnotami); jen známé slugy ze slovníčkuspiritual_uses.facets + app/lib/spiritual-content-labels.ts
severityOpakovatelný parametr — závažnost u vazby bylina ↔ téma (lehka | stredni | tezka, OR); u zadaného topic platí při té vazbě, bez tématu jakákoli vazba s danou závažnostíherb_topic_links.symptom_severity + app/lib/labels/symptom-severity-labels.ts

Implementace: app/routes/byliny.tsx (loader + meta), app/lib/catalog-byliny-search-params.ts (parsování URL a mapování na DB/UI), app/components/catalog/catalog-byliny-page.tsx, app/db/herbs.server.ts (listPublishedHerbs, …), strukturovaný SQL filtr ID v app/db/herb-catalog-filter-ids-query.server.ts (buildHerbCatalogFilterIdsQuery; Vitest herb-catalog-filter-ids-query.server.test.ts). Regresní průchod na lokální D1 po změnách SQL: p2-3-katalog-filtry-d1-matice.md, skript npm run smoke:byliny-matrix (po npm run build).


2. Přehledové routy (aliasy)

  • /byliny/sezona/:mesic → předvyplněný season.
  • /byliny/tema/:slug → předvyplněný symptom.
  • /byliny/zpracovani/:slug → předvyplněný method.

3. Plánovaná rozšíření filtrů

  • severity — závažnost u vazby téma (herb_topic_links.symptom_severity), migrace seed dat, parser severity, SQL filtr ID, UI v catalog-filter-form.tsx.
  • Spirituální facety — filtr podle facets JSON (spiritualFacet v URL, OR mezi zvolenými slugy; viz spiritualni-stitky-a-facets.md).

4. SEO a kanonické URL

  • Kanonické URL zůstávají na /byliny?…; aliasové routy slouží pro sdílení a interní odkazy.
  • Sitemap a metadata: viz 23-api-and-routes.md.

5. Akceptace

  • Kombinace parametrů funguje bez konfliktů s paginací (pokud je zapnutá).
  • Rozšířené filtry (severity): dokumentované slugy ve slovníčku, parser a testy (catalog-filter-params, catalog-byliny-search-params, SQL Vitest).
  • Spirituální facety: dokumentované slugy v spiritual-content-labels.ts (KNOWN_SPIRITUAL_FACET_SLUGS), parser a testy v catalog-filter-params / catalog-byliny-search-params / catalog-page-helpers.

6. Vazby na jiné dokumenty