| .. | ||
| .vscode | ||
| e2e | ||
| public | ||
| src | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .prettierrc.json | ||
| eslint.config.js | ||
| index.html | ||
| jsconfig.json | ||
| package.json | ||
| playwright.config.js | ||
| README.md | ||
| vite.config.js | ||
| vitest.config.js | ||
| 需求文档-浏览器书签导入功能.md | ||
Bookmark SPA
Bookmark SPA is a single-page application for organising and searching personal web links. It provides a global search launcher, bookmark management, JSON import/export, and local persistence via IndexedDB.
Features
- Global search modal powered by Fuse.js with fuzzy, multi-keyword, and pinyin-initial matching
- Configurable keyboard shortcut (default
Ctrl+K) with inline capture UI - Bookmark CRUD UI with Element Plus forms, tag support, and visit tracking
- Recent activity section and full bookmark library view
- Local storage via Dexie/IndexedDB plus JSON import/export helpers
- Responsive glassmorphism layout built with Vue 3, Pinia, and Sass modules
Tech Stack
- Vue 3 + Vite + Element Plus UI
- Pinia state management
- Dexie for IndexedDB access
- Fuse.js + pinyin-pro for search indexing
- Playwright & Vitest for automated testing
Getting Started
npm install # install dependencies
npm run dev # start Vite dev server
npm run build # production build
npm run preview # preview production build
Quality Tooling
npm run lint # ESLint with autofix
npm run test:unit # Vitest unit tests
npm run test:e2e # Playwright end-to-end tests
First-time Playwright users should install browsers with
npx playwright install.
Keyboard Shortcuts
Ctrl+K(default): open the global search launcher (configurable in the Settings drawer)Esc: close the search modal- Arrow keys &
Enter: navigate and open search results
Project Structure Highlights
src/components/layout, search, link, and settings componentssrc/stores/Pinia stores for links and settingssrc/services/db.jsDexie database schemasrc/views/HomeView.vuemain landing page usingAppShellsrc/composables/useSearchEngine.jssearch index and ranking logic