Přeskočit na obsah

Blog, rubriky, autoři

Články / Blog (blog · PRO)

Sekce “Články / Blog (blog · PRO)”
  • Endpointy: GET /posts (karty), GET /posts/:slug (detail).
  • Karta: { slug, title, perex?, coverSrc?, coverAlt?, date?, category:{slug,name}|null, author:{slug,name,role,photoSrc?}|null }
  • Detail navíc: bodyHtml, coverInDetail, author.tagline, seo.
src/pages/blog/[slug].astro
---
import { get } from '../../lib/contenta';
export async function getStaticPaths() {
const posts = await get('/posts', []);
return posts.map((p) => ({ params: { slug: p.slug }, props: { p } }));
}
const post = await get(`/posts/${Astro.params.slug}`, null);
---
<h1>{post.title}</h1>
{post.author && <p>Autor: <a href={`/autor/${post.author.slug}/`}>{post.author.name}</a></p>}
{post.coverInDetail && post.coverSrc && <img src={post.coverSrc} alt={post.coverAlt} />}
<div set:html={post.bodyHtml} />
  • Admin: modul Články — bohatý editor, autor, plánované publikování. Publikace i naplánované zveřejnění → build hook.

Rubriky (categories · PRO)

Sekce “Rubriky (categories · PRO)”
  • Endpoint: GET /categories{ slug, name, href, tagline?, description?, postCount, accent }[].
  • Sémantika URL (důležité): post bez rubriky/blog/{slug}/; post s rubrikou → top-level /{rubrika}/{slug}/ a zároveň se objeví ve /blog/. Routy musí umět obojí.
  • Precedence rout: stránka > blog > rubrika > post.
  • Routy: src/pages/[rubrika]/index.astro (výpis) + [rubrika]/[slug].astro (post v rubrice).

Autoři / Tým (authors · PRO)

Sekce “Autoři / Tým (authors · PRO)”
  • Endpoint: GET /authors · GET /authors/:slug (detail vrací i posts[] autora).
  • Přijde: { slug, name, role, photoUrl?, initials?, tagline?, bioHtml, credentials[] } (+ posts[]).
  • Routy: /autor/index, /autor/[slug] — medailonek + mřížka článků autora.
  • Napojení: byline u článku odkazuje na /autor/{slug}/.