@roottale/cms-renderer-astro
v0.25.0
Published
RootTale CMS Astro 6 SSG/SSR public renderer. renderBlogList / renderBlogPost helpers + Tiptap → HTML. Companion of @roottale/cms-renderer-next (ADR-0034 §1.5 amended).
Maintainers
Readme
@roottale/cms-renderer-astro
RootTale CMS public renderer for Astro 6 sites — companion of @roottale/cms-renderer-next. Equivalent surface (renderBlogList / renderBlogPost), zero JS by default (ADR-0034 §1.5 amended).
Install
npm install @roottale/cms-renderer-astro @roottale/cms-client
# or
pnpm add @roottale/cms-renderer-astro @roottale/cms-clientSetup
# .env — server / build-time only
ROOTTALE_API_KEY=rtlk_cust_xxxxxxxxxxxxxxxxxxBlog list — src/pages/blog/index.astro
---
import { renderBlogList } from "@roottale/cms-renderer-astro";
const html = await renderBlogList({
apiKey: import.meta.env.ROOTTALE_API_KEY,
limit: 20,
});
---
<Fragment set:html={html} />Blog post — src/pages/blog/[slug].astro
---
import { renderBlogPost } from "@roottale/cms-renderer-astro";
const { slug } = Astro.params;
const html = await renderBlogPost({
apiKey: import.meta.env.ROOTTALE_API_KEY,
slugOrId: slug!,
showTableOfContents: true,
tableOfContentsTitle: "목차",
});
---
<Fragment set:html={html} />Other exports
renderBlocks— Block JSON → HTML stringrenderTiptapDoc— Tiptap doc → HTML stringextractToc/attachHeadingIds— Tiptap doc TOC helpers- SEO helpers —
generateArticleSchema,generateSitemapXml,generateRobotsTxt
Security
Same model as the Next renderer: server/build-time only (@roottale/cms-client throws if used in the browser). Block JSON is rendered through hardcoded mark/node mappings — link href passes an allowlist; no raw HTML escape hatch for authored content.
License
Proprietary (UNLICENSED). Issued under the RootTale customer contract.
