Refactor code structure for improved readability and maintainability

This commit is contained in:
2026-10-13 10:18:48 -03:00
parent 5612ad3eed
commit 5786e9cde0
4 changed files with 240 additions and 15 deletions
+53 -15
View File
@@ -80,21 +80,30 @@ El libro vive bajo un directorio raíz de contenido. Se propone:
```
c-programming/
├─ AGENTS.md # este archivo (reglas del proyecto)
├─ README.md # presentación del libro e índice general
└─ book/
├─ 00-introduccion.md
├─ 01-conceptos-basicos.md
├─ 02-variables-y-tipos.md
├─ 03-operadores-y-expresiones.md
├─ 04-estructuras-de-control.md
├─ 05-funciones.md
├─ 06-arreglos-y-cadenas.md
├─ 07-punteros.md
├─ 08-structs-y-uniones.md
├─ 09-memoria-dinamica.md
├─ 10-archivos.md
└─ 11-estructuras-de-datos.md
├─ AGENTS.md # este archivo (reglas del proyecto)
├─ README.md # presentación del libro e índice general
├─ book/ # FUENTE: capítulos en Markdown
│ ├─ 00-introduccion.md
│ ├─ 01-conceptos-basicos.md
│ ├─ 02-variables-y-tipos.md
│ ├─ 03-operadores-y-expresiones.md
│ ├─ 04-estructuras-de-control.md
│ ├─ 05-funciones.md
│ ├─ 06-arreglos-y-cadenas.md
│ ├─ 07-punteros.md
│ ├─ 08-structs-y-uniones.md
│ ├─ 09-memoria-dinamica.md
│ ├─ 10-archivos.md
│ ├─ 11-estructuras-de-datos.md
│ └─ 12-arenas.md
├─ dist/ # SALIDA: un PDF por cada capítulo trabajado
│ └─ 12-arenas.pdf
├─ assets/
│ └─ pdf/
│ └─ print.css # hoja de estilo canónica de los PDF
└─ .opencode/
└─ skills/
└─ book-pdf/SKILL.md # procedimiento para generar los PDF
```
- **Un archivo por tema/concepto principal.**
@@ -163,3 +172,32 @@ Checklist al crear o editar un ejercicio:
10. Actualizar el índice del `README.md` si se agregó un capítulo.
> Recordatorio permanente: se entrega el **problema**, nunca la **respuesta**.
---
## 9. Generación de PDF (`dist/`)
Cada capítulo trabajado se publica como **PDF** en `dist/`, con el **mismo nombre** que su
Markdown: `book/12-arenas.md` → `dist/12-arenas.pdf`.
- Los PDF se generan con el MCP **`md-to-pdf`** (herramienta `md-to-pdf_markdown_to_pdf`).
**No** instalar pandoc/LaTeX ni armar un pipeline propio: ya existe.
- El diseño es **único y compartido**: vive en `assets/pdf/print.css`. No se estiliza capítulo
por capítulo.
- El procedimiento completo y los **parámetros fijos** de generación están en la skill del
proyecto: `.opencode/skills/book-pdf/SKILL.md`. Hay que **seguirla siempre** para que todos los
PDF tengan el mismo diseño.
Reglas de diseño (resumen):
- **Fuente de código:** monoespaciada, distinta de la fuente del cuerpo (serif). Todo bloque de
código declara su lenguaje en el fence (```` ```c ````, ```` ```bash ````, ```` ```text ````);
así `highlight.js` aplica **resaltado de sintaxis**. Un bloque sin lenguaje no se resalta
(las trazas de consola van como ```` ```text ````).
- **Notas / advertencias:** se escriben como **blockquote** (`>`). En el PDF **todas** se dibujan
igual, con un **fondo de color** que resalta del blanco de la hoja.
- `printBackground` debe estar **activo** (si no, no se pintan los fondos de código y notas).
- Encabezado, pie de página y **numeración de páginas** fijos.
> Si se modifica `assets/pdf/print.css`, hay que **regenerar todos** los capítulos para que ningún
> PDF quede con un diseño distinto.