Files
Hermes-ui/packages/website/src/router/index.ts
T
ekko 9edb76ac64 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>
2026-05-08 13:36:11 +08:00

62 lines
1.4 KiB
TypeScript

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