--- 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\.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: ... ( 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\.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.