Catalog Pages
Per-symbol pages are the leaves. Catalog pages are the index — generated automatically so readers and search have a way into the surface. docsgen emits four.
catalog_types — every public type (class, struct, union, enum, alias, concept), with its kind and brief, each linked to its page:
---title: "Types"description: "All public types"---
| Name | Kind | Description ||------|------|-------------|| [net::Endpoint](/net_endpoint) | Struct | IPv4 or IPv6 endpoint (address + port). || [net::Socket](/net_socket) | Class | Async, non-blocking socket with an RAII lifetime. || [net::SocketState](/net_socketstate) | Enum | Coarse-grained socket lifecycle state. |Functions
Section titled “Functions”catalog_functions — every public free function and method, with signature summary and brief, linked to the owning page.
Namespaces
Section titled “Namespaces”catalog_namespaces — the surface grouped by namespace. Each namespace gets a heading and a table of its members:
## net
| Name | Kind | Description ||------|------|-------------|| [Endpoint](/net_endpoint) | Struct | IPv4 or IPv6 endpoint (address + port). || [Socket](/net_socket) | Class | Async, non-blocking socket with an RAII lifetime. |catalog_files — a reverse index from each indexed header to the symbols it declares:
| File | Symbols ||------|--------|| `input.hpp` | [Endpoint](/net_endpoint), [Socket](/net_socket), [SocketOptions](/net_socketoptions), ... |Using them in a sidebar
Section titled “Using them in a sidebar”Catalogs are ordinary MDX pages, so you can link them anywhere or fold them into your Starlight sidebar — a top-level “API Index” group pointing at the four catalogs works well. Because excluded namespaces and non-public symbols are filtered before catalogs are built, the indexes only ever list what’s actually documented. See Astro / Starlight for wiring them in.