Hledání, média, přesměrování, návštěvnost
Vyhledávání (runtime)
Sekce “Vyhledávání (runtime)”- Endpoint:
GET /search-index→ agregovaný index všech publikovaných typů (články, stránky, pojmy, autoři…). - Jak: stáhni index (při buildu jako statický JSON, nebo fetchni za běhu) a filtruj na klientovi
(vlastní stránka
/hledat/). Žádná server-side fulltextová služba není potřeba.
// build-time: ulož index do public/search-index.jsonconst idx = await get('/search-index', []); // [{ title, perex, href, kind, ... }]// runtime na /hledat/: fetch('/search-index.json') → filtruj dle dotazu → vypiš odkazyGalerie / Média (assets · FREE)
Sekce “Galerie / Média (assets · FREE)”- Není samostatný „GET media“ pro výpis — obrázky přijdou jako URL přímo v obsahu
(
coverSrc,gallery[].src,hero.image, obrázky vbodyHtml). - Servírování:
GET /public/assets/:siteSlug/:filename(MinIO + transformace Sharp). V Astru jen<img src={…} alt={…}>. - Galerie na homepage: ze
site-config.gallery([{src,alt}]) → mřížka, volitelně lightbox (přístupně:role="dialog", focus-trap, Esc). - Admin: modul Média (upload, optimalizace, deduplikace dle obsahu).
Přesměrování (redirects · MAX)
Sekce “Přesměrování (redirects · MAX)”- Endpoint:
GET /redirects. - Jak: při buildu vygeneruj edge konfiguraci — na Cloudflare Pages zapiš do
public/_redirects.
const rules = await get('/redirects', []); // [{ from, to, status }]const txt = rules.map((r) => `${r.from} ${r.to} ${r.status ?? 301}`).join("\n");// zapiš do public/_redirects (formát Cloudflare Pages)- Admin: modul Přesměrování (hladká migrace ze starého webu). Po změně → rebuild.
Návštěvnost / Umami (analytics · FREE)
Sekce “Návštěvnost / Umami (analytics · FREE)”websiteIdpřijde vsite-config.settings.analytics.umami { websiteId, scriptUrl }. Cookieless → bez cookie lišty.
{u?.websiteId && <script is:inline defer src={u.scriptUrl} data-website-id={u.websiteId}></script>}- Admin: statistiky v modulu Návštěvnost (klient vidí jen svůj web).