feat: add landing page and docs website (#537)
* feat: add landing page and docs website package Add packages/website — a Vue 3 + Naive UI static site with landing page and documentation, sharing the Pure Ink monochrome design with the main app. Features: particle network hero animation, screenshot carousel, feature grid, install guide tabs, GitHub star history, scroll reveal animations, and Chinese/English bilingual support. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore: add favicon to website package Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix: use dynamic theme param for star history chart Switch from CSS media query to JS-based dark mode detection so the star-history SVG matches the current theme toggle state. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix: resolve TypeScript strict mode errors in website components - Remove unused isDark import in HeroSection - Add null check for canvas parent element - Rename unused img loop variable in ScreenshotsSection - Remove unused NIcon import in SiteHeader Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix: resolve TS narrowing errors in canvas resize closure Use canvasRef.value directly inside resize() with local null check instead of relying on outer closure narrowing. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
import { createRouter, createWebHashHistory } from 'vue-router'
|
||||
|
||||
const EmptyView = { render: () => null }
|
||||
|
||||
const router = createRouter({
|
||||
history: createWebHashHistory(),
|
||||
routes: [
|
||||
{
|
||||
path: '/',
|
||||
name: 'landing',
|
||||
component: () => import('@/views/LandingView.vue'),
|
||||
},
|
||||
{
|
||||
path: '/docs',
|
||||
name: 'docs',
|
||||
component: () => import('@/views/DocsView.vue'),
|
||||
redirect: { name: 'docs.getting-started' },
|
||||
children: [
|
||||
{
|
||||
path: 'getting-started',
|
||||
name: 'docs.getting-started',
|
||||
component: EmptyView,
|
||||
meta: { page: 'gettingStarted' },
|
||||
},
|
||||
{
|
||||
path: 'configuration',
|
||||
name: 'docs.configuration',
|
||||
component: EmptyView,
|
||||
meta: { page: 'configuration' },
|
||||
},
|
||||
{
|
||||
path: 'features',
|
||||
name: 'docs.features',
|
||||
component: EmptyView,
|
||||
meta: { page: 'features' },
|
||||
},
|
||||
{
|
||||
path: 'platforms',
|
||||
name: 'docs.platforms',
|
||||
component: EmptyView,
|
||||
meta: { page: 'platforms' },
|
||||
},
|
||||
{
|
||||
path: 'api',
|
||||
name: 'docs.api',
|
||||
component: EmptyView,
|
||||
meta: { page: 'api' },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: '/:pathMatch(.*)*',
|
||||
redirect: '/',
|
||||
},
|
||||
],
|
||||
scrollBehavior() {
|
||||
return { top: 0 }
|
||||
},
|
||||
})
|
||||
|
||||
export default router
|
||||
Reference in New Issue
Block a user