minidocs

Runtime Functions

All of these functions are imported from @minidocs/astro/runtime. Differences between multilingual and single-language sites are noted under each one.

Pages

listPages(entries)

Returns every page of the collection that needs a route. entries come from getCollection. Each page has:

Field Meaning
id The page id
entry The collection entry
href The page’s URL
params Parameters of the page route: { slug } on single-language sites, { locale, slug } on multilingual sites
markdownHref The URL of the Markdown version
markdownParams Parameters of the Markdown route: { path } on single-language sites, { locale, path } on multilingual sites

On multilingual sites, every page appears once per locale, including pages shown through fallback, with a few more fields:

Field Meaning
locale The locale the page is shown in
contentLocale The locale of the content, which differs from locale only for fallback pages
isFallback Whether the page shows content from another locale
alternates { locale, href }[], every locale the page exists in, including the current one

toHref(collection, id, locale?)

Returns the URL of a page, with base and the trailing slash your Astro config implies. id is type-checked against collection. Multilingual sites must pass locale.

toLocaleParam(locale)

Returns the value of the [...locale] route parameter, for pages that do not come from a collection. Returns undefined for the default locale when it has no locale segment.

The document tree

defineTree(entries, build)

Defines the document tree with the build callback and returns a list of nodes. On multilingual sites, build runs once per locale and the result is an object keyed by locale.

build receives { page, group, dir, link }, plus locale on multilingual sites:

Function Returns
page(id, children?) A page node. Fails when id does not exist in the locale
group(label, children) A group node
dir(path, { compare? }) The pages and subdirectories of a directory, without its own index. Fails when the directory has no pages
link(label, href) An external link node

Nodes have label and children, page nodes have page (where page.entry is the collection entry), and external links have href. Groups with no page, link or children are dropped.

Returns { of(node) }. of(node) returns:

Field Meaning
href The URL of a page or external link, undefined for groups
current Whether it is the current page. When a page appears more than once, only the first counts
open Whether the current page is this node or below it

neighbors(nodes, id)

Returns { prev, next }, the previous and next page nodes in the order of the tree, undefined when there is none.

findPath(nodes, id)

Returns the nodes from the first level down to the current page, or an empty array when the page is not found.

tocTree(headings, { depth? })

Arranges the headings from render() into a tree, where each node has depth, slug, text and children. depth is the range of heading levels to keep, [2, 3] by default.

Markdown and llms.txt

toMarkdown(page, { renderers? })

Converts the content of a page into Markdown, without the title. page is a page from listPages or the page of a node. When the content uses components of other frameworks, pass their renderers in renderers.

isMarkdown(Astro)

Whether a component is rendering for a Markdown version.

toLlmsTxt(nodes, { title, describe? })

Generates llms.txt from the document tree. title is the heading of the file, describe(entry) returns the description of a page, and the description of the index page also becomes the summary of the file. Trees of several collections can be joined and passed in.

toLlmsFullTxt(nodes, { renderers? })

Joins the Markdown of every page in the tree, in order, into one file.

On this page
Search in
Type to start searching