Refactor code structure for improved readability and maintainability
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
---
|
||||
name: book-pdf
|
||||
description: Generar o regenerar los PDF de los capítulos del libro de C en dist/, con diseño consistente (resaltado de sintaxis, fuente mono para código, notas con fondo de color). Trigger - pdf, generar pdf, exportar capítulo, dist, md-to-pdf, print.css, "convertir a pdf", "rehacer pdf".
|
||||
---
|
||||
|
||||
# Skill: book-pdf — Generación de PDF de los capítulos
|
||||
|
||||
Todos los PDF del libro se generan **siempre** con este procedimiento, para que mantengan
|
||||
exactamente el mismo diseño. Fuente de diseño única: `assets/pdf/print.css`.
|
||||
|
||||
## Herramienta
|
||||
|
||||
Usar el MCP **`md-to-pdf`** → herramienta **`md-to-pdf_markdown_to_pdf`**.
|
||||
(NO escribir un pipeline propio con Node/Puppeteer ni instalar pandoc/LaTeX: ya existe este MCP.)
|
||||
|
||||
## Pasos
|
||||
|
||||
1. **Leer** `assets/pdf/print.css` (con la tool `read`).
|
||||
2. **Invocar** `md-to-pdf_markdown_to_pdf` con estos parámetros fijos:
|
||||
|
||||
| Parámetro | Valor |
|
||||
| ----------------- | -------------------------------------------------------------- |
|
||||
| `inputPath` | ruta absoluta del capítulo, p. ej. `book\12-arenas.md` |
|
||||
| `outputPath` | `dist\<mismo-nombre>.pdf`, p. ej. `dist\12-arenas.pdf` |
|
||||
| `css` | **el contenido completo** de `assets/pdf/print.css` |
|
||||
| `format` | `A4` |
|
||||
| `printBackground` | `true` (obligatorio: pinta los fondos de código y notas) |
|
||||
| `pageNumbers` | `true` |
|
||||
| `headerText` | `Programación en C — Libro de ejercicios` |
|
||||
| `footerText` | el capítulo, p. ej. `12 — Arenas` |
|
||||
|
||||
3. Comprobar que la respuesta diga `PDF generated: ... (<n> KB)`.
|
||||
|
||||
## Reglas de diseño (no romper)
|
||||
|
||||
- **Fuente del cuerpo**: serif (`Georgia` / `Palatino` / `Times`). Definida en `print.css`.
|
||||
- **Fuente de código**: mono distinta de la del cuerpo (`Cascadia Code` / `JetBrains Mono` /
|
||||
`Consolas`). **Todo bloque de código debe declarar su lenguaje** en el fence
|
||||
(```` ```c ````, ```` ```bash ````, ```` ```text ````). Sin lenguaje, `highlight.js` lo trata como
|
||||
`plaintext` y **no hay resaltado**. Para trazas de consola usar ```` ```text ````.
|
||||
- **Notas / advertencias**: se escriben como **blockquote** (`>`). En el PDF se dibujan **todas**
|
||||
igual: caja con fondo azul claro (`#eef4fb`) y borde izquierdo acentuado. No inventar estilos
|
||||
distintos de nota.
|
||||
- **Resaltado**: `md-to-pdf` usa `highlight.js` y emite clases `.hljs-*`; los colores están en
|
||||
`print.css`. No cambiar colores fuera de `print.css`.
|
||||
|
||||
## Cambiar el diseño
|
||||
|
||||
Si hay que cambiar fuentes, colores o el estilo de las notas, **editar solo
|
||||
`assets/pdf/print.css`** (es la fuente única) y regenerar **todos** los capítulos para que no
|
||||
queden PDF con diseños distintos.
|
||||
|
||||
## Regenerar todo
|
||||
|
||||
Generar cada `book\*.md` a `dist\<nombre>.pdf` con los parámetros de arriba, uno por uno.
|
||||
|
||||
## Notas de compatibilidad
|
||||
|
||||
- Verificado en esta máquina: `md-to-pdf` 5.2.5 con `marked` 4.3.0 y `highlight.js` 11.12.0;
|
||||
el highlighter de `md-to-pdf` **sí** resalta (emite `.hljs-keyword/string/comment`).
|
||||
- El MCP corre headless Chromium vía `md-to-pdf`; no requiere instalación adicional.
|
||||
Reference in New Issue
Block a user