mcwaddams-site/astro.config.mjs
Ryan Malloy 32b41f79d9 Initial mcwaddams documentation site
Astro + Starlight documentation site for mcwaddams MCP server.

Features:
- Diátaxis documentation structure (tutorials, how-to, reference, explanation)
- Office Space theming (Milton Waddams, TPS Reports, red Swingline)
- 29 documentation pages covering all 20 tools
- TPS Reports section for test results
- Flair gamification config (pieces of documentation flair)
- Custom CSS with Office Space color scheme

Structure:
- Getting Started: backstory, installation, quickstart
- Tutorials: first extraction, legacy formats, indexing, resources
- How-To: tables, Excel analysis, markdown, pagination, URLs
- Reference: all tools, universal/word/excel tools, MCP resources, formats
- Explanation: architecture, mixins, fallbacks, resource system
- TPS Reports: dashboard, coverage, torture tests
- Community: credits, feedback, leaderboard
2026-01-11 12:21:49 -07:00

121 lines
3.6 KiB
JavaScript

// @ts-check
import { defineConfig } from 'astro/config';
import starlight from '@astrojs/starlight';
import tailwindcss from '@tailwindcss/vite';
// https://astro.build/config
export default defineConfig({
vite: {
plugins: [tailwindcss()],
},
integrations: [
starlight({
title: 'mcwaddams',
tagline: 'I was told there would be document extraction.',
logo: {
src: './src/assets/stapler.svg',
replacesTitle: false,
},
social: [
{ icon: 'github', label: 'GitHub', href: 'https://github.com/ryanmalloy/mcwaddams' },
],
customCss: [
'./src/styles/custom.css',
],
head: [
{
tag: 'meta',
attrs: {
name: 'theme-color',
content: '#b91c1c',
},
},
],
sidebar: [
{
label: 'Getting Started',
items: [
{ label: 'The Backstory', slug: 'backstory' },
{ label: 'Installation', slug: 'installation' },
{ label: 'Quick Start', slug: 'quickstart' },
],
},
{
label: 'Tutorials',
badge: { text: 'Learn', variant: 'tip' },
items: [
{ label: 'Your First Extraction', slug: 'tutorials/first-extraction' },
{ label: 'Working with Legacy Formats', slug: 'tutorials/legacy-formats' },
{ label: 'Indexing Large Documents', slug: 'tutorials/indexing' },
{ label: 'Using MCP Resources', slug: 'tutorials/resources' },
],
},
{
label: 'How-To Guides',
badge: { text: 'Solve', variant: 'note' },
items: [
{ label: 'Extract Tables from Word', slug: 'how-to/extract-tables' },
{ label: 'Analyze Excel Data', slug: 'how-to/analyze-excel' },
{ label: 'Convert to Markdown', slug: 'how-to/convert-markdown' },
{ label: 'Handle Pagination', slug: 'how-to/pagination' },
{ label: 'Process URLs', slug: 'how-to/url-processing' },
],
},
{
label: 'Reference',
badge: { text: 'Look Up', variant: 'caution' },
items: [
{ label: 'All Tools', slug: 'reference/tools' },
{ label: 'Universal Tools', slug: 'reference/universal-tools' },
{ label: 'Word Tools', slug: 'reference/word-tools' },
{ label: 'Excel Tools', slug: 'reference/excel-tools' },
{ label: 'MCP Resources', slug: 'reference/resources' },
{ label: 'Format Support', slug: 'reference/formats' },
],
},
{
label: 'Explanation',
badge: { text: 'Understand', variant: 'success' },
items: [
{ label: 'Architecture', slug: 'explanation/architecture' },
{ label: 'Why Mixins?', slug: 'explanation/mixins' },
{ label: 'Fallback Strategy', slug: 'explanation/fallbacks' },
{ label: 'Resource System', slug: 'explanation/resource-system' },
],
},
{
label: 'TPS Reports',
badge: { text: 'Testing Painful Stuff', variant: 'danger' },
items: [
{ label: 'Test Dashboard', slug: 'tps/dashboard' },
{ label: 'Coverage Report', slug: 'tps/coverage' },
{ label: 'Torture Tests', slug: 'tps/torture' },
],
},
{
label: 'Community',
items: [
{ label: 'Feedback', slug: 'community/feedback' },
{ label: 'Flair Leaderboard', slug: 'community/leaderboard' },
{ label: 'Credits', slug: 'community/credits' },
],
},
],
editLink: {
baseUrl: 'https://github.com/ryanmalloy/mcwaddams-site/edit/main/',
},
lastUpdated: true,
pagination: true,
tableOfContents: { minHeadingLevel: 2, maxHeadingLevel: 4 },
expressiveCode: {
themes: ['dracula', 'github-light'],
styleOverrides: {
borderRadius: '0.5rem',
},
},
}),
],
telemetry: false,
devToolbar: { enabled: false },
});