- ENTRADA 054 -
Generando un EPUB
Cuidado con el Sr. Juan Pujol, tiene dos caras.
--- Fecha: jue 20 ago 2026 21:28:14 CEST---
¿Qué vas a necesitar?
- GNU/Linux
- Visor markdown, yo uso marker
- Sed
- Pandoc
Quieres pasar tu relato, novela o lo que sea de Markdown a Epub, ¿por qué Markdown?, pues por varios motivos. El primero es que usaré Pandoc para hacer la conversión y no funciona con PDFs, y con los ODT de Writer, salen asquerosos. El segundo es el enlace que te dejo aquí:
¿Por qué Pandoc?, pues porque la otra alternativa es Calibre, un monstruo de programa con miles de dependencias para acabar haciendo un EPUB defectuoso.
Te has currado un pedazo archivo markdown con un relato de terror con el que te darán el premio Pulitzer, pero como siempre, nada es así de fácil; te has dejado los 2 espacios al final de cada línea que le dicen a markdown que tiene que hacer un salto de linea. Tu, en tu editor favorito, lo ves de puta madre, pero markdown es muy suyo, y cuando lo metes en un visor (marker, typst o el que sea) ¡Oh, Dios!, está todo el texto junto, empegostonado (palabro de mi cosecha), y empiezan los sudores de la muerte, porque has escrito 32 mil palabras, y eso es mucho, y no vas a ir linea a linea añadiendo a mano los 2 espacios de rigor para solucionarlo.
Por suerte contamos con el todopoderoso SED, y no es que tenga ganas de beber, es que se llama Stream EDitor, y te va a permitir hacer virguerías con los archivos.
SED: Añadir los espacios
Añadir los 2 espacios que se te olvidaron a cada línea del archivo es muy fácil. Abre consola y teclea:
sed 's/$/ /' novela.md > novela2.md
Esto lo que hace es buscar en todo el documento y añadir 2 espacios al final de cada linea. No te preocupes porque también los añada a las lineas vacías o capítulos, no van a tener efecto.
Vale, ya está. Abres tu visor Markdown y ahora si, ahora está todo el texto como toca. Siguiente paso.
Pandoc: Convirtiendo a Epub
Pandoc es muy poderoso también, pero como solo vas a convertir un .md a .epub, usaremos lo más fácil que existe:
pandoc novela2.md -o novela.epub
Como Pandoc es muy profesional y sobre todo trabaja con LaTeX, se quejará de que le faltan cosas como el "Title", pero no te preocupes porque el .epub lo genera igual.
[WARNING] This document format requires a nonempty <title> element.
Defaulting to 'novela2' as the title.
To specify a title, use 'title' in metadata or --metadata title="...".
Listo, ya he creado el .epub pero queda todo del tirón, y a mi me gusta que cada capítulo nuevo esté en una hoja nueva, que podría dejarlo así, pero soy tiquismiquis. Voy a tirar de css a ver.
Un poco de CSS
Tengo que currarme (currarme dice...) un CSS para decirle a Pandoc que cuando haga la conversión se fije en los "headers" o cabeceras (esa cosa que empieza con # para hacer los títulos en Markdown) de cada capítulo y añada un salto de página. El archivo lo llamo epub.css, lo más intuitivo posible, y le añado lo siguiente (currarme dice...):
h2 {
break-before: page;
text-align: center;
page-break-before: always;
}
NOTA: h2 pertenece a ## en markdown. Si usas solo un # cambialo a h1
NOTA2: Me gustan los capítulos centrados. Si a ti no, quita la linea que pone "text-align: center;"
Con el epub.css en la misma ruta que tu pedazo novela, vuelves a Pandoc.
Pandoc 2: La revancha
Vuelve a usar Pandoc como antes, pero ahora añade el css que te has "currado". Presta atención a los dos guiones -- de css:
pandoc novela2.md -o novela.epub --css=epub.css
Voilá, ya tienes el .epub con los capítulos en hoja nueva, así da gusto, leñes.
Existe otra opción que se puede usar, el split, que no se muy bien para qué sirve. Según leo, es especialmente interesante porque le indica a Pandoc que divida el libro en archivos XHTML separados en cada header. Los lectores EPUB suelen tratar esos archivos como nuevas secciones/páginas, creando un EPUB más limpio y navegable.
Así que la linea de Pandoc quedaría así:
pandoc novela2.md -o novela.epub --css=epub.css --split-level=1
La verdad es que no he notado diferencia, aunque algo debe hacer porque los archivos resultantes con y sin Split difieren algo en tamaño.
Y ya está, has convertido un Markdown en Epub en un momento. A ver si para la próxima no se te olvidan los 2 espacios para Markdown y te ahorras curro.
Bonus track
La primera página que Pandoc generará será una página en blanco con el título de la novela, y queda soso, así que edito mi archivo Markdown llamado novela.md y justo después del título le añado la siguiente sintaxis:

Ahora después del título tengo una imagen de portada.
Tags: #pandoc #markdown #sed
/blog/