62 lines
3.3 KiB
Markdown
62 lines
3.3 KiB
Markdown
---
|
|
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.
|