|
1 | 1 | # Agent Guidelines for Pásame el Código |
2 | 2 |
|
3 | | -## Build & Test Commands |
4 | | -- **Dev**: `pnpm dev` or `pnpm start` - Start development server at http://localhost:4321 |
5 | | -- **Build**: `pnpm build` - Runs TypeScript checks (`astro check`) then builds (includes prebuild IndexNow script) |
6 | | -- **Format**: `pnpm format` - Format all files with Prettier (MUST run before committing) |
7 | | -- **Preview**: `pnpm preview` - Preview production build locally |
8 | | -- **Type Check**: `astro check` - Run TypeScript type checking without building |
9 | | -- **No Tests**: This project has no test suite; validation is done via TypeScript and build process |
10 | | - |
11 | | -## Code Style & Conventions |
12 | | -- **Framework**: Astro 5 with Starlight documentation theme, TypeScript strict mode enabled |
13 | | -- **Formatting**: Prettier with `prettier-plugin-astro` and `prettier-plugin-tailwindcss` - auto-formats `.astro`, `.ts`, `.mdx` |
14 | | -- **Imports**: Use TypeScript path aliases from `tsconfig.json`: `@components/*`, `@code/*`, `@ejemplos/*`, `@assets/*` |
15 | | -- **Naming**: kebab-case for files/dirs, PascalCase for components, camelCase for variables/functions |
16 | | -- **Types**: Always use explicit types; leverage strict mode; prefer interfaces over types for data structures |
17 | | -- **Error Handling**: No specific pattern; errors should surface during build with TypeScript or Astro checks |
18 | | -- **Comments**: Spanish comments for important notes or complex logic; keep inline docs minimal |
19 | | - |
20 | | -## Git Commit Convention |
21 | | -- Use conventional commits: `feat:`, `fix:`, `chore:`, `docs:` prefixes (see recent git log) |
| 3 | +## Environment |
| 4 | +- **Node**: v24.16.0 (see `.node-version`) |
| 5 | +- **Package manager**: `pnpm` only (lockfile is `pnpm-lock.yaml`) |
| 6 | +- **Env**: `.env` contains `INDEXNOW_KEY` used by the prebuild script to create a verification file under `public/` |
| 7 | + |
| 8 | +## Commands |
| 9 | +- **Dev**: `pnpm dev` → dev server at http://localhost:4321 |
| 10 | +- **Build**: `pnpm build` → runs `indexnow.js` prebuild, then `astro check` + `astro build` |
| 11 | +- **Format**: `pnpm format` → Prettier (run before committing) |
| 12 | +- **Type check only**: `astro check` |
| 13 | +- **No test suite** — validation is via TypeScript + build |
| 14 | + |
| 15 | +## Framework & Tooling |
| 16 | +- **Astro 6** + Starlight 0.39 (static output, Vercel adapter) |
| 17 | +- **TypeScript strict mode** (extends `astro/tsconfigs/strict`) |
| 18 | +- **Path aliases**: `@components/*`, `@code/*`, `@ejemplos/*`, `@assets/*` (see `tsconfig.json`) |
| 19 | +- **Styling**: Tailwind CSS 4 via `@tailwindcss/vite` Vite plugin + custom CSS in `src/styles/global.css` and `src/assets/custom.css` |
| 20 | + |
| 21 | +## Content (MDX) |
| 22 | +- All content, docs, comments, commits, and PRs in **Spanish** |
| 23 | +- Content lives in `src/content/docs/`, organized by subject: `prouno`, `prodos`, `algo`, `deese`, `pepe`, `bede`, `eseo`, `intro`, `opensource` |
| 24 | +- Frontmatter: `title` and `description` fields are standard |
| 25 | +- Supports MathJax (`remark-math` / `rehype-mathjax`) and Mermaid diagrams |
| 26 | +- Docs license: CC BY 4.0; individual code examples may have their own license (check file headers for `@license` / `SPDX-License-Identifier`) |
| 27 | + |
| 28 | +## Custom Code Block Features |
| 29 | +- **`withOutput` meta**: Add to a code fence to separate code from expected output. Lines starting with `> ` are shown as code; lines after a blank line become output rendered in a separate `pre.output` block. See `src/ec-output-plugin.ts`. |
| 30 | +- **Pseudocódigo language**: A custom Shiki language defined in `src/pseudocodigo.json`, loaded in `astro.config.mjs`. Use `` ```pseudocodigo `` in MDX files. |
| 31 | + |
| 32 | +## Git Conventions |
| 33 | +- Conventional commits: `feat:`, `fix:`, `chore:`, `docs:` |
22 | 34 | - All commit messages and PR descriptions in Spanish |
23 | | -- Examples: `feat: add X feature`, `fix: correct Y behavior`, `chore: update dependencies` |
24 | | - |
25 | | -## Content & Documentation |
26 | | -- **Language**: ALL content, docs, comments, and commits in Spanish (this is a Spanish-language educational site) |
27 | | -- **Location**: Content lives in `src/content/docs/` organized by subject (prouno, prodos, algo, deese, pepe, bede, eseo) |
28 | | -- **Format**: Use MDX with YAML frontmatter; supports math (MathJax via remark-math/rehype-mathjax) and diagrams (Mermaid) |
29 | | -- **Licenses**: Documentation under CC BY 4.0; code examples may have individual licenses (check file headers) |
30 | | - |
31 | | -## Important Context |
32 | | -- Open-source educational site for University of A Coruña Computer Engineering degree courses |
33 | | -- Uses Starlight plugins: heading badges, sidebar topics, DocSearch (Algolia), link validator |
34 | | -- Custom Expressive Code plugin for code output (`src/ec-output-plugin.ts`) |
35 | | -- Deployed to Vercel with analytics (Vercel Web Analytics + Umami self-hosted) |
36 | | -- See CONTRIBUTING.md for contribution guidelines |
| 35 | + |
| 36 | +## Starlight Plugins |
| 37 | +- heading badges, sidebar topics, Algolia DocSearch, link validator (invalid hashes set to warn, not error), Mermaid |
| 38 | +- Custom override: `SkipLink` component at `src/components/SkipLink.astro` |
| 39 | + |
| 40 | +## Deployment |
| 41 | +- Vercel with static output + Vercel Web Analytics |
| 42 | +- Site: https://pc.pablopl.dev |
| 43 | +- CI (`.github/workflows/indexing.yml`): on push to `main`, waits for Vercel deploy, then submits to Bing IndexNow and Google Indexing API |
0 commit comments