@getnarro/docs
v0.7.1
Published
Narro's documentation as data — markdown pages, a generated component API reference, and llms.txt
Maintainers
Readme
@getnarro/docs
Narro's documentation as data — markdown pages, a generated component API reference, and llms.txt
getnarro.com · Documentation · Ecosystem
npm install --save-dev @getnarro/docsWhy this exists
An AI writing a Narro deck has to know the markdown dialect and which package
each component comes from. Left to guess, it produces a deck that builds and
renders wrong — directives as literal text, Heading imported from the wrong
package. Fetching https://getnarro.com/llms.txt solves that when the network
is available; this package solves it when it is not, and pins the answer to the
version actually installed.
API
import { catalog, getComponent, getDoc, listComponents, listDocs, llmsFullTxt } from "@getnarro/docs";
listDocs(); // [{ slug, title, description, question, category, order, body }]
getDoc("markdown-mode")?.body; // the page, as markdown
listComponents(); // every component in core + shared-ui
getComponent("List")?.props; // [{ name, type, required, description }]
catalog().layouts; // every layout name that exists — pick from this
llmsFullTxt(); // the index with every page inlined| Function | Returns |
| --- | --- |
| listDocs() | Every page, ordered by category then position |
| getDoc(slug) | One page, or undefined |
| listComponents() | Every documented component |
| getComponent(name) | One component's package and props |
| listComponentsByPackage(npmName) | The components one package exports |
| catalog() | Every closed set — layouts, themes, colour schemes, font presets, templates, frontmatter keys, string unions, components, CLI commands |
| llmsTxt() | The llms.txt index |
| llmsFullTxt() | The index with every page inlined |
Constrain generation, don't just document it
catalog() is the piece that changes outcomes rather than reading well. A prose
reference tells a model what is possible and does nothing to stop it writing
layout: split or theme: corporate — both read exactly like names Narro would
have, neither exists, and a deck using them builds and renders wrong instead
of failing. A generator that picks from catalog().layouts cannot make that
mistake.
Every field is read out of the shipping source, so "absent from the catalog" means "does not exist".
Raw files
For tools that would rather read bytes than call a function:
@getnarro/docs/llms.txt
@getnarro/docs/llms-full.txt
@getnarro/docs/catalog.json
@getnarro/docs/components.json
@getnarro/docs/content/markdown-mode.mdWhere the content comes from
content/*.md is the source of truth. https://getnarro.com/docs renders these
exact files, so the site and this package cannot disagree.
content/components.md and everything under generated/ are written by
scripts/generate.mjs at build time and are not checked in.
components.json is read out of the TypeScript types with the compiler API —
prop tables cannot drift from the API, because they are not written down twice.
To add a page: drop a markdown file in content/ with title, description,
question, category (start-here, reference, or guides), order, and an
icon. The site route, the sidebar entry, the docs-index card, the command
palette entry, the .md twin, and the llms.txt line all follow from it.
question is the one that is easy to skip and is not optional. description
says what the page contains; question says when you would be reading it, and
it is what the index and llms.txt lead with — someone scanning is matching a
situation ("how do I export a PDF?"), not a topic ("Import & Export"). The
generator refuses to build a page without one.
The Narro ecosystem
| Package | What it is |
| --- | --- |
| @getnarro/cli | CLI tools for creating and managing Narro presentations |
| @getnarro/core | The React runtime for Narro presentations — Presentation, Slide, navigation, transitions, and speaker notes |
| @getnarro/docs | Narro's documentation as data — markdown pages, a generated component API reference, and llms.txt ← you are here |
| @getnarro/markdown | Markdown & MDX authoring for Narro presentations |
| @getnarro/marketplace | Themes, colour schemes, and templates for Narro presentations |
| @getnarro/mcp-server | MCP (Model Context Protocol) server for AI-assisted Narro presentation creation |
| @getnarro/shared-ui | Slide components for Narro presentations — headings, text, lists, code, media, charts, and layouts |
| create-narro | Scaffold a new Narro presentation |
All eight ship from one repository and release together.
The npm package named
narrois unrelated to this project. Narro's packages are all under the@getnarro/scope; the CLI binarynarrocomes from@getnarro/cli.
Website · Documentation · llms.txt · GitHub · Issues · Changelog
Released under the MIT License.
