Refactor code structure for improved readability and maintainability
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user