Skip to content
Draft
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
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,8 @@
"css.validate": false,
"search.exclude": {
"pnpm-lock.yaml": true
},
"files.exclude": {
"**/*.tsbuildinfo": true
}
}
8 changes: 7 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
"docs:twoslash": "NODE_ENV=production node --import tsx/esm ./src/cli/index.ts twoslash",
"docs:preview": "node --import tsx/esm ./src/cli/index.ts preview",
"playground": "pnpm --filter playgrounds-default dev",
"bench:generate-pages": "tsx scripts/generate-bench-playground.ts 500",
"preconstruct": "tsx scripts/preconstruct.ts",
"prepare": "simple-git-hooks"
},
Expand All @@ -42,10 +43,15 @@
"viem": "^2.38.3",
"vocs": "workspace:*"
},
"pnpm": {
"overrides": {
"vite": "8.0.0-beta.0"
}
},
"simple-git-hooks": {
"pre-commit": "pnpm check"
},
"packageManager": "pnpm@10.19.0",
"packageManager": "pnpm@10.24.0",
"engines": {
"node": ">=22"
}
Expand Down
19 changes: 19 additions & 0 deletions playgrounds/bench/docs/pages/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
layout: minimal
showLogo: false
---

import { HomePage } from 'vocs/components'

<meta name="foo" content="bar" />

<HomePage.Root>
<HomePage.Logo />
<HomePage.Tagline>Documentation Framework powered by Vite and React</HomePage.Tagline>
<HomePage.InstallPackage name="vocs" type="init" />
<HomePage.Description>Vocs is a minimalistic documentation generator designed to supercharge your documentation workflow, built with modern web technologies.</HomePage.Description>
<HomePage.Buttons>
<HomePage.Button href="/bench" variant="accent">Get started</HomePage.Button>
<HomePage.Button href="https://github.com/wevm/vocs">GitHub</HomePage.Button>
</HomePage.Buttons>
</HomePage.Root>
19 changes: 19 additions & 0 deletions playgrounds/bench/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"name": "playgrounds-bench",
"version": "0.0.0",
"private": true,
"type": "module",
"scripts": {
"dev": "node --import tsx/esm ../../src/cli/index.ts dev",
"build": "NODE_ENV=production node --import tsx/esm ../../src/cli/index.ts build",
"preview": "node --import tsx/esm ../../src/cli/index.ts preview",
"dist:dev": "vocs dev",
"dist:build": "NODE_ENV=production vocs build",
"dist:preview": "vocs preview"
},
"dependencies": {
"react": "catalog:",
"react-dom": "catalog:",
"vocs": "workspace:*"
}
}
49 changes: 49 additions & 0 deletions playgrounds/bench/vocs.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import { readdirSync } from 'node:fs'
import { extname, resolve } from 'node:path'

import { defineConfig } from '../../src/index.js'

function benchSidebarItems() {
try {
const benchDir = resolve(import.meta.dirname, './docs/pages/bench')
const files = readdirSync(benchDir).filter((file) => ['.md', '.mdx'].includes(extname(file)))

const items = files
.filter((file: string) => file !== 'index.mdx' && file !== 'index.md')
.sort()
.map((file) => {
const slug = file.replace(extname(file), '')
return {
text: slug,
link: `/bench/${slug}`,
}
})

return {
count: items.length,
items,
}
} catch {
return { count: 0, items: [] }
}
}

const benchSidebar = benchSidebarItems()

export default defineConfig({
sidebar: [
{
text: 'Introduction',
link: '/docs',
},
{
text: `Bench (${benchSidebar.count || '0'})`,
collapsed: true,
items: [{ text: 'Index', link: '/bench' }, ...benchSidebar.items],
},
],
theme: {
accentColor: 'red',
},
title: 'Awesome Docs',
})
Loading
Loading