From 7d345bc7db9c1191e4e7e89e617dbb30403fc038 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Wed, 6 May 2026 05:56:02 +0100 Subject: [PATCH] docs: add static GitHub Pages site --- .github/workflows/pages.yml | 53 +++ docs/CNAME | 1 + docs/index.md | 69 ++++ docs/install.md | 68 ++++ docs/quickstart.md | 79 +++++ docs/social-card.png | Bin 0 -> 153981 bytes docs/social-card.svg | 129 +++++++ package.json | 1 + scripts/build-docs-site.mjs | 639 +++++++++++++++++++++++++++++++++++ scripts/docs-site-assets.mjs | 274 +++++++++++++++ 10 files changed, 1313 insertions(+) create mode 100644 .github/workflows/pages.yml create mode 100644 docs/CNAME create mode 100644 docs/index.md create mode 100644 docs/install.md create mode 100644 docs/quickstart.md create mode 100644 docs/social-card.png create mode 100644 docs/social-card.svg create mode 100644 scripts/build-docs-site.mjs create mode 100644 scripts/docs-site-assets.mjs diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 0000000..481d956 --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,53 @@ +name: pages + +on: + push: + branches: + - main + paths: + - 'docs/**' + - 'scripts/build-docs-site.mjs' + - 'scripts/docs-site-assets.mjs' + - '.github/workflows/pages.yml' + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: false + +jobs: + deploy: + name: Deploy docs + runs-on: ubuntu-latest + timeout-minutes: 10 + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Check out + uses: actions/checkout@v6 + + - name: Set up Node + uses: actions/setup-node@v6 + with: + node-version: '24' + + - name: Build docs site + run: node scripts/build-docs-site.mjs + + - name: Configure Pages + uses: actions/configure-pages@v6 + + - name: Upload artifact + uses: actions/upload-pages-artifact@v5 + with: + path: dist/docs-site + + - name: Deploy + id: deployment + uses: actions/deploy-pages@v5 diff --git a/docs/CNAME b/docs/CNAME new file mode 100644 index 0000000..fdfa41e --- /dev/null +++ b/docs/CNAME @@ -0,0 +1 @@ +mcporter.sh diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..9f9518d --- /dev/null +++ b/docs/index.md @@ -0,0 +1,69 @@ +--- +title: Overview +permalink: / +summary: 'Overview of mcporter as a portable MCP runtime, CLI, generated-CLI toolkit, and typed-client layer.' +description: 'mcporter is a TypeScript runtime, CLI, and code-generation toolkit for the Model Context Protocol — built so AI agents and developers can call any MCP server without boilerplate.' +--- + +## Try it + +mcporter auto-discovers the MCP servers already configured in Cursor, Claude Code/Desktop, Codex, Windsurf, OpenCode, and VS Code. Try it without installing anything: + +```bash +# List every MCP server you already have configured. +npx mcporter list + +# Inspect a single server with TypeScript-style signatures. +npx mcporter list linear --schema + +# Call a tool — colon flags, function-call syntax, or trailing positional values. +npx mcporter call linear.create_comment issueId:ENG-123 body:'Looks good!' +npx mcporter call 'linear.create_comment(issueId: "ENG-123", body: "Looks good!")' + +# Read or list MCP resources. +npx mcporter resource docs +npx mcporter resource docs file:///path/to/spec.md + +# Mint a standalone CLI for any MCP server, ready to ship. +npx mcporter generate-cli linear --bundle dist/linear.js + +# Emit `.d.ts` types or a typed client for agents and tests. +npx mcporter emit-ts linear --mode client --out src/linear-client.ts +``` + +`--json` produces a stable JSON envelope on stdout; human progress, prompts, and warnings always go to stderr so pipes stay parseable. + +## What mcporter does + +mcporter leans into the **code-execution-with-MCP** pattern Anthropic recommends: skip the giant tool-schema prompt, generate a small typed surface, and let the agent or the human call MCP servers like normal functions. + +- **Zero-config discovery.** Reads your home config (`~/.mcporter/mcporter.json[c]`, or `$XDG_CONFIG_HOME/mcporter/mcporter.json[c]`), then `config/mcporter.json`, then imports from Cursor / Claude / Codex / Windsurf / OpenCode / VS Code. `${ENV}` placeholders are expanded; transports are pooled across calls. +- **One-command CLI generation.** [`mcporter generate-cli`](cli-generator.md) turns any MCP server into a ready-to-run CLI with embedded schemas, optional Rolldown/Bun bundling, and Bun-compiled binaries. +- **Typed clients.** [`mcporter emit-ts`](emit-ts.md) emits `.d.ts` interfaces or a ready-to-run client wrapping `createServerProxy()` so agents call MCP tools with full TypeScript types. +- **Friendly composable API.** [`createServerProxy()`](tool-calling.md) maps tools to camelCase methods, applies JSON-schema defaults, validates required arguments, and returns a `CallResult` with `.text()`, `.markdown()`, `.json()`, `.images()`, `.content()` helpers. +- **Ad-hoc connections + auto-OAuth.** Point the CLI at any MCP endpoint (HTTP, SSE, stdio) without touching config. Hosted MCPs that need a browser login (Supabase, Vercel, etc.) are auto-detected — `mcporter auth ` promotes the definition to OAuth on the fly. See [Ad-hoc connections](adhoc.md). +- **OAuth & stdio ergonomics.** Built-in OAuth caching, token refresh, log tailing, and stdio wrappers — same interface across HTTP, SSE, and stdio transports. + +## Built for agents + +mcporter is designed to be the layer between an MCP server and a coding agent. The pattern we recommend: + +1. Configure the server once (or import from your editor of choice). +2. Run [`mcporter emit-ts `](emit-ts.md) to get a `.d.ts` of the tool surface. +3. Wire small per-server [agent skills](agent-skills.md) instead of one mega-schema prompt — small prompts, named tools, no unrelated schemas loaded. +4. For shareable workflows, generate a standalone CLI with [`mcporter generate-cli`](cli-generator.md). + +Because every transport flows through the same runtime, an agent that knows how to spawn `mcporter call` works with stdio servers, hosted HTTP MCPs, OAuth-gated services, and one-off URLs alike. + +## Why a porter? + +A _porter_ carries luggage between trains. mcporter does the same for MCP servers: it carries tool calls, schemas, OAuth tokens, and stdio handles between your agent (or your terminal) and whichever MCP server happens to be at the other end of the line. You don't have to know the shape of the server ahead of time, and the runtime keeps the connection warm so repeat calls are cheap. + +## Where to next + +- [Install](install.md) — npm, npx, Homebrew, or the standalone Bun-compiled binary. +- [Quickstart](quickstart.md) — your first list/call/resource in five minutes. +- [Configuration](config.md) — `mcporter.json`, imports, env interpolation, OAuth. +- [CLI reference](cli-reference.md) — every subcommand and flag. +- [Ad-hoc connections](adhoc.md) — point at any MCP endpoint without editing config. +- [Agent skills](agent-skills.md) — exposing servers to agents the right way. diff --git a/docs/install.md b/docs/install.md new file mode 100644 index 0000000..15fb568 --- /dev/null +++ b/docs/install.md @@ -0,0 +1,68 @@ +--- +summary: 'How to install mcporter — npx, npm, pnpm, Homebrew, or a standalone Bun-compiled binary.' +--- + +# Install + +mcporter ships as both a published npm package and a Homebrew formula. Most workflows can also run mcporter without installing anything via `npx`. + +## Try without installing + +```bash +npx mcporter --version +npx mcporter list +``` + +`npx` keeps the package in your npm cache, so subsequent runs are instant. This is the recommended first step. + +## npm / pnpm / Bun + +Install globally: + +```bash +npm install -g mcporter +``` + +Or add it to a project: + +```bash +pnpm add mcporter # or: npm install mcporter / bun add mcporter +``` + +mcporter targets Node 24+ and works under Bun. The package exposes both an importable runtime (`createRuntime`, `callOnce`, `createServerProxy`) and the `mcporter` CLI binary. + +## Homebrew + +```bash +brew install steipete/tap/mcporter +``` + +The tap publishes alongside npm. If you previously installed from an older tap, run `brew update` before reinstalling so Homebrew picks up the new formula path. + +## Standalone binary + +Each release also ships a Bun-compiled standalone binary you can drop on `$PATH` without a Node toolchain. Grab the asset for your OS/arch from the [GitHub releases page](https://github.com/steipete/mcporter/releases) and `chmod +x` it. The compiled CLI behaves the same as the Node build but boots noticeably faster and bundles its dependencies. + +## Verify + +```bash +mcporter --version +mcporter list +``` + +The first invocation will print every MCP server it discovered across your configs (Cursor, Claude Code/Desktop, Codex, Windsurf, OpenCode, VS Code). If nothing shows up, jump to [Configuration](config.md) to add a server. + +## Updating + +- `npm`: `npm install -g mcporter@latest` +- `pnpm`: `pnpm up -g mcporter@latest` +- `brew`: `brew upgrade steipete/tap/mcporter` +- Standalone binary: download a fresh release asset. + +## Uninstall + +- `npm uninstall -g mcporter` +- `brew uninstall steipete/tap/mcporter` +- Standalone binary: delete the file you copied onto `$PATH`. + +mcporter stores OAuth tokens and cached schemas under `~/.mcporter/` (or `$XDG_CACHE_HOME/mcporter/` when set). Remove that directory if you want a fully clean slate. diff --git a/docs/quickstart.md b/docs/quickstart.md new file mode 100644 index 0000000..58c1a3c --- /dev/null +++ b/docs/quickstart.md @@ -0,0 +1,79 @@ +--- +summary: 'Five-minute walk through listing MCP servers, calling a tool, and emitting a typed client.' +--- + +# Quickstart + +This walkthrough assumes you already have an MCP server configured in Cursor, Claude Code/Desktop, Codex, Windsurf, OpenCode, or VS Code. If not, copy [`config/mcporter.example.json`](https://github.com/steipete/mcporter/blob/main/config/mcporter.example.json) into `~/.mcporter/mcporter.json` and edit it — see [Configuration](config.md) for the full schema. + +## 1. List the servers mcporter sees + +```bash +npx mcporter list +``` + +You get one row per server with auth status, transport type, and tool count. Add `--json` for machine output, or `--verbose` to see which config files registered each server. + +## 2. Inspect a single server + +```bash +npx mcporter list linear +``` + +Single-server output reads like a TypeScript header file: dimmed `/** … */` doc comments above each `function name(...)` signature, with optional parameters summarised so the screen stays scannable. Add flags to drill in: + +- `--brief` (alias `--signatures`) — compact signatures only. +- `--all-parameters` — show every optional parameter inline. +- `--schema` — pretty-print the JSON schema for each tool. +- `--json` — machine-readable schema payload. + +`mcporter list shadcn.io/api/mcp.getComponents` works too — bare URLs (with or without a `.tool` suffix or scheme) auto-resolve. + +## 3. Call a tool + +```bash +# Colon-delimited flags (shell-friendly). +npx mcporter call linear.create_comment issueId:ENG-123 body:'Looks good!' + +# Function-call style copy/pasted from `mcporter list`. +npx mcporter call 'linear.create_comment(issueId: "ENG-123", body: "Looks good!")' + +# Anything after `--` is a literal positional value. +npx mcporter call docs.fetch -- --raw-string-with-leading-dashes +``` + +Pick the output format with `--output text|markdown|json|raw`. Use `--save-images ` to persist binary content blocks. See [CLI reference](cli-reference.md) for the full flag list. + +## 4. Read MCP resources + +```bash +npx mcporter resource docs # list resources +npx mcporter resource docs file:///path/to/spec.md # read a resource +``` + +Output formatting is shared with `mcporter call` (`--output`, `--json`, `--raw`). + +## 5. Generate a standalone CLI + +When you want to share a tool with someone who shouldn't have to learn `mcporter call`: + +```bash +npx mcporter generate-cli linear --bundle dist/linear.js +node dist/linear.js create-comment --issue-id ENG-123 --body 'Looks good!' +``` + +Add `--compile ` for a Bun-compiled binary, or `--include-tools a,b,c` to ship a subset. Full details in [CLI generator](cli-generator.md). + +## 6. Emit typed clients for agents + +```bash +npx mcporter emit-ts linear --mode client --out src/linear-client.ts +``` + +You get a `.d.ts` interface and a `createServerProxy()`-backed factory. Calls return `CallResult` objects with `.text()`, `.markdown()`, `.json()`, `.images()`, `.content()` helpers — see [Tool calling](tool-calling.md) for the proxy API and [emit-ts](emit-ts.md) for the generator. + +## What next + +- [Configuration](config.md) — `mcporter.json` schema, env interpolation, OAuth fields. +- [Ad-hoc connections](adhoc.md) — point at any MCP endpoint without editing config. +- [Agent skills](agent-skills.md) — wiring per-server skills into a coding agent. diff --git a/docs/social-card.png b/docs/social-card.png new file mode 100644 index 0000000000000000000000000000000000000000..a235133a3ba01019107836787ea9e4b726085c98 GIT binary patch literal 153981 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

5L<7wllg9z^tf5D-LqV}H?cF$w2K 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≻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 literal 0 HcmV?d00001 diff --git a/docs/social-card.svg b/docs/social-card.svg new file mode 100644 index 0000000..be49cab --- /dev/null +++ b/docs/social-card.svg @@ -0,0 +1,129 @@ + + mcporter social card + mcporter: MCP, made portable. TypeScript runtime, CLI, and code-generation toolkit for the Model Context Protocol. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + mcporter + + + MCP, made portable. + + + TypeScript runtime + CLI for the Model Context Protocol. + Discover, call, and generate clients for any MCP server. + + + + + + + + $ + npx mcporter list + + + mcporter.sh + + + + + + + + + + + mcporter — agent ready + + + $ npx mcporter list linear + /** + * Create a comment on a Linear issue + * @param issueId The issue ID + * @param body Markdown comment body + */ + function + create_comment + (issueId, body); + + $ mcporter call linear.create_comment \\ + issueId:ENG-123 body:'lgtm' + + + { + "ok": true, "comment": { "id": "abc123" } + } + + + + + + + Runtime + + + + CLI + + + + OAuth + + + + stdio + + + + HTTP + + + diff --git a/package.json b/package.json index 4de5534..bda8810 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "dev": "tsgo -w -p tsconfig.build.json", "prepublishOnly": "pnpm check && pnpm test && pnpm build", "docs:list": "pnpm exec tsx scripts/docs-list.ts", + "docs:site": "node scripts/build-docs-site.mjs", "generate:schema": "tsx scripts/generate-json-schema.ts", "mcporter:list": "pnpm exec tsx src/cli.ts list", "mcporter:call": "pnpm exec tsx src/cli.ts call" diff --git a/scripts/build-docs-site.mjs b/scripts/build-docs-site.mjs new file mode 100644 index 0000000..db885a9 --- /dev/null +++ b/scripts/build-docs-site.mjs @@ -0,0 +1,639 @@ +#!/usr/bin/env node +import fs from 'node:fs'; +import path from 'node:path'; + +import { css, faviconSvg, js, preThemeScript, themeToggleHtml } from './docs-site-assets.mjs'; + +const root = process.cwd(); +const docsDir = path.join(root, 'docs'); +const outDir = path.join(root, 'dist', 'docs-site'); +const repoBase = 'https://github.com/steipete/mcporter'; +const repoEditBase = `${repoBase}/edit/main/docs`; +const cname = readCname(); +const siteBase = cname ? `https://${cname}` : ''; + +const productName = 'mcporter'; +const productTagline = 'MCP, made portable.'; +const productDescription = + 'TypeScript runtime, CLI, and code-generation toolkit for the Model Context Protocol — built so AI agents and developers can call any MCP server without boilerplate.'; +const brewInstall = 'npx mcporter list'; + +const sections = [ + ['Start', ['index.md', 'install.md', 'quickstart.md', 'config.md']], + ['CLI', ['cli-reference.md', 'call-syntax.md', 'call-heuristic.md', 'shortcuts.md', 'logging.md']], + ['Generators', ['cli-generator.md', 'emit-ts.md', 'tool-calling.md']], + ['Connecting servers', ['adhoc.md', 'import.md', 'local.md', 'daemon.md', 'mcp.md']], + ['Agents', ['agent-skills.md', 'subagent.md']], + [ + 'Operations', + [ + 'RELEASE.md', + 'manual-testing.md', + 'livetests.md', + 'hang-debug.md', + 'windows.md', + 'tmux.md', + 'known-issues.md', + 'supabase-auth-issue.md', + ], + ], + ['Reference', ['spec.md', 'migration.md', 'pnpm-mcp-migration.md', 'refactor.md']], +]; + +// Skip these from page generation (internal notes etc.). Pages excluded here are +// neither rendered nor link-validated. +const buildExcludes = []; + +fs.rmSync(outDir, { recursive: true, force: true }); +fs.mkdirSync(outDir, { recursive: true }); + +const allPages = allMarkdown(docsDir).map((file) => { + const rel = path.relative(docsDir, file).replaceAll(path.sep, '/'); + const raw = fs.readFileSync(file, 'utf8'); + const { frontmatter, body } = parseFrontmatter(raw); + const cleaned = stripStrayDirectives(body); + const title = frontmatter.title || firstHeading(cleaned) || titleize(path.basename(rel, '.md')); + return { file, rel, title, outRel: outPath(rel, frontmatter), markdown: cleaned, frontmatter }; +}); + +const pages = allPages.filter((page) => !buildExcludes.some((re) => re.test(page.rel))); +const pageMap = new Map(pages.map((page) => [page.rel, page])); +const permalinkMap = new Map(); +for (const page of pages) { + if (page.frontmatter.permalink) { + permalinkMap.set(normalizePermalink(page.frontmatter.permalink), page); + } +} + +const nav = sections + .map(([name, rels]) => ({ + name, + pages: rels.map((rel) => pageMap.get(rel)).filter(Boolean), + })) + .filter((section) => section.pages.length); + +// Catch-all section: any docs/*.md we didn't slot into the curated nav goes +// under "More". This keeps every doc reachable without forcing the author to +// hand-edit `sections` for every new file. +const navRels = new Set(nav.flatMap((s) => s.pages.map((p) => p.rel))); +const extras = pages + .filter((page) => !navRels.has(page.rel) && page.rel !== 'index.md') + .toSorted((a, b) => a.title.localeCompare(b.title)); +if (extras.length) nav.push({ name: 'More', pages: extras }); + +const sectionByRel = new Map(); +for (const section of nav) for (const page of section.pages) sectionByRel.set(page.rel, section.name); +const orderedPages = nav.flatMap((s) => s.pages); + +for (const page of pages) { + const html = markdownToHtml(page.markdown, page.rel); + const toc = tocFromHtml(html); + const idx = orderedPages.findIndex((p) => p.rel === page.rel); + const prev = idx > 0 ? orderedPages[idx - 1] : null; + const next = idx >= 0 && idx < orderedPages.length - 1 ? orderedPages[idx + 1] : null; + const sectionName = sectionByRel.get(page.rel) || 'Reference'; + const pageOut = path.join(outDir, page.outRel); + fs.mkdirSync(path.dirname(pageOut), { recursive: true }); + fs.writeFileSync(pageOut, layout({ page, html, toc, prev, next, sectionName }), 'utf8'); +} + +fs.writeFileSync(path.join(outDir, 'favicon.svg'), faviconSvg(), 'utf8'); +copyStaticAsset('social-card.svg'); +copyStaticAsset('social-card.png'); +fs.writeFileSync(path.join(outDir, '.nojekyll'), '', 'utf8'); +if (cname) fs.writeFileSync(path.join(outDir, 'CNAME'), cname, 'utf8'); +validateLinks(outDir); +console.log(`built docs site: ${path.relative(root, outDir)}`); + +function readCname() { + for (const candidate of [path.join(docsDir, 'CNAME'), path.join(root, 'CNAME')]) { + if (fs.existsSync(candidate)) return fs.readFileSync(candidate, 'utf8').trim(); + } + return ''; +} + +function copyStaticAsset(name) { + const source = path.join(docsDir, name); + if (fs.existsSync(source)) fs.copyFileSync(source, path.join(outDir, name)); +} + +function parseFrontmatter(raw) { + const match = raw.match(/^---\n([\s\S]*?)\n---\n?/); + if (!match) return { frontmatter: {}, body: raw }; + const fm = {}; + for (const line of match[1].split('\n')) { + const m = line.match(/^([A-Za-z0-9_-]+):\s*(.*?)\s*$/); + if (!m) continue; + let value = m[2]; + if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) { + value = value.slice(1, -1); + } + fm[m[1]] = value; + } + return { frontmatter: fm, body: raw.slice(match[0].length) }; +} + +function stripStrayDirectives(body) { + return body + .replace(/\r\n/g, '\n') + .split('\n') + .filter((line) => !/^\s*\{:\s*[^}]*\}\s*$/.test(line)) + .map((line) => line.replace(/\s*\{:\s*[^}]*\}\s*$/, '')) + .join('\n'); +} + +function normalizePermalink(value) { + let v = value.trim(); + if (!v) return '/'; + if (!v.startsWith('/')) v = `/${v}`; + if (v.length > 1 && v.endsWith('/')) v = v.slice(0, -1); + return v; +} + +function allMarkdown(dir) { + return fs + .readdirSync(dir, { withFileTypes: true }) + .flatMap((entry) => { + const full = path.join(dir, entry.name); + if (entry.isDirectory()) return allMarkdown(full); + return entry.name.endsWith('.md') ? [full] : []; + }) + .toSorted((a, b) => a.localeCompare(b)); +} + +function outPath(rel, frontmatter = {}) { + if (frontmatter.permalink) { + const permalink = normalizePermalink(frontmatter.permalink); + if (permalink === '/') return 'index.html'; + return `${permalink.slice(1)}/index.html`; + } + if (rel === 'index.md') return 'index.html'; + if (rel === 'README.md') return 'index.html'; + if (rel.endsWith('/README.md')) return rel.replace(/README\.md$/, 'index.html'); + return rel.replace(/\.md$/, '.html'); +} + +function firstHeading(markdown) { + return markdown.match(/^#\s+(.+)$/m)?.[1]?.trim(); +} + +function titleize(input) { + return input.replaceAll('-', ' ').replace(/\b\w/g, (m) => m.toUpperCase()); +} + +function markdownToHtml(markdown, currentRel) { + const lines = markdown.replace(/\r\n/g, '\n').split('\n'); + const html = []; + let paragraph = []; + let list = null; + let fence = null; + let blockquote = []; + + const flushParagraph = () => { + if (!paragraph.length) return; + html.push(`

${inline(paragraph.join(' '), currentRel)}

`); + paragraph = []; + }; + const closeList = () => { + if (!list) return; + html.push(``); + list = null; + }; + const flushBlockquote = () => { + if (!blockquote.length) return; + const inner = markdownToHtml(blockquote.join('\n'), currentRel); + html.push(`
${inner}
`); + blockquote = []; + }; + for (let i = 0; i < lines.length; i++) { + const line = lines[i]; + const fenceMatch = line.match(/^```([\w+-]+)?\s*$/); + if (fenceMatch) { + flushParagraph(); + closeList(); + flushBlockquote(); + if (fence) { + html.push( + `
${escapeHtml(fence.lines.join('\n'))}
` + ); + fence = null; + } else { + fence = { lang: fenceMatch[1] || 'text', lines: [] }; + } + continue; + } + if (fence) { + fence.lines.push(line); + continue; + } + if (/^>\s?/.test(line)) { + flushParagraph(); + closeList(); + blockquote.push(line.replace(/^>\s?/, '')); + continue; + } + flushBlockquote(); + if (!line.trim()) { + flushParagraph(); + closeList(); + continue; + } + if (/^\s*---+\s*$/.test(line)) { + flushParagraph(); + closeList(); + html.push('
'); + continue; + } + const heading = line.match(/^(#{1,4})\s+(.+)$/); + if (heading) { + flushParagraph(); + closeList(); + const level = heading[1].length; + const text = heading[2].trim(); + const id = slug(text); + const inner = inline(text, currentRel); + if (level === 1) { + html.push(`

${inner}

`); + } else { + html.push( + `
#${inner}` + ); + } + continue; + } + if ( + line.trimStart().startsWith('|') && + line.includes('|', line.indexOf('|') + 1) && + isDivider(lines[i + 1] || '') + ) { + flushParagraph(); + closeList(); + const header = splitRow(line); + const aligns = splitRow(lines[i + 1]).map((cell) => { + const left = cell.startsWith(':'); + const right = cell.endsWith(':'); + return right && left ? 'center' : right ? 'right' : left ? 'left' : ''; + }); + i += 1; + const rows = []; + while (i + 1 < lines.length && lines[i + 1].trimStart().startsWith('|')) { + i += 1; + rows.push(splitRow(lines[i])); + } + const th = header + .map((c, idx) => `${inline(c, currentRel)}`) + .join(''); + const tb = rows + .map( + (r) => + `${r.map((c, idx) => `${inline(c, currentRel)}`).join('')}` + ) + .join(''); + html.push(`${th}${tb}
`); + continue; + } + const bullet = line.match(/^\s*-\s+(.+)$/); + const numbered = line.match(/^\s*\d+\.\s+(.+)$/); + if (bullet || numbered) { + flushParagraph(); + const tag = bullet ? 'ul' : 'ol'; + if (list && list !== tag) closeList(); + if (!list) { + list = tag; + html.push(`<${tag}>`); + } + html.push(`
  • ${inline((bullet || numbered)[1], currentRel)}
  • `); + continue; + } + paragraph.push(line.trim()); + } + flushParagraph(); + closeList(); + flushBlockquote(); + return html.join('\n'); +} + +function inline(text, currentRel) { + const stash = []; + let out = text.replace(/`([^`]+)`/g, (_, code) => { + stash.push(`${escapeHtml(code)}`); + return `\uE000${stash.length - 1}\uE000`; + }); + out = escapeHtml(out) + .replace(/\*\*([^*]+)\*\*/g, '$1') + .replace(/(^|[^*])\*([^*\s][^*]*?)\*(?!\*)/g, '$1$2') + .replace(/(^|[^_])_([^_\s][^_]*?)_(?!_)/g, '$1$2') + .replace( + /\[([^\]]+)\]\(([^)]+)\)/g, + (_, label, href) => `${label}` + ) + .replace(/<(https?:\/\/[^\s<>]+)>/g, '$1'); + out = out.replace(/\\\|/g, '|'); + out = out.replace(/<br>/g, '
    '); + return out.replace(/\uE000(\d+)\uE000/g, (_, i) => stash[Number(i)]); +} + +function splitRow(line) { + let trimmed = line.trim(); + if (trimmed.startsWith('|')) trimmed = trimmed.slice(1); + if (trimmed.endsWith('|') && !trimmed.endsWith('\\|')) trimmed = trimmed.slice(0, -1); + const cells = []; + let current = ''; + for (let idx = 0; idx < trimmed.length; idx++) { + const char = trimmed[idx]; + if (char === '\\' && trimmed[idx + 1] === '|') { + current += '\\|'; + idx += 1; + continue; + } + if (char === '|') { + cells.push(current.trim().replace(/\\\|/g, '|')); + current = ''; + continue; + } + current += char; + } + cells.push(current.trim().replace(/\\\|/g, '|')); + return cells; +} + +function isDivider(line) { + return /^\s*\|?\s*:?-{2,}:?\s*(\|\s*:?-{2,}:?\s*)+\|?\s*$/.test(line); +} + +function rewriteHref(href, currentRel) { + if (/^(https?:|mailto:|tel:|#)/.test(href)) return href; + const [raw, hash = ''] = href.split('#'); + if (!raw) return hash ? `#${hash}` : ''; + if (raw.startsWith('/')) { + const target = permalinkMap.get(normalizePermalink(raw)); + if (target) { + const currentOut = pageMap.get(currentRel)?.outRel || outPath(currentRel); + const out = hrefToOutRel(target.outRel, currentOut); + return hash ? `${out}#${hash}` : out; + } + return href; + } + if (!raw.endsWith('.md')) return href; + const from = path.posix.dirname(currentRel); + const target = path.posix.normalize(path.posix.join(from, raw)); + let rewritten = pageMap.get(target)?.outRel || outPath(target); + const currentOut = pageMap.get(currentRel)?.outRel || outPath(currentRel); + rewritten = hrefToOutRel(rewritten, currentOut); + return `${rewritten}${hash ? `#${hash}` : ''}`; +} + +function tocFromHtml(html) { + const items = []; + const re = /([\s\S]*?)<\/h[23]>/g; + let m; + while ((m = re.exec(html))) { + const text = m[3] + .replace(/]*>.*?<\/a>/, '') + .replace(/<[^>]+>/g, '') + .trim(); + items.push({ level: Number(m[1]), id: m[2], text }); + } + if (items.length < 2) return ''; + return ``; +} + +function isHomePage(page) { + if (page.frontmatter.permalink && normalizePermalink(page.frontmatter.permalink) === '/') return true; + return page.rel === 'index.md' || page.rel === 'README.md'; +} + +function homeHero(page) { + const description = page.frontmatter.description || productDescription; + const installRel = pageMap.get('install.md')?.outRel + ? hrefToOutRel(pageMap.get('install.md').outRel, page.outRel) + : 'install.html'; + const quickstartRel = pageMap.get('quickstart.md')?.outRel + ? hrefToOutRel(pageMap.get('quickstart.md').outRel, page.outRel) + : 'quickstart.html'; + const features = ['TypeScript runtime', 'CLI', 'Generated CLIs', 'Typed clients', 'OAuth', 'stdio + HTTP + SSE']; + return `
    +

    Model Context Protocol · Toolkit

    +

    ${escapeHtml(productTagline)}

    +

    ${escapeHtml(description)}

    +
    + Quickstart + GitHub +
    + + ${escapeHtml(brewInstall)} +
    +
    +
    + ${features.map((s) => `${escapeHtml(s)}`).join('')} +
    +

    Install options →

    +
    `; +} + +function standardHero(page, sectionName, editUrl) { + return `
    +
    +

    ${escapeHtml(sectionName)}

    +

    ${escapeHtml(page.title)}

    +
    + +
    `; +} + +function layout({ page, html, toc, prev, next, sectionName }) { + const depth = page.outRel.split('/').length - 1; + const rootPrefix = depth ? '../'.repeat(depth) : ''; + const editUrl = `${repoEditBase}/${page.rel}`; + const home = isHomePage(page); + const prevNext = !home && (prev || next) ? pageNavHtml(prev, next, page.outRel) : ''; + const heroBlock = home ? homeHero(page) : standardHero(page, sectionName, editUrl); + const articleClass = home ? 'doc doc-home' : 'doc'; + const tocBlock = home ? '' : toc; + const titleSuffix = home ? `${productName} — ${productTagline}` : `${page.title} — ${productName}`; + const description = + page.frontmatter.description || (home ? productDescription : `${page.title} — ${productName} documentation.`); + const canonicalUrl = pageCanonicalUrl(page); + const socialImage = siteBase ? `${siteBase}/social-card.png` : `${rootPrefix}social-card.png`; + const socialMeta = [ + ['link', 'rel', 'canonical', 'href', canonicalUrl], + ['meta', 'property', 'og:type', 'content', 'website'], + ['meta', 'property', 'og:site_name', 'content', productName], + ['meta', 'property', 'og:title', 'content', titleSuffix], + ['meta', 'property', 'og:description', 'content', description], + ['meta', 'property', 'og:url', 'content', canonicalUrl], + ['meta', 'property', 'og:image', 'content', socialImage], + ['meta', 'property', 'og:image:width', 'content', '1200'], + ['meta', 'property', 'og:image:height', 'content', '630'], + ['meta', 'name', 'twitter:card', 'content', 'summary_large_image'], + ['meta', 'name', 'twitter:title', 'content', titleSuffix], + ['meta', 'name', 'twitter:description', 'content', description], + ['meta', 'name', 'twitter:image', 'content', socialImage], + ] + .map(tagHtml) + .join('\n '); + return ` + + + + + ${escapeHtml(titleSuffix)} + + ${socialMeta} + + + + + + + + + +
    + +
    + ${heroBlock} +
    +
    ${html}${prevNext}
    + ${tocBlock} +
    +
    +
    + + +`; +} + +function pageCanonicalUrl(page) { + if (!siteBase) return page.outRel; + if (page.outRel === 'index.html') return `${siteBase}/`; + const rel = page.outRel.endsWith('/index.html') ? page.outRel.slice(0, -'index.html'.length) : page.outRel; + return `${siteBase}/${rel}`; +} + +function tagHtml([tag, k1, v1, k2, v2]) { + return tag === 'link' + ? `` + : ``; +} + +function pageNavHtml(prev, next, currentOutRel) { + const cell = (page, dir) => { + if (!page) return ''; + return `${dir === 'prev' ? 'Previous' : 'Next'}${escapeHtml(page.title)}`; + }; + return ``; +} + +function navHtml(currentPage) { + return nav + .map( + (section) => + `

    ${escapeHtml(section.name)}

    ${section.pages + .map((page) => { + const href = hrefToOutRel(page.outRel, currentPage.outRel); + const active = page.rel === currentPage.rel ? ' active' : ''; + return `${escapeHtml(navTitle(page))}`; + }) + .join('')}
    ` + ) + .join(''); +} + +function navTitle(page) { + if (page.rel === 'index.md') return 'Overview'; + return page.title.replace(/^`mcporter\s*/, '').replace(/`$/, ''); +} + +function hrefToOutRel(targetOutRel, currentOutRel) { + const currentDir = path.posix.dirname(currentOutRel); + if (targetOutRel.endsWith('/index.html')) { + const targetDir = targetOutRel.slice(0, -'index.html'.length); + const rel = path.posix.relative(currentDir, targetDir || '.') || '.'; + return rel.endsWith('/') ? rel : `${rel}/`; + } + if (targetOutRel === 'index.html') { + const rel = path.posix.relative(currentDir, '.') || '.'; + return rel.endsWith('/') ? rel : `${rel}/`; + } + return path.posix.relative(currentDir, targetOutRel) || path.posix.basename(targetOutRel); +} + +function slug(text) { + return text + .toLowerCase() + .replace(/`/g, '') + .replace(/[^a-z0-9]+/g, '-') + .replace(/^-|-$/g, ''); +} + +function escapeHtml(value) { + return String(value ?? '').replace( + /[&<>"']/g, + (char) => ({ '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' })[char] + ); +} + +function escapeAttr(value) { + return escapeHtml(value); +} + +function validateLinks(outputDir) { + const failures = []; + const placeholderHrefs = /^(url|path|file|dir|name)$/i; + for (const file of allHtml(outputDir)) { + const html = fs.readFileSync(file, 'utf8'); + for (const match of html.matchAll(/href="([^"]+)"/g)) { + const href = match[1]; + if (/^(#|https?:|mailto:|tel:|javascript:)/.test(href)) continue; + if (placeholderHrefs.test(href)) continue; + const [rawPath, anchor = ''] = href.split('#'); + const targetPath = rawPath ? path.resolve(path.dirname(file), rawPath) : file; + const target = + fs.existsSync(targetPath) && fs.statSync(targetPath).isDirectory() + ? path.join(targetPath, 'index.html') + : targetPath; + if (!fs.existsSync(target)) { + failures.push(`${path.relative(outputDir, file)}: ${href} -> missing ${path.relative(outputDir, target)}`); + continue; + } + if (anchor) { + const targetHtml = fs.readFileSync(target, 'utf8'); + if (!targetHtml.includes(`id="${anchor}"`) && !targetHtml.includes(`name="${anchor}"`)) { + failures.push(`${path.relative(outputDir, file)}: ${href} -> missing anchor`); + } + } + } + } + if (failures.length) { + throw new Error(`broken docs links:\n${failures.join('\n')}`); + } +} + +function allHtml(dir) { + return fs + .readdirSync(dir, { withFileTypes: true }) + .flatMap((entry) => { + const full = path.join(dir, entry.name); + if (entry.isDirectory()) return allHtml(full); + return entry.name.endsWith('.html') ? [full] : []; + }) + .toSorted((a, b) => a.localeCompare(b)); +} diff --git a/scripts/docs-site-assets.mjs b/scripts/docs-site-assets.mjs new file mode 100644 index 0000000..7a7590e --- /dev/null +++ b/scripts/docs-site-assets.mjs @@ -0,0 +1,274 @@ +export function css() { + return ` +:root{ + --ink:#0d1116; + --text:#1f2530; + --muted:#5f6b7a; + --subtle:#94a0b1; + --bg:#f7f9fc; + --paper:#ffffff; + --accent:#7c3aed; + --accent-soft:rgba(124,58,237,.10); + --accent-strong:#5b21b6; + --brand-cyan:#06b6d4; + --brand-pink:#ec4899; + --brand-amber:#f59e0b; + --brand-emerald:#10b981; + --line:#e3e7ef; + --line-soft:#eef1f6; + --code-bg:#0b0d12; + --code-fg:#e6edf3; + --code-inline-fg:#1c2128; + --pill-border:#dbe2eb; + --shadow-card:0 4px 14px rgba(15,17,21,.08); + --scrollbar:#cbd5e1; +} +:root[data-theme="dark"]{ + --ink:#f3f5f9; + --text:#cbd2dc; + --muted:#8d96a4; + --subtle:#5d6371; + --bg:#0a0c12; + --paper:#13161f; + --accent:#a78bfa; + --accent-soft:rgba(167,139,250,.16); + --accent-strong:#c4b5fd; + --line:#262a36; + --line-soft:#1d2029; + --code-bg:#06080d; + --code-fg:#e6edf3; + --code-inline-fg:#e6edf3; + --pill-border:#2a2f3c; + --shadow-card:0 4px 18px rgba(0,0,0,.45); + --scrollbar:#3a4154; +} +:root{color-scheme:light} +:root[data-theme="dark"]{color-scheme:dark} +*{box-sizing:border-box} +html{scroll-behavior:smooth;scroll-padding-top:24px} +body{margin:0;background:var(--bg);color:var(--text);font-family:"Inter",ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased;font-feature-settings:"cv02","cv03","cv04","cv11";transition:background-color .18s,color .18s} +::selection{background:var(--accent);color:#fff} +a{color:var(--accent);text-decoration:none;transition:color .12s} +a:hover{text-decoration:underline;text-underline-offset:.2em} +.shell{display:grid;grid-template-columns:268px minmax(0,1fr);min-height:100vh} +.sidebar{position:sticky;top:0;height:100vh;overflow:auto;padding:24px 22px;background:var(--paper);border-right:1px solid var(--line);scrollbar-width:thin;scrollbar-color:var(--line) transparent;transition:background-color .18s,border-color .18s} +.sidebar::-webkit-scrollbar{width:6px} +.sidebar::-webkit-scrollbar-thumb{background:var(--line);border-radius:6px} +.sidebar-head{display:flex;align-items:center;gap:10px;margin-bottom:24px} +.brand{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none;flex:1;min-width:0} +.brand:hover{text-decoration:none} +.brand .mark{position:relative;flex:0 0 32px;width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,var(--accent) 0%,var(--brand-cyan) 100%);box-shadow:0 1px 2px rgba(15,17,21,.18),inset 0 1px 0 rgba(255,255,255,.18)} +.brand .mark::before,.brand .mark::after{content:"";position:absolute;background:#fff;border-radius:2px} +.brand .mark::before{left:7px;right:7px;top:9px;height:3px;opacity:.95} +.brand .mark::after{left:13px;right:13px;top:14px;bottom:7px;border-radius:1px;opacity:.85} +.brand strong{display:block;font-size:1.05rem;line-height:1.1;font-weight:600;letter-spacing:0;color:var(--ink)} +.brand small{display:block;color:var(--muted);font-size:.74rem;margin-top:3px;font-weight:400} +.theme-toggle{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:34px;height:34px;border-radius:8px;border:1px solid var(--line);background:var(--paper);color:var(--muted);cursor:pointer;padding:0;transition:border-color .15s,color .15s,background-color .15s,transform .12s} +.theme-toggle:hover{border-color:var(--ink);color:var(--ink)} +.theme-toggle:active{transform:scale(.94)} +.theme-toggle svg{width:16px;height:16px;display:block} +.theme-icon-sun{display:none} +:root[data-theme="dark"] .theme-icon-sun{display:block} +:root[data-theme="dark"] .theme-icon-moon{display:none} +.search{display:block;margin:0 0 22px} +.search span{display:block;color:var(--muted);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:0;margin-bottom:7px} +.search input{width:100%;border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:9px 12px;font:inherit;font-size:.9rem;color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s,background-color .18s} +.search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)} +nav section{margin:0 0 18px} +nav h2{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:0;margin:0 0 6px;font-weight:600} +.nav-link{display:block;color:var(--text);text-decoration:none;border-radius:6px;padding:5px 10px;margin:1px 0;font-size:.9rem;line-height:1.4;transition:background .12s,color .12s} +.nav-link:hover{background:var(--line-soft);color:var(--ink);text-decoration:none} +.nav-link.active{background:var(--accent-soft);color:var(--accent);font-weight:600} +main{min-width:0;padding:32px clamp(20px,4.5vw,56px) 80px;max-width:1180px;margin:0 auto;width:100%} +.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;border-bottom:1px solid var(--line);padding:8px 0 22px;margin-bottom:8px;flex-wrap:wrap} +.hero-text{min-width:0;flex:1 1 320px} +.eyebrow{margin:0 0 8px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:0;font-size:.7rem} +.hero h1{font-size:2.25rem;line-height:1.1;letter-spacing:0;margin:0;font-weight:700;color:var(--ink)} +.hero-meta{display:flex;gap:8px;flex:0 0 auto;flex-wrap:wrap} +.repo,.edit,.btn-ghost{border:1px solid var(--line);color:var(--text);text-decoration:none;border-radius:7px;padding:6px 11px;font-weight:500;font-size:.83rem;background:var(--paper);transition:border-color .15s,color .15s,background .15s} +.repo:hover,.edit:hover,.btn-ghost:hover{border-color:var(--ink);color:var(--ink);text-decoration:none} +.edit{color:var(--muted)} +.home-hero{padding:14px 0 28px;margin-bottom:8px;border-bottom:1px solid var(--line)} +.home-hero h1{font-size:3.25rem;line-height:1.04;letter-spacing:0;margin:0 0 .35em;font-weight:700;color:var(--ink);background:linear-gradient(120deg,var(--accent) 0%,var(--brand-cyan) 60%,var(--brand-pink) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent} +.home-hero .lede{font-size:1.18rem;line-height:1.55;color:var(--text);margin:0 0 1.2em;max-width:60ch} +.home-cta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 18px} +.home-cta .btn{display:inline-flex;align-items:center;gap:7px;border-radius:8px;padding:10px 16px;font-weight:600;font-size:.92rem;text-decoration:none;transition:background .15s,border-color .15s,color .15s,transform .12s} +.home-cta .btn-primary{background:var(--accent);color:#fff;border:1px solid var(--accent)} +.home-cta .btn-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong);text-decoration:none;color:#fff} +.home-cta .btn-ghost{padding:10px 16px} +.home-install{display:flex;align-items:center;gap:12px;background:var(--code-bg);color:var(--code-fg);border-radius:8px;padding:10px 10px 10px 16px;font:500 .9rem/1.2 "JetBrains Mono","SF Mono",ui-monospace,monospace;max-width:32em;border:1px solid #1f2937} +.home-install .prompt{color:#64748b;user-select:none;flex:0 0 auto} +.home-install code{flex:1;background:transparent;border:0;color:var(--code-fg);font:inherit;padding:0;white-space:pre;overflow:hidden;text-overflow:ellipsis} +.home-install .copy{flex:0 0 auto;background:rgba(255,255,255,.08);color:var(--code-fg);border:1px solid rgba(255,255,255,.16);border-radius:6px;padding:5px 11px;font:500 .72rem/1 "Inter",sans-serif;cursor:pointer;transition:background .15s,border-color .15s} +.home-install .copy:hover{background:rgba(255,255,255,.16)} +.home-install .copy.copied{background:var(--accent);border-color:var(--accent)} +.home-services{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 18px} +.home-services span{display:inline-block;padding:3px 9px;border:1px solid var(--line);border-radius:999px;font-size:.78rem;color:var(--muted);background:var(--paper)} +.doc-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:48px;margin-top:24px} +.doc-grid-home{margin-top:8px} +@media(min-width:1180px){.doc-grid{grid-template-columns:minmax(0,72ch) 200px;justify-content:start}.doc-grid-home{grid-template-columns:minmax(0,76ch);justify-content:start}} +.doc{min-width:0;max-width:72ch;overflow-wrap:break-word} +.doc-home{max-width:76ch} +.doc h1{font-size:2.6rem;line-height:1.08;letter-spacing:0;margin:0 0 .4em;font-weight:700;color:var(--ink)} +body:not(.home) .doc>h1:first-child{display:none} +.doc h2{font-size:1.45rem;line-height:1.2;margin:2em 0 .5em;font-weight:600;letter-spacing:0;color:var(--ink);position:relative} +.doc h3{font-size:1.1rem;margin:1.7em 0 .35em;position:relative;font-weight:600;color:var(--ink);letter-spacing:0} +.doc h4{font-size:.98rem;margin:1.4em 0 .25em;color:var(--ink);position:relative;font-weight:600} +.doc h2:first-child,.doc h3:first-child,.doc h4:first-child{margin-top:.2em} +.doc :is(h2,h3,h4) .anchor{position:absolute;left:-1.05em;top:0;color:var(--subtle);opacity:0;text-decoration:none;font-weight:400;padding-right:.3em;transition:opacity .12s,color .12s} +.doc :is(h2,h3,h4):hover .anchor{opacity:.7} +.doc :is(h2,h3,h4) .anchor:hover{opacity:1;color:var(--accent);text-decoration:none} +.doc p{margin:0 0 1.05em} +.doc ul,.doc ol{padding-left:1.3rem;margin:0 0 1.15em} +.doc li{margin:.25em 0} +.doc li>p{margin:0 0 .4em} +.doc strong{font-weight:600;color:var(--ink)} +.doc em{font-style:italic} +.doc code{font-family:"JetBrains Mono","SF Mono",ui-monospace,monospace;font-size:.84em;background:var(--line-soft);border:1px solid var(--line);border-radius:5px;padding:.08em .35em;color:var(--code-inline-fg)} +.doc pre{position:relative;overflow:auto;background:var(--code-bg);color:var(--code-fg);border-radius:8px;padding:14px 18px;margin:1.3em 0;font-size:.85em;line-height:1.6;scrollbar-width:thin;scrollbar-color:#334155 transparent;border:1px solid #1f2937} +.doc pre::-webkit-scrollbar{height:8px;width:8px} +.doc pre::-webkit-scrollbar-thumb{background:#334155;border-radius:8px} +.doc pre code{display:block;background:transparent;border:0;color:inherit;padding:0;font-size:1em;white-space:pre} +.doc pre .copy{position:absolute;top:8px;right:8px;background:rgba(255,255,255,.06);color:var(--code-fg);border:1px solid rgba(255,255,255,.16);border-radius:6px;padding:3px 9px;font:500 .7rem/1 "Inter",sans-serif;cursor:pointer;opacity:0;transition:opacity .15s,background .15s,border-color .15s} +.doc pre:hover .copy,.doc pre .copy:focus{opacity:1} +.doc pre .copy:hover{background:rgba(255,255,255,.12)} +.doc pre .copy.copied{background:var(--accent);border-color:var(--accent);opacity:1} +.doc blockquote{margin:1.4em 0;padding:10px 16px;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 8px 8px 0;color:var(--text)} +.doc blockquote p:last-child{margin-bottom:0} +.doc table{width:100%;border-collapse:collapse;margin:1.2em 0;font-size:.92em} +.doc th,.doc td{border-bottom:1px solid var(--line);padding:9px 10px;text-align:left;vertical-align:top} +.doc th{font-weight:600;color:var(--ink);background:var(--line-soft);border-bottom:1px solid var(--line)} +.doc hr{border:0;border-top:1px solid var(--line);margin:2.2em 0} +.toc{position:sticky;top:24px;align-self:start;font-size:.84rem;padding-left:14px;border-left:1px solid var(--line);max-height:calc(100vh - 48px);overflow:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent} +.toc::-webkit-scrollbar{width:5px} +.toc::-webkit-scrollbar-thumb{background:var(--line);border-radius:5px} +.toc h2{font-size:.66rem;color:var(--muted);text-transform:uppercase;letter-spacing:0;margin:0 0 10px;font-weight:600} +.toc a{display:block;color:var(--muted);text-decoration:none;padding:4px 0 4px 10px;line-height:1.35;border-left:2px solid transparent;margin-left:-12px;transition:color .12s,border-color .12s} +.toc a:hover{color:var(--ink);text-decoration:none} +.toc a.active{color:var(--accent);border-left-color:var(--accent);font-weight:500} +.toc-l3{padding-left:22px!important;font-size:.94em} +@media(max-width:1179px){.toc{display:none}} +.page-nav{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:48px;border-top:1px solid var(--line);padding-top:20px} +.page-nav>a{display:block;border:1px solid var(--line);background:var(--paper);border-radius:9px;padding:13px 16px;text-decoration:none;color:var(--text);transition:border-color .15s,transform .15s,box-shadow .15s,background-color .18s} +.page-nav>a:hover{border-color:var(--accent);text-decoration:none;color:var(--ink)} +.page-nav small{display:block;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:0;margin-bottom:5px;font-weight:600} +.page-nav span{display:block;font-weight:600;line-height:1.3;color:var(--ink)} +.page-nav-prev{text-align:left} +.page-nav-next{text-align:right;grid-column:2} +.page-nav-prev:only-child{grid-column:1} +.nav-toggle{display:none;position:fixed;top:14px;right:14px;top:calc(14px + env(safe-area-inset-top, 0px));right:calc(14px + env(safe-area-inset-right, 0px));z-index:20;width:40px;height:40px;border-radius:9px;background:var(--paper);border:1px solid var(--line);color:var(--ink);cursor:pointer;padding:10px 9px;flex-direction:column;align-items:stretch;justify-content:space-between;box-shadow:var(--shadow-card)} +.nav-toggle span{display:block;width:100%;height:2px;flex:0 0 2px;background:currentColor;border-radius:2px;transition:transform .2s,opacity .2s} +.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)} +.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0} +.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)} +@media(max-width:900px){ + .shell{display:block} + .sidebar{position:fixed;inset:0 30% 0 0;max-width:320px;height:100vh;z-index:15;transform:translateX(-100%);transition:transform .25s ease,background-color .18s,border-color .18s;box-shadow:0 18px 40px rgba(0,0,0,.18);background:var(--paper);pointer-events:none} + .sidebar.open{transform:translateX(0);pointer-events:auto} + .nav-toggle{display:flex} + main{padding:64px 18px 56px} + .hero{padding-top:6px} + .hero h1{font-size:1.8rem} + .home-hero h1{font-size:2.45rem} + .doc h1{font-size:2.1rem} + .hero-meta{width:100%;justify-content:flex-start} + .home-hero{padding-top:8px} + .doc{padding:0} + .doc-grid{margin-top:18px;gap:24px} + .doc :is(h2,h3,h4) .anchor{display:none} +} +@media(max-width:520px){ + main{padding:60px 14px 48px} + .doc pre{margin-left:-14px;margin-right:-14px;border-radius:0;border-left:0;border-right:0} + .home-install{flex-wrap:wrap} +} +`; +} + +export function js() { + return ` +const themeRoot=document.documentElement; +function applyTheme(mode){themeRoot.dataset.theme=mode;document.querySelectorAll('[data-theme-toggle]').forEach(b=>b.setAttribute('aria-pressed',mode==='dark'?'true':'false'))} +function storedTheme(){try{return localStorage.getItem('theme')}catch(e){return null}} +function persistTheme(mode){try{localStorage.setItem('theme',mode)}catch(e){}} +applyTheme(themeRoot.dataset.theme==='dark'?'dark':'light'); +document.querySelectorAll('[data-theme-toggle]').forEach(btn=>{btn.addEventListener('click',()=>{const next=themeRoot.dataset.theme==='dark'?'light':'dark';applyTheme(next);persistTheme(next)})}); +const systemDark=window.matchMedia&&matchMedia('(prefers-color-scheme: dark)'); +function onSystemChange(e){if(storedTheme())return;applyTheme(e.matches?'dark':'light')} +if(systemDark){if(systemDark.addEventListener)systemDark.addEventListener('change',onSystemChange);else if(systemDark.addListener)systemDark.addListener(onSystemChange)} +const sidebar=document.querySelector('.sidebar'); +const toggle=document.querySelector('.nav-toggle'); +const mobileNav=window.matchMedia('(max-width: 900px)'); +const sidebarFocusable='a[href],button,input,select,textarea,[tabindex]'; +function setSidebarFocusable(enabled){ + sidebar?.querySelectorAll(sidebarFocusable).forEach((el)=>{ + if(enabled){ + if(el.dataset.sidebarTabindex!==undefined){ + if(el.dataset.sidebarTabindex)el.setAttribute('tabindex',el.dataset.sidebarTabindex); + else el.removeAttribute('tabindex'); + delete el.dataset.sidebarTabindex; + } + }else if(el.dataset.sidebarTabindex===undefined){ + el.dataset.sidebarTabindex=el.getAttribute('tabindex')??''; + el.setAttribute('tabindex','-1'); + } + }); +} +function setSidebarOpen(open){ + if(!sidebar||!toggle)return; + sidebar.classList.toggle('open',open); + toggle.setAttribute('aria-expanded',open?'true':'false'); + if(mobileNav.matches){ + sidebar.inert=!open; + if(open)sidebar.removeAttribute('aria-hidden'); + else sidebar.setAttribute('aria-hidden','true'); + setSidebarFocusable(open); + }else{ + sidebar.inert=false; + sidebar.removeAttribute('aria-hidden'); + setSidebarFocusable(true); + } +} +setSidebarOpen(false); +toggle?.addEventListener('click',()=>setSidebarOpen(!sidebar?.classList.contains('open'))); +document.addEventListener('click',(e)=>{if(!sidebar?.classList.contains('open'))return;if(sidebar.contains(e.target)||toggle?.contains(e.target))return;setSidebarOpen(false)}); +document.addEventListener('keydown',(e)=>{if(e.key==='Escape')setSidebarOpen(false)}); +const syncSidebarForViewport=()=>setSidebarOpen(sidebar?.classList.contains('open')??false); +if(mobileNav.addEventListener)mobileNav.addEventListener('change',syncSidebarForViewport); +else mobileNav.addListener?.(syncSidebarForViewport); +const input=document.getElementById('doc-search'); +input?.addEventListener('input',()=>{const q=input.value.trim().toLowerCase();document.querySelectorAll('nav section').forEach(sec=>{let any=false;sec.querySelectorAll('.nav-link').forEach(a=>{const m=!q||a.textContent.toLowerCase().includes(q);a.style.display=m?'block':'none';if(m)any=true});sec.style.display=any?'block':'none'})}); +function attachCopy(target,getText){const btn=document.createElement('button');btn.type='button';btn.className='copy';btn.textContent='Copy';btn.addEventListener('click',async()=>{try{await navigator.clipboard.writeText(getText());btn.textContent='Copied';btn.classList.add('copied');setTimeout(()=>{btn.textContent='Copy';btn.classList.remove('copied')},1400)}catch{btn.textContent='Failed';setTimeout(()=>{btn.textContent='Copy'},1400)}});target.appendChild(btn)} +document.querySelectorAll('.doc pre').forEach(pre=>attachCopy(pre,()=>pre.querySelector('code')?.textContent??'')); +document.querySelectorAll('.home-install').forEach(el=>attachCopy(el,()=>el.querySelector('code')?.textContent??'')); +const tocLinks=document.querySelectorAll('.toc a'); +if(tocLinks.length){const map=new Map();tocLinks.forEach(a=>{const id=a.getAttribute('href').slice(1);const el=document.getElementById(id);if(el)map.set(el,a)});const setActive=l=>{tocLinks.forEach(x=>x.classList.remove('active'));l.classList.add('active')};const obs=new IntersectionObserver(entries=>{const visible=entries.filter(e=>e.isIntersecting).sort((a,b)=>a.boundingClientRect.top-b.boundingClientRect.top);if(visible.length){const link=map.get(visible[0].target);if(link)setActive(link)}},{rootMargin:'-15% 0px -65% 0px',threshold:0});map.forEach((_,el)=>obs.observe(el))} +`; +} + +export function preThemeScript() { + return `(function(){var s;try{s=localStorage.getItem('theme')}catch(e){}var d=window.matchMedia&&matchMedia('(prefers-color-scheme: dark)').matches;document.documentElement.dataset.theme=s||(d?'dark':'light')})();`; +} + +export function themeToggleHtml() { + return ``; +} + +export function faviconSvg() { + return ` + + + + + + + + + + + +`; +}