~ knotless Search/
↑↓ move↵ open⇧↵ all results

chadtmiller.com/knotless

git that lives in your Atmosphere account

7
89 lines · 3.5 KB Raw History
import { unified } from '@astrojs/markdown-remark'
import starlight from '@astrojs/starlight'
import { defineConfig } from 'astro/config'
import { remarkLinks, remarkMermaid } from './plugins.mjs'
import { remarkReference } from './reference.mjs'

/** Where the site is served: under the pages' own origin, beside the app. */
const base = '/docs'

// The sidebar follows docs/README.md: guides, then reference, then design.
const page = (label, slug) => ({ label, slug })

export default defineConfig({
  site: 'https://knotless.dev',
  base,
  markdown: { processor: unified({ remarkPlugins: [[remarkLinks, { base }], remarkMermaid, remarkReference] }) },
  integrations: [
    starlight({
      title: 'knotless docs',
      description: 'Git repositories stored in atproto accounts: guides, reference and design.',
      customCss: ['./src/theme.css'],
      components: { SiteTitle: './src/SiteTitle.astro', ThemeSelect: './src/ThemeSelect.astro' },
      social: [{ icon: 'seti:git', label: 'The repository', href: 'https://knotless.dev/chadtmiller.com/knotless' }],
      lastUpdated: false,
      // Code as the pages show it: a plain block, GitHub's colours.
      expressiveCode: {
        themes: ['github-dark', 'github-light'],
        defaultProps: { frame: 'none' },
        styleOverrides: {
          borderRadius: 'var(--radius-md)',
          borderColor: 'var(--line)',
          codeBackground: 'var(--soft)',
          codeFontFamily: 'var(--font-mono)',
          codeFontSize: 'var(--text-sm)',
          uiFontFamily: 'var(--font-sans)',
          frames: { frameBoxShadowCssValue: 'none' },
        },
      },
      pagination: true,
      sidebar: [
        page('Overview', ''),
        {
          label: 'Guides',
          items: [
            page('Getting started', 'guide/getting-started'),
            page('Collaborating', 'guide/collaborating'),
            page('Private repositories', 'guide/private'),
            page('Agents', 'guide/agents'),
            page('Review agents', 'guide/reviews'),
            page('Running knotless-serve', 'guide/server'),
            page('Workflows', 'guide/workflows'),
          ],
        },
        {
          label: 'Reference',
          items: [
            page('Actions', 'reference/actions'),
            page('Commands', 'reference/cli'),
            page('MCP tools', 'reference/mcp'),
            page('HTTP and XRPC API', 'reference/api'),
            page('Workflow files', 'reference/workflows'),
            page('knotless-run internals', 'reference/runner-internals'),
            page('Performance', 'reference/performance'),
            page('Observability', 'observability'),
          ],
        },
        {
          label: 'Design',
          items: [
            page('Overview', 'design'),
            page('Storage', 'design/storage'),
            page('Naming and identity', 'design/identity'),
            page('Access', 'design/access'),
            page('Gateway', 'design/gateway'),
            page('Pulls, issues and moderation', 'design/collaboration'),
            page('knotless-serve', 'design/serve'),
            page('knotless-run', 'design/runner'),
            page('Shared steps', 'design/reusable-workflows'),
            page('The merge queue', 'design/merge-queue'),
            page('Releases', 'design/packages'),
            page('Integrity and trust', 'design/security'),
            page('Prior art', 'design/prior-art'),
          ],
        },
        { label: 'Contributing', items: [page('Development', 'development')] },
      ],
    }),
  ],
})