Move docs to packages/docs, add Cloudflare Pages deploy

- Move docs/ → packages/docs/ as @open-pencil/docs workspace package
- Add screenshot.png as hero image on landing page
- Add GitHub Actions workflow for Cloudflare Pages deploy (openpencil.dev)
- Remove vitepress from root devDependencies
- Root docs:* scripts delegate via bun --filter
This commit is contained in:
Danila Poyarkov 2026-03-01 15:16:16 +03:00
parent 5b7de9fe99
commit 96d8ab5789
36 changed files with 61 additions and 10 deletions

29
.github/workflows/docs.yml vendored Normal file
View file

@ -0,0 +1,29 @@
name: Deploy docs
on:
push:
branches: [master]
paths:
- 'packages/docs/**'
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
permissions:
contents: read
deployments: write
steps:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v2
- run: bun install --frozen-lockfile
- run: bun run --filter @open-pencil/docs build
- uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
command: pages deploy packages/docs/.vitepress/dist --project-name=openpencil-docs

3
.gitignore vendored
View file

@ -29,4 +29,5 @@ test-results/
# Git worktrees for parallel agent work
.worktrees/
.env
docs/.vitepress/cache/
packages/docs/.vitepress/cache/
packages/docs/.vitepress/dist/

View file

@ -50,7 +50,6 @@
"unplugin-icons": "^23.0.1",
"unplugin-vue-components": "^31.0.0",
"vite": "^7.0.4",
"vitepress": "^1.6.4",
},
},
"packages/cli": {
@ -84,6 +83,13 @@
"typescript": "~5.8.3",
},
},
"packages/docs": {
"name": "@open-pencil/docs",
"version": "0.1.0",
"devDependencies": {
"vitepress": "^1.6.4",
},
},
},
"packages": {
"@ai-sdk/gateway": ["@ai-sdk/gateway@3.0.59", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.16", "@vercel/oidc": "3.1.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-MbtheWHgEFV/8HL1Z6E3hOAsmP73zZlNFg0F0nJAD0Adnjp4J/plqNK00Y896d+dWTw+r0OXzyov9/2wCFjH0Q=="],
@ -254,6 +260,8 @@
"@open-pencil/core": ["@open-pencil/core@workspace:packages/core"],
"@open-pencil/docs": ["@open-pencil/docs@workspace:packages/docs"],
"@openrouter/ai-sdk-provider": ["@openrouter/ai-sdk-provider@2.2.3", "", { "peerDependencies": { "ai": "^6.0.0", "zod": "^3.25.0 || ^4.0.0" } }, "sha512-NovC+BaCfEeJwhToDrs8JeDYXXlJdEyz7lcxkjtyePSE4eoAKik872SyDK0MzXKcz8MRkv7XlNhPI6zz4TQp0g=="],
"@opentelemetry/api": ["@opentelemetry/api@1.9.0", "", {}, "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg=="],

View file

@ -23,9 +23,9 @@
"test:coverage": "bun test --coverage ./tests/engine",
"test:dupes": "jscpd packages/core/src packages/cli/src src --min-lines 5 --min-tokens 50 --format typescript",
"open-pencil": "bun packages/cli/src/index.ts",
"docs:dev": "vitepress dev docs",
"docs:build": "vitepress build docs",
"docs:preview": "vitepress preview docs"
"docs:dev": "bun --filter @open-pencil/docs dev",
"docs:build": "bun --filter @open-pencil/docs build",
"docs:preview": "bun --filter @open-pencil/docs preview"
},
"dependencies": {
"@ai-sdk/openai": "^3.0.37",
@ -72,7 +72,6 @@
"typescript": "~5.8.3",
"unplugin-icons": "^23.0.1",
"unplugin-vue-components": "^31.0.0",
"vite": "^7.0.4",
"vitepress": "^1.6.4"
"vite": "^7.0.4"
}
}

View file

@ -100,7 +100,7 @@ export default defineConfig({
],
editLink: {
pattern: 'https://github.com/dannote/open-pencil/edit/main/docs/:path',
pattern: 'https://github.com/dannote/open-pencil/edit/main/packages/docs/:path',
},
footer: {

View file

@ -7,8 +7,8 @@ hero:
text: AI-Native Design Editor
tagline: Open-source Figma alternative. Fully local, AI-native, programmable.
image:
src: /favicon.svg
alt: OpenPencil
src: /screenshot.png
alt: OpenPencil editor with a Material 3 design file open
actions:
- theme: brand
text: Get Started

View file

@ -0,0 +1,14 @@
{
"name": "@open-pencil/docs",
"version": "0.1.0",
"private": true,
"type": "module",
"scripts": {
"dev": "vitepress dev",
"build": "vitepress build",
"preview": "vitepress preview"
},
"devDependencies": {
"vitepress": "^1.6.4"
}
}

View file

Before

Width:  |  Height:  |  Size: 262 B

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 878 KiB