🤖 The docs table of contents, the slug fixture, and the index
Ten pages in two sections. The fixture is the platform's, non-ASCII cases included, because this repo's slugify and the platform's Go Anchor have to agree or a fragment link resolves in one and 404s in the other.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
3 files changed,
+56
−0
src/_data/docsanchors.json+15 −0src/_data/docsnav.json+24 −0src/docs/index.md+17 −0
diff --git a/src/_data/docsanchors.json b/src/_data/docsanchors.json| new file mode 100644 |
| index 0000000..d2f9211 |
| --- /dev/null |
| +++ b/src/_data/docsanchors.json |
| @@ -0,0 +1,15 @@ |
| +{ |
| + "Getting started": "getting-started", |
| + "The `carlos ship` contract": "the-carlos-ship-contract", |
| + "404, never 403": "404-never-403", |
| + "Routes & instances": "routes-instances", |
| + " Leading and trailing ": "leading-and-trailing", |
| + "Hyphen-joined words": "hyphen-joined-words", |
| + "`-app` and `--app`": "app-and-app", |
| + "canary/rehearsal": "canary-rehearsal", |
| + "X-Carlos-Version": "x-carlos-version", |
| + "-app": "app", |
| + "--app": "app", |
| + "Ship — then promote": "ship-then-promote", |
| + "Montréal edge": "montr-al-edge" |
| +} |
diff --git a/src/_data/docsnav.json b/src/_data/docsnav.json| new file mode 100644 |
| index 0000000..bb07b74 |
| --- /dev/null |
| +++ b/src/_data/docsnav.json |
| @@ -0,0 +1,24 @@ |
| +{ |
| + "sections": [ |
| + { |
| + "title": "Running your app", |
| + "pages": [ |
| + { "slug": "deploying", "label": "Deploying", "blurb": "Ship a version, put it in front of people, and know it landed." }, |
| + { "slug": "channels", "label": "Channels", "blurb": "How a release reaches production, and how to put it back." }, |
| + { "slug": "domains", "label": "Custom domains", "blurb": "Your own hostname on your app, and the DNS record it needs." }, |
| + { "slug": "config", "label": "Env and secrets", "blurb": "Two stores for configuration, and which one a value belongs in." }, |
| + { "slug": "storage", "label": "Object storage", "blurb": "A bucket per app: creating one, granting access, rotating keys." }, |
| + { "slug": "logs", "label": "Logs", "blurb": "One timeline of your app's output and the platform's events about it." }, |
| + { "slug": "sleeping", "label": "Restarting and sleeping", "blurb": "Cycling an app, and what hibernation means for your visitors." } |
| + ] |
| + }, |
| + { |
| + "title": "Your account", |
| + "pages": [ |
| + { "slug": "console", "label": "The console", "blurb": "What each page shows, and what you can do from it." }, |
| + { "slug": "members", "label": "Members and service credentials", "blurb": "Who can act on your apps, and credentials a server holds." }, |
| + { "slug": "limits", "label": "Limits and getting help", "blurb": "The rate limits you can hit, and where to ask when stuck." } |
| + ] |
| + } |
| + ] |
| +} |
diff --git a/src/docs/index.md b/src/docs/index.md| new file mode 100644 |
| index 0000000..107b991 |
| --- /dev/null |
| +++ b/src/docs/index.md |
| @@ -0,0 +1,17 @@ |
| +--- |
| +permalink: false |
| +--- |
| + |
| +# Documentation |
| + |
| +Carloku is the hosted CARLOS platform. You deploy a binary, get a URL, and |
| +the platform handles certificates, restarts, and putting a quiet app to |
| +sleep until traffic comes back. |
| + |
| +These pages cover running your app day-to-day, and the account settings |
| +that go with it. |
| + |
| +Haven't deployed yet? [Get started](/get-started/) is where to begin. |
| + |
| +Platform internals, self-hosting, and the full `carlos` CLI reference live |
| +at [carlosframework.com/docs](https://carlosframework.com/docs). |