Configuration
markline.json is the single source of truth for navigation, theming, and behavior.
Theme & branding
namestringrequiredThe site name, used in the header and metadata.
theme.logoobject{ light, dark } image paths, or { text } for a wordmark.theme.colorsobject{ primary, primaryDark } brand accents (hex). See Theming for the full palette and fonts.theme.appearance"light" | "dark" | "system"Default color scheme.
Topbar
topbar.linksarrayRight-aligned header links, e.g. a GitHub link.
topbar.ctaobject{ label, href } for the primary "Get started" button.topbar.badgestringA small label pill next to the logo (e.g.
docs · v1).topbar.width"full" | "contained"Topbar layout on docs + the API reference.
"full" (default) spans edge-to-edge; "contained" centers it to the content max-width.topbar.homeWidth"full" | "contained"The homepage topbar, independent of
width. Defaults to "contained" so the marketing nav aligns with the hero.Navigation
Navigation is a list of tabs, each with grouped pages. A tab can instead set
openapi: true to generate its sidebar from your OpenAPI spec.
"navigation": {
"tabs": [
{ "id": "docs", "label": "Documentation", "href": "/", "match": ["__default__"],
"groups": [{ "group": "Start", "pages": [{ "href": "/", "label": "Intro" }] }] },
{ "id": "api", "label": "API", "href": "/api-reference", "match": ["/api-reference"], "openapi": true }
]
}
API & playground
api.baseUrlstringBase URL the playground sends requests to (overrides the spec's servers).
api.playground.mode"full" | "inline" | "explorer" | "off"The "Try it" experience. Default
"full".api.playground.proxy"auto" | "always" | "never"How the playground reaches your API.
never is required for static export.See API reference for the full guide — generating the reference, the live explorer, and per-resource/per-operation MDX overlays.
Integrations
editUrlstringBase URL for "Edit this page" links; the page path is appended.
analyticsobjectplausible, googleAnalytics, or posthog.feedback.enabledbooleanForce the "Was this helpful?" widgets on or off. Omitted → shown only when an
endpoint is set. See Feedback.
feedback.endpointstringPOST target for the "Was this helpful?" widgets (same JSON from docs pages and
API resource sections). Point it at a webhook, a Sheet, your own API, or the
bundled feedback-worker. See Feedback for the
payload and deploy steps.
Versions & i18n
versionsarrayDocumentation versions; the first is the default (unprefixed).
i18n.localesarrayLocalizations; the first locale is the default. Same mechanism as versions.
A project uses versions or locales — both share the URL-prefix mechanism. See Versions & i18n for the directory layout and worked examples.