This commit is contained in:
11
AGENTS.md
11
AGENTS.md
@@ -6,7 +6,7 @@ Monorepo for aranroig.com — a personal portfolio website with blog, art galler
|
||||
|
||||
- **Frontend**: Nuxt 4 + Vue 3 + TypeScript + SCSS
|
||||
- **Backend**: Express 5 + Mongoose (MongoDB)
|
||||
- **i18n**: @nuxtjs/i18n (English, Spanish, Catalan)
|
||||
- **i18n**: @nuxtjs/i18n (English, Spanish, Catalan, Chinese)
|
||||
- **Content**: Nuxt Content v3 with Zod-sourced Markdown collections
|
||||
- **Image optimization**: @nuxt/image
|
||||
- **Build**: Vite
|
||||
@@ -27,15 +27,15 @@ Monorepo for aranroig.com — a personal portfolio website with blog, art galler
|
||||
│ │ │ ├── layouts/ # Page layout wrappers
|
||||
│ │ │ ├── parts/ # Header, footer, navigation pieces
|
||||
│ │ │ └── content/ # Blog, art content components
|
||||
│ │ ├── composables/ # useApi(), theme.ts (light/dark + accent colors)
|
||||
│ │ ├── composables/ # useApi(), useAuth(), theme.ts (light/dark + accent colors)
|
||||
│ │ ├── i18n.config.ts# VueI18n fallback locale setup
|
||||
│ │ └── pages/ # File-based routing (index, blog, art, contact)
|
||||
│ │ └── pages/ # File-based routing (index, blog, art, contact, admin)
|
||||
│ ├── content/ # Markdown collections organized by locale
|
||||
│ │ ├── fixed/ # Static pages per locale
|
||||
│ │ ├── blog/ # Blog posts
|
||||
│ │ ├── art/ # Art pieces
|
||||
│ │ └── projects/ # Project cards
|
||||
│ ├── i18n/locales/ # en.json, es.json, ca.json translation files
|
||||
│ ├── i18n/locales/ # en.json, es.json, ca.json, zh.json translation files
|
||||
│ ├── content.config.ts # Content collection schemas (Zod)
|
||||
│ └── nuxt.config.ts # Nuxt config: modules, i18n, runtime config
|
||||
├── docker-compose.yml # Services: nginx, frontend, backend
|
||||
@@ -75,6 +75,7 @@ In `backend/`:
|
||||
- Backend reads `.env.development` or `.env.production` based on `NODE_ENV`. Requires `DB_URI` for MongoDB.
|
||||
- Frontend runtime config key `public.apiBaseUrl` sets the backend API URL used by `useApi()`.
|
||||
- Content lives in `frontend/content/` under collection folders (`blog`, `fixed`, `art`, `projects`), each with locale subdirectories (`en`, `es`, `ca`).
|
||||
- Admin panel lives at `/admin` (login, dashboard, orders), guarded by the `admin-auth` middleware and the `admin_token` cookie. Admin pages share the `AdminLayout` shell with the `AdminSidebar`.
|
||||
|
||||
## Code Style
|
||||
|
||||
@@ -84,6 +85,8 @@ In `backend/`:
|
||||
- File names: kebab-case for components and pages.
|
||||
- CSS variables driven by SCSS maps define themes (light/dark) and accent colors.
|
||||
- TUI aesthetic: box-drawing characters, monospace font (**Hermit** / "Hurmit" via Nerd Fonts), `steps()` easing transitions, pixel-art SVG elements.
|
||||
- Headings and buttons carry no `>` prompt prefix.
|
||||
- Titles use proper capitalization: sentence case with capitalized proper nouns (e.g. "Admin dashboard", "Hibolia orders"), never ALL CAPS.
|
||||
|
||||
## Content Collections
|
||||
|
||||
|
||||
Reference in New Issue
Block a user