Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ packages/kit/skills
devframe/packages/devframe/skills
.rolldown
*.tsbuildinfo
docs/.vitepress/cache
**/.vitepress/cache
.turbo
.context

Expand Down
62 changes: 59 additions & 3 deletions devframe/docs/.vitepress/config.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,70 @@
import type { DefaultTheme } from 'vitepress'
import { fileURLToPath } from 'node:url'
import { globSync } from 'tinyglobby'
import { defineConfig } from 'vitepress'
import { withMermaid } from 'vitepress-plugin-mermaid'
import devframeSidebar from './sidebar'

const errorsDir = fileURLToPath(new URL('../errors/', import.meta.url))

function listErrorCodes(prefix: string): string[] {
return globSync(`${prefix}*.md`, { cwd: errorsDir })
.map(f => f.replace(/\.md$/, ''))
.sort()
}

function guideItems(prefix: string): DefaultTheme.NavItemWithLink[] {
return [
{ text: 'Introduction', link: `${prefix}/guide/` },
{ text: 'Devtool Definition', link: `${prefix}/guide/devtool-definition` },
{ text: 'Adapters', link: `${prefix}/guide/adapters` },
{ text: 'RPC', link: `${prefix}/guide/rpc` },
{ text: 'Shared State', link: `${prefix}/guide/shared-state` },
{ text: 'Streaming', link: `${prefix}/guide/streaming` },
{ text: 'Dock System', link: `${prefix}/guide/dock-system` },
{ text: 'Commands', link: `${prefix}/guide/commands` },
{ text: 'When Clauses', link: `${prefix}/guide/when-clauses` },
{ text: 'Messages & Notifications', link: `${prefix}/guide/messages` },
{ text: 'Structured Diagnostics', link: `${prefix}/guide/diagnostics` },
{ text: 'Terminals', link: `${prefix}/guide/terminals` },
{ text: 'Client', link: `${prefix}/guide/client` },
{ text: 'Standalone CLI', link: `${prefix}/guide/standalone-cli` },
{ text: 'Nuxt Helper', link: `${prefix}/guide/nuxt` },
{ text: 'Agent-Native (experimental)', link: `${prefix}/guide/agent-native` },
]
}

export function devframeSidebar(prefix = ''): DefaultTheme.SidebarItem[] {
return [
{
text: 'Guide',
items: guideItems(prefix),
},
{
text: 'Error Reference',
link: `${prefix}/errors/`,
collapsed: true,
items: listErrorCodes('DF').map(code => ({
text: code,
link: `${prefix}/errors/${code}`,
})),
},
]
}

export function devframeNav(prefix = ''): DefaultTheme.NavItemWithLink[] {
return [
...guideItems(prefix),
{ text: 'Error Reference', link: `${prefix}/errors/` },
]
}

export default withMermaid(defineConfig({
title: 'DevFrame',
description: 'Framework-neutral foundation for building generic DevTools — RPC layer, hosts, and adapters.',
themeConfig: {
nav: [
{ text: 'Guide', link: '/guide/' },
{ text: 'Errors', link: '/errors/' },
{ text: 'Guide', items: guideItems('') },
{ text: 'Error Reference', link: '/errors/' },
],
sidebar: devframeSidebar(),
search: {
Expand Down
36 changes: 0 additions & 36 deletions devframe/docs/.vitepress/sidebar.ts

This file was deleted.

1 change: 1 addition & 0 deletions devframe/docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"devDependencies": {
"devframe": "workspace:*",
"mermaid": "catalog:docs",
"tinyglobby": "catalog:deps",
"vitepress": "catalog:docs",
"vitepress-plugin-mermaid": "catalog:docs"
}
Expand Down
29 changes: 19 additions & 10 deletions docs/.vitepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,26 @@ import { resolve } from 'node:path'
import { fileURLToPath } from 'node:url'
import { transformerTwoslash } from '@shikijs/vitepress-twoslash'
import { extendConfig } from '@voidzero-dev/vitepress-theme/config'
import { globSync } from 'tinyglobby'
import { defineConfig } from 'vitepress'
import {
groupIconMdPlugin,
groupIconVitePlugin,
} from 'vitepress-plugin-group-icons'
import { withMermaid } from 'vitepress-plugin-mermaid'
import devframeSidebar from '../../devframe/docs/.vitepress/sidebar'
import { devframeNav, devframeSidebar } from '../../devframe/docs/.vitepress/config'
import { version } from '../../package.json'

const repoRoot = resolve(fileURLToPath(new URL('.', import.meta.url)), '../..')

const errorsDir = fileURLToPath(new URL('../errors/', import.meta.url))

function listErrorCodes(prefix: string): string[] {
return globSync(`${prefix}*.md`, { cwd: errorsDir })
.map(f => f.replace(/\.md$/, ''))
.sort()
}

const DevToolsKitNav = [
{ text: 'Introduction', link: '/kit/' },
{ text: 'DevTools Plugin', link: '/kit/devtools-plugin' },
Expand Down Expand Up @@ -89,7 +98,7 @@ export default extendConfig(withMermaid(defineConfig({
text: 'DevTools Kit',
items: DevToolsKitNav,
},
{ text: 'DevFrame', link: '/devframe/' },
{ text: 'DevFrame', items: devframeNav('/devframe') },
{
text: `v${version}`,
items: [
Expand Down Expand Up @@ -142,18 +151,18 @@ export default extendConfig(withMermaid(defineConfig({
{
text: 'DevTools Kit (DTK)',
collapsed: true,
items: Array.from({ length: 32 }, (_, i) => {
const code = `DTK${String(i + 1).padStart(4, '0')}`
return { text: code, link: `/errors/${code}` }
}),
items: listErrorCodes('DTK').map(code => ({
text: code,
link: `/errors/${code}`,
})),
},
{
text: 'Rolldown DevTools (RDDT)',
collapsed: true,
items: [
{ text: 'RDDT0001', link: '/errors/RDDT0001' },
{ text: 'RDDT0002', link: '/errors/RDDT0002' },
],
items: listErrorCodes('RDDT').map(code => ({
text: code,
link: `/errors/${code}`,
})),
},
],
},
Expand Down
1 change: 1 addition & 0 deletions docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"@voidzero-dev/vitepress-theme": "catalog:docs",
"devframe": "workspace:*",
"mermaid": "catalog:docs",
"tinyglobby": "catalog:deps",
"vitepress": "catalog:docs",
"vitepress-plugin-group-icons": "catalog:docs",
"vitepress-plugin-mermaid": "catalog:docs"
Expand Down
Loading
Loading