From aaa00c170fda7d283ca33be6fff1fb2f557b4d93 Mon Sep 17 00:00:00 2001 From: ajianaz Date: Thu, 16 Jul 2026 18:30:08 +0700 Subject: [PATCH 1/4] feat(theme): adopt @codecora/theme + base /cora/docs/ + retire LandingPage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replace custom indigo theme with @codecora/theme (Catppuccin Mocha) - Migrate config.mts to createConfig() helper - Update base path: /docs/cora/ → /cora/docs/ (new routing scheme) - Remove style.css (indigo overrides → shared green accent) - Remove LandingPage.vue, TerminalDemo.vue, FadeIn.vue, TypingText.vue (marketing now lives in web-landing repo) - Accent: green --- docs/.vitepress/config.mts | 104 ++-- docs/.vitepress/theme/components/FadeIn.vue | 58 --- .../theme/components/LandingPage.vue | 488 ------------------ .../theme/components/TerminalDemo.vue | 166 ------ .../theme/components/TypingText.vue | 66 --- docs/.vitepress/theme/index.ts | 13 +- docs/.vitepress/theme/style.css | 41 -- docs/package-lock.json | 15 + docs/package.json | 1 + 9 files changed, 51 insertions(+), 901 deletions(-) delete mode 100644 docs/.vitepress/theme/components/FadeIn.vue delete mode 100644 docs/.vitepress/theme/components/LandingPage.vue delete mode 100644 docs/.vitepress/theme/components/TerminalDemo.vue delete mode 100644 docs/.vitepress/theme/components/TypingText.vue delete mode 100644 docs/.vitepress/theme/style.css diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index 3f4037f..358f66a 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -1,81 +1,43 @@ -import { defineConfig } from 'vitepress' +import { createConfig } from '@codecora/theme/vitepress/config' -export default defineConfig({ +export default createConfig({ + product: 'cora', title: 'Cora', description: 'AI-Powered Code Review CLI — BYOK, zero config, runs in your terminal', - base: '/docs/cora/', - + accent: 'green', + repo: 'cora-cli', head: [ - ['link', { rel: 'icon', type: 'image/svg+xml', href: '/favicon.svg' }], - ['link', { rel: 'alternate icon', type: 'image/png', href: '/favicon.png' }], - ['meta', { name: 'theme-color', content: '#6366f1' }], - ['meta', { property: 'og:type', content: 'website' }], ['meta', { property: 'og:title', content: 'Cora — AI Code Review CLI' }], ['meta', { property: 'og:description', content: 'BYOK, zero config, runs in your terminal' }], - ['meta', { property: 'og:image', content: 'https://codecora.dev/docs/cora/og.png' }], - ['meta', { property: 'og:url', content: 'https://codecora.dev/docs/cora/' }], ], - - themeConfig: { - logo: '/logo.svg', - - nav: [ - { text: 'Codecora', link: 'https://codecora.dev' }, - { text: 'Docs', link: '/getting-started' }, - { text: 'Examples', link: '/examples' }, - { text: 'Changelog', link: '/changelog' }, - { text: 'GitHub', link: 'https://github.com/codecoradev/cora-cli' }, - ], - - sidebar: { - '/': [ - { - text: 'Getting Started', - items: [ - { text: 'Quick Start', link: '/getting-started' }, - { text: 'Installation', link: '/installation' }, - ], - }, - { - text: 'Guides', - items: [ - { text: 'Usage', link: '/usage' }, - { text: 'Configuration', link: '/configuration' }, - { text: 'Providers', link: '/providers' }, - { text: 'CLI Reference', link: '/cli-reference' }, - { text: 'Examples', link: '/examples' }, - ], - }, - { - text: 'Project', - items: [ - { text: 'Changelog', link: '/changelog' }, - { text: 'Roadmap', link: '/roadmap' }, - ], - }, - ], - }, - - search: { - provider: 'local', - }, - - socialLinks: [ - { icon: 'github', link: 'https://github.com/codecoradev/cora-cli' }, - ], - - footer: { - message: 'Released under the MIT License.', - copyright: '© 2025-present codecoradev', - }, - - editLink: { - pattern: 'https://github.com/codecoradev/cora-cli/edit/develop/docs/:path', - text: 'Edit this page on GitHub', - }, - }, - lastUpdated: true, - ignoreDeadLinks: [/^https?:\/\/localhost/], + sidebar: { + '/': [ + { + text: 'Getting Started', + items: [ + { text: 'Quick Start', link: '/getting-started' }, + { text: 'Installation', link: '/installation' }, + ], + }, + { + text: 'Guides', + items: [ + { text: 'Usage', link: '/usage' }, + { text: 'Configuration', link: '/configuration' }, + { text: 'Providers', link: '/providers' }, + { text: 'CLI Reference', link: '/cli-reference' }, + { text: 'Examples', link: '/examples' }, + ], + }, + { + text: 'Project', + items: [ + { text: 'Changelog', link: '/changelog' }, + { text: 'Roadmap', link: '/roadmap' }, + ], + }, + ], + }, }) diff --git a/docs/.vitepress/theme/components/FadeIn.vue b/docs/.vitepress/theme/components/FadeIn.vue deleted file mode 100644 index 7c13e79..0000000 --- a/docs/.vitepress/theme/components/FadeIn.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - diff --git a/docs/.vitepress/theme/components/LandingPage.vue b/docs/.vitepress/theme/components/LandingPage.vue deleted file mode 100644 index 976b3ff..0000000 --- a/docs/.vitepress/theme/components/LandingPage.vue +++ /dev/null @@ -1,488 +0,0 @@ - - - - - diff --git a/docs/.vitepress/theme/components/TerminalDemo.vue b/docs/.vitepress/theme/components/TerminalDemo.vue deleted file mode 100644 index 46d440b..0000000 --- a/docs/.vitepress/theme/components/TerminalDemo.vue +++ /dev/null @@ -1,166 +0,0 @@ - - - - - diff --git a/docs/.vitepress/theme/components/TypingText.vue b/docs/.vitepress/theme/components/TypingText.vue deleted file mode 100644 index 91e618d..0000000 --- a/docs/.vitepress/theme/components/TypingText.vue +++ /dev/null @@ -1,66 +0,0 @@ - - - - - diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts index c736be7..4ed2add 100644 --- a/docs/.vitepress/theme/index.ts +++ b/docs/.vitepress/theme/index.ts @@ -1,13 +1,4 @@ import DefaultTheme from 'vitepress/theme' -import { h } from 'vue' -import LandingPage from './components/LandingPage.vue' -import './style.css' +import '@codecora/theme/vitepress/style.css' -export default { - extends: DefaultTheme, - Layout() { - return h(DefaultTheme.Layout, null, { - 'home-hero-before': () => h(LandingPage), - }) - }, -} +export default { extends: DefaultTheme } diff --git a/docs/.vitepress/theme/style.css b/docs/.vitepress/theme/style.css deleted file mode 100644 index c07774c..0000000 --- a/docs/.vitepress/theme/style.css +++ /dev/null @@ -1,41 +0,0 @@ -/* cora brand overrides — dark-first */ -:root { - --vp-c-brand-1: #818cf8; - --vp-c-brand-2: #6366f1; - --vp-c-brand-3: #4f46e5; - --vp-c-brand-soft: rgba(99, 102, 241, 0.14); -} - -/* Dark mode (default) */ -.dark { - --vp-c-brand-1: #a5b4fc; - --vp-c-brand-2: #818cf8; - --vp-c-brand-3: #6366f1; - --vp-c-brand-soft: rgba(129, 140, 248, 0.14); -} - -/* Hero gradient */ -.VPHero .name clip { - background: linear-gradient(135deg, #818cf8, #c084fc); - -webkit-background-clip: text; - background-clip: text; -} - -/* Slightly wider content area */ -.VPDoc .content-container { - max-width: 800px !important; -} - -/* Code blocks — slightly rounded */ -.vp-code-group .tabs { - border-radius: 8px 8px 0 0; -} - -/* Feature grid spacing on landing page */ -.VPFeatures .container { - max-width: 1152px; -} - -.VPFeature { - padding: 16px; -} diff --git a/docs/package-lock.json b/docs/package-lock.json index f02a60a..3284e86 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -6,6 +6,7 @@ "": { "name": "cora-docs", "devDependencies": { + "@codecora/theme": "github:codecoradev/codecora-theme", "vitepress": "^1.6.3", "vue": "^3.5.13" } @@ -296,6 +297,20 @@ "node": ">=6.9.0" } }, + "node_modules/@codecora/theme": { + "version": "0.1.0", + "resolved": "git+ssh://git@github.com/codecoradev/codecora-theme.git#45bcd5886e26fc34e8c1763407e73715e8e9aa95", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "vitepress": "^1.0.0" + }, + "peerDependenciesMeta": { + "vitepress": { + "optional": true + } + } + }, "node_modules/@docsearch/css": { "version": "3.8.2", "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.8.2.tgz", diff --git a/docs/package.json b/docs/package.json index fa37eeb..c8fe4e0 100644 --- a/docs/package.json +++ b/docs/package.json @@ -7,6 +7,7 @@ "docs:preview": "vitepress preview" }, "devDependencies": { + "@codecora/theme": "github:codecoradev/codecora-theme", "vitepress": "^1.6.3", "vue": "^3.5.13" } From ad0c3c0a412767dca08b488002f591315c1b12fb Mon Sep 17 00:00:00 2001 From: ajianaz Date: Thu, 16 Jul 2026 19:08:08 +0700 Subject: [PATCH 2/4] fix(theme): pin to codecora-theme with config.mjs (Node 24 compat) --- docs/package-lock.json | 4 ++-- docs/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index 3284e86..e9017f1 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -6,7 +6,7 @@ "": { "name": "cora-docs", "devDependencies": { - "@codecora/theme": "github:codecoradev/codecora-theme", + "@codecora/theme": "github:codecoradev/codecora-theme#feat/add-ci-workflow", "vitepress": "^1.6.3", "vue": "^3.5.13" } @@ -299,7 +299,7 @@ }, "node_modules/@codecora/theme": { "version": "0.1.0", - "resolved": "git+ssh://git@github.com/codecoradev/codecora-theme.git#45bcd5886e26fc34e8c1763407e73715e8e9aa95", + "resolved": "git+ssh://git@github.com/codecoradev/codecora-theme.git#99ba5594f81127ec33c386c86d80571c4acb085f", "dev": true, "license": "Apache-2.0", "peerDependencies": { diff --git a/docs/package.json b/docs/package.json index c8fe4e0..97ee615 100644 --- a/docs/package.json +++ b/docs/package.json @@ -7,7 +7,7 @@ "docs:preview": "vitepress preview" }, "devDependencies": { - "@codecora/theme": "github:codecoradev/codecora-theme", + "@codecora/theme": "github:codecoradev/codecora-theme#feat/add-ci-workflow", "vitepress": "^1.6.3", "vue": "^3.5.13" } From 570e1610a63ae8c5ae975edb4b59c841da8d73d6 Mon Sep 17 00:00:00 2001 From: ajianaz Date: Thu, 16 Jul 2026 19:18:05 +0700 Subject: [PATCH 3/4] fix(theme): update codecora-theme pin (JSON import assertion fix) --- docs/package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/package-lock.json b/docs/package-lock.json index e9017f1..b99d2dd 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -299,7 +299,7 @@ }, "node_modules/@codecora/theme": { "version": "0.1.0", - "resolved": "git+ssh://git@github.com/codecoradev/codecora-theme.git#99ba5594f81127ec33c386c86d80571c4acb085f", + "resolved": "git+ssh://git@github.com/codecoradev/codecora-theme.git#bbde4c21afd92f7410a21d4a4d8f45f70daddb03", "dev": true, "license": "Apache-2.0", "peerDependencies": { From fc8ac3c1800b0c1da0f2e7aeffcfa789d195f197 Mon Sep 17 00:00:00 2001 From: ajianaz Date: Thu, 16 Jul 2026 19:20:24 +0700 Subject: [PATCH 4/4] fix(docs): escape localhost URL in backticks to prevent dead link error VitePress strict build fails on http://localhost:11434 in providers.md. Wrapping in code ticks prevents the parser from treating it as a link. --- docs/providers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/providers.md b/docs/providers.md index 4eccf7d..3ba2843 100644 --- a/docs/providers.md +++ b/docs/providers.md @@ -13,7 +13,7 @@ cora supports multiple AI providers. Use your own API key — no subscriptions t | OpenAI | `gpt-4o-mini` | `OPENAI_API_KEY` | `OPENAI_BASE_URL` | | Anthropic | `claude-sonnet-4-20250514` | `ANTHROPIC_API_KEY` | `ANTHROPIC_BASE_URL` | | Groq | `llama-3.1-8b-instant` | `GROQ_API_KEY` | `GROQ_BASE_URL` | -| Ollama | `llama3.1` | — (local) | `OLLAMA_HOST` (default: http://localhost:11434) | +| Ollama | `llama3.1` | — (local) | `OLLAMA_HOST` (default: `http://localhost:11434`) | | Z.AI | `glm-5.1` | `ZAI_API_KEY` | `ZAI_BASE_URL` | ## Auto-Detection