Social cards, rendered at build.
Every page gets a 1200×630 OpenGraph image built from its frontmatter. Takumi renders it natively, no browser involved.
- No browser
- Hashed file names
- Only changed cards
Plugins attach to Flame's build pipeline and dev server through hooks. Register them in docu.json as an npm package, a factory with options, or a local file. Nine hooks, run in order, on Bun, Node and Deno.
A plugin is a name and a setup function. Configure it, write it, pick the hooks it needs, then keep it local or publish it.
Add a plugins array: an npm package, a factory with options, or a local file in plugins/.
A plugin is a name and a setup(build) call. Register only the hooks you need.
onStart, transformFrontmatter, injectHead, transformHtml, onEnd. They run in docu.json order.
Keep it in your project or publish to npm. Hooks run on Bun, Node and Deno.
Every page gets a 1200×630 OpenGraph image built from its frontmatter. Takumi renders it natively, no browser involved.
Algolia DocSearch v5 behind Flame's own search bar and ⌘ K. Full-text results in the dialog, Ask AI in its own panel beside the document.
How do I serve the docs under /docs with nginx?
Set basePath in docu.json and run flame build. Flame writes nginx rules that follow the prefix, so links, canonical URLs and search records stay in sync. ▍
SOURCES · deployment.mdx · base-path.mdxExport a name and a setup function. Pick a hook, return your result, and point docu.json at the file. Errors in setup stop both build and dev, so a broken plugin never ships.
@docubook/plugin-* or docubook-plugin-*import type { DocuBookPlugin } from "@docubook/flame";
const plugin: DocuBookPlugin = {
const plugin: DocuBookPlugin
name: "last-updated",
setup(build) {
build.transformFrontmatter((fm) => ({
...fm,
updated: new Date().toISOString(),
}));
},
};
export default plugin;