Saltar al contenido principal

Capítulo 17 · Parte III · La práctica

Skill para agentes: portar una publicación a Postext

Instala la skill postext-port en Claude Code, Codex o cualquier otro agente y deja que convierta un PDF, un documento de Word o de PowerPoint, un EPUB, un archivo de InDesign o una página HTML en un proyecto de Postext que reproduce la maquetación original

Actualizado 2026-10-2110 minenescadefritptzhjaar

En pocas palabras

Esta página es para quien ya tiene un libro o un documento en otro formato, como PDF, Word o InDesign, y quiere pasarlo a Postext. Un asistente de inteligencia artificial, al que se llama agente, puede hacer casi todo el trabajo si le das un pequeño complemento llamado skill. La skill enseña al agente a copiar el texto y a reconstruir el diseño del original. La página explica cómo instalarla, qué pedirle y cómo revisar el resultado. Un vídeo de unos cinco minutos muestra cada paso.

Convierte una publicación existente en un proyecto de Postext con un agente de programación.

Mucha gente llega a Postext con un libro que ya existe: un manual en PDF de imprenta, un informe en Word, un curso en PowerPoint, un catálogo en InDesign, un EPUB. Portarlo supone dos trabajos:

  • El contenido: el Markdown enriquecido de cada capítulo, con sus directivas y microformatos.
  • El diseño: un manifiesto de configuración que reproduzca las reglas de maquetación del original (geometría de página, rejilla base, tipografía, aperturas, titulillos, recuadros, flotantes, tablas, partes).

Un LLM puede hacer buena parte de este trabajo, pero solo si sabe cómo funciona Postext. El Markdown de Postext no es CommonMark, y la configuración tiene trampas que solo se descubren cuando una página sale mal compuesta. La skill postext-port reúne ese conocimiento con las herramientas que usamos para construir cada preset del Sandbox, para que tu agente haga bien la conversión.

Sigue el formato abierto Agent Skills, así que funciona con Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode y muchos otros agentes.

#Mira el tutorial

Cinco minutos, sin programar: prepara la carpeta, reúne los originales vectoriales, añade un PDF de referencia, haz el encargo al agente y revisa el resultado en el Sandbox.

Transcripción

Todo lo que dice el narrador, con una descripción de lo que aparece en pantalla.

  1. 0:00

    En pantallaCabecera: el logotipo de Postext, el rótulo «Tutorial · 5 pasos» y el título «Convierte tu publicación en Postext con un agente de IA. Sin programar.»

  2. 0:03

    En pantalla«Tu publicación ya existe.» Tres páginas compuestas con Postext, un libro, un manual y una revista, caen una tras otra con sus etiquetas: InDesign (IDML), Word (DOCX) y PDF. Se agrupan a la izquierda, una flecha dorada discontinua pasa por una insignia «Agente de IA» y aparece un icono de archivo, mi-libro.postext, bajo «Un agente la convierte en Postext. Cinco pasos. Unas cuantas peticiones bien escritas.»

    NarraciónYa tienes una publicación: un libro, un manual, una revista. Vive en InDesign, en Word o en un PDF. En este tutorial, un agente de inteligencia artificial la convertirá en Postext por ti. Sin programar: cinco pasos y unas cuantas peticiones bien escritas.

  3. 0:23

    En pantalla«El plan»: cinco tarjetas numeradas aparecen a medida que se nombra cada paso: 01 Prepara la carpeta, 02 Reúne los originales vectoriales, 03 Añade una referencia, 04 Pídeselo al agente, 05 Revisa en el sandbox.

    NarraciónEl plan: preparar la carpeta, reunir los originales vectoriales, añadir una referencia, pedírselo al agente y revisar el resultado.

  4. 0:35

    En pantallaPaso 01, la carpeta: «Un proyecto, una carpeta.» Una carpeta grande, mi-libro/, flota entre diez archivos sueltos como MinionPro-Regular.otf, portada.jpg, fig-2-1.ai, capitulo-01.docx, mapa.svg, libro.idml y grafico.pdf. Se abre una ventana con el árbol de la carpeta y cada archivo vuela a su subcarpeta al nombrarse: referencia.pdf (cómo debe quedar, paso 03), fuentes/ (Minion Pro, Myriad…, .otf .ttf .woff2), imagenes/ (fotografías, .jpg .png), ilustraciones/ (originales vectoriales, .ai .svg .pdf) y textos/ (Word, InDesign IDML…).

    NarraciónPaso uno: reúne todo en una sola carpeta en tu ordenador. Un proyecto, una carpeta. Dentro, dale a cada tipo de material su propia subcarpeta: las tipografías, las imágenes, las ilustraciones y los textos.

  5. 0:51

    En pantallaLa fila fuentes/ se resalta y una tarjeta titulada «Tipografías» muestra un «Aa» grande, los estilos Redonda, Cursiva y Negrita, los formatos OTF, TTF y WOFF2 y la nota «Solo se pueden usar las que incluyas.» Después, «Cuanto más ordenada, menos adivina.», mientras cada subcarpeta del árbol recibe una marca.

    NarraciónNo te olvides de las tipografías: son la voz del diseño, y el agente solo puede usar las que incluyas. Cuanto más ordenada esté la carpeta, menos tendrá que adivinar el agente.

  6. 1:04

    En pantallaPaso 02, originales vectoriales: «Reúne los originales.» Un diagrama, un gráfico y un mapa se dibujan en trazo, con sus puntos de ancla a la vista, y aparecen tres iconos de archivo: .ai Illustrator, .svg SVG y .pdf PDF.

    NarraciónPaso dos: si tus ilustraciones son vectoriales, como diagramas, gráficos o mapas, busca los archivos originales: Illustrator, SVG o PDF.

  7. 1:15

    En pantallaDos paneles muestran la misma figura, un diagrama en el que Manuscrito y Plantilla apuntan a Páginas, con el pie «Fig. 2.1 Contenido y diseño se encuentran.» A la izquierda, «Recortada del PDF: una foto del dibujo» se vuelve borrosa y pixelada al ampliarse; a la derecha, «El original: el dibujo mismo» sigue nítido. El panel izquierdo se apaga, los rótulos del original se reescriben en inglés (Manuscript, Template, Pages), unas marcas de corte lo enmarcan y tres marcas dicen «Nítida a cualquier tamaño», «Rótulos como texto real» y «Original → imprenta».

    NarraciónUna figura recortada del PDF final es poco más que una foto del dibujo. El original es el dibujo mismo. Con el original, el agente recompone cada figura: nítida a cualquier tamaño, con sus rótulos como texto real, listos para traducir. Y en imprenta, el original va tal cual.

  8. 1:37

    En pantallaPaso 03, la referencia: «Muestra cómo debe quedar.» En el árbol de la carpeta se resalta referencia.pdf con la etiqueta «En la raíz»; de él sale una página que se convierte en una página de libro grande, a dos columnas, marcada referencia.pdf.

    NarraciónEl paso tres es esencial: en la raíz de la carpeta, pon un archivo que muestre con claridad cómo debe verse el producto final. Lo ideal es un PDF.

  9. 1:47

    En pantallaSobre la página aparecen las medidas: el contorno de las columnas, un medianil de 9 mm, un margen de 20 mm, etiquetas para el título (Fraunces 28 pt), el texto (Lora 9,4/13,6 pt) y un recuadro (fondo, 1 filete), y las líneas base con un interlineado de 13,6 pt. Un archivo, ficha-de-especificaciones.md, se va rellenando: página 210 × 280 mm; márgenes 24 · 20 · 22 · 20 mm, simétricos; 2 columnas, medianil 9 mm; retícula base 13,6 pt; texto Lora 9,4 / 13,6 pt, justificado; títulos Fraunces 28 pt · Geist; aperturas con banda de color de 101 mm; recuadros con fondo y filete izquierdo. Después la palabra «Adivinar» se tacha y «Medir.» se enciende en dorado.

    NarraciónEl agente lee el diseño en esas páginas: mide márgenes, columnas, tipografías y espacios, y los anota como reglas de maquetación. Sin referencia, tendría que adivinar. Con ella, mide.

  10. 2:03

    En pantallaPaso 04, el agente: «Pídeselo con tus palabras.» Se abre una ventana titulada «Agente · ~/mi-libro» junto a las insignias Claude Code, Codex y «o cualquier otro agente». En la ventana se escribe un mensaje firmado TÚ: «Instala la skill de Postext: `npx skills add drnachio/postext --skill postext-port`», y el agente responde «✓ Skill instalada: postext-port». Una tarjeta de la skill postext-port enumera «Un método probado», «Todo sobre Postext» y «Herramientas para revisar su trabajo».

    NarraciónPaso cuatro: abre tu agente, Claude Code, Codex o el que uses, en esa carpeta, y pídele que instale la skill de Postext. Una skill es un paquete de conocimiento experto. Esta le enseña al agente a convertir una publicación a Postext, y le da herramientas para revisar su propio trabajo.

  11. 2:24

    En pantallaSe escribe la siguiente petición: «Usa la skill postext-port para convertir este libro a Postext. El diseño está en referencia.pdf, las tipografías en fuentes/ y las ilustraciones originales en ilustraciones/: úsalas en lugar de recortar las figuras del PDF. Empieza solo por el capítulo 1 y enséñame la ficha de especificaciones antes de construirlo.» Al lado, referencia.pdf, fuentes/ e ilustraciones/ se iluminan en el árbol de la carpeta a medida que el mensaje las nombra, y aparece una tarjeta con «Cap. 1».

    NarraciónDespués, pídele lo que quieres con tus palabras. Dile dónde están la referencia, las tipografías y los originales, y que empiece por un solo capítulo.

  12. 2:37

    En pantallaUna cuadrícula de doce páginas atenuadas; la primera se recuadra en dorado. Una flecha circular cuenta las vueltas de depuración sobre ella hasta que aparece una marca, y entonces se iluminan las otras once. Debajo: Capítulo de muestra → Depurar → Extender.

    NarraciónSi el contenido es largo, empieza por un capítulo de muestra. Depúralo hasta que esté perfecto, y solo entonces extiéndelo al resto.

  13. 2:46

    En pantallaEl agente pregunta «¿Copia fiel o rediseño?», «¿Qué idiomas?» y «¿Papel, pantalla o ambos?». Una lista de tareas avanza por Hacer inventario, Medir el diseño, Extraer el texto, Tipografías e imágenes, Comparar página a página y Empaquetar el archivo, y aparece el archivo mi-libro.postext. Se escribe una tercera petición: «El capítulo 1 está aprobado. Convierte el resto de capítulos con el mismo diseño, compara cada uno con referencia.pdf y empaquétalo todo en un único archivo .postext.» El agente responde «✓ 12 capítulos · 0 avisos · mi-libro.postext».

    NarraciónEl agente te hará unas preguntas: copia fiel o rediseño, qué idiomas, papel o pantalla. Después mide, extrae, ensambla y comprueba, y te entrega un archivo Postext. Cuando la muestra esté bien, extenderla al libro entero es solo una petición más.

  14. 3:11

    En pantallaPaso 05, el sandbox: «Revísalo página a página.» En una ventana de navegador se escribe la dirección postext.dev/es/sandbox. El puntero pulsa Libros en la barra lateral, luego Nuevo y luego «Abrir un archivo .postext…»; el archivo entra volando, «Mi libro, 12 capítulos · 184 páginas» aparece arriba de la lista y sus primeras páginas se abren en la vista Canvas; las pestañas de vista son Canvas, HTML, PDF, Folio y EPUB 3.

    NarraciónPaso cinco: abre el sandbox de Postext, en postext.dev. En Libros, elige Nuevo y abre tu archivo.

  15. 3:20

    En pantallaLa página de referencia y la de Postext quedan una junto a otra, rotuladas Referencia y Postext, y una línea dorada las recorre de arriba abajo. Se abre el panel Revisión con un contador de 3 y la lista Viuda (p. 4), Línea abierta (p. 7) y La figura no cabe (p. 9); unos recuadros rojos marcan cada problema en la página de Postext.

    NarraciónRevísalo página a página junto a tu referencia. El panel Revisión te señala los problemas: viudas, líneas abiertas, figuras que no caben.

  16. 3:31

    En pantallaDos filas de páginas esquemáticas, «Referencia · PDF» y «Postext · fluido». En la fila fluida, una figura viaja de la primera página a la cabeza de la segunda y una línea discontinua une sus dos posiciones. Texto: «Las mismas reglas, no las mismas páginas. El contenido fluye: una figura o un salto de página pueden caer en otro sitio.» Después, un signo igual une cada pareja de páginas bajo «Lo que debe coincidir»: Márgenes y retícula base, Tipografía, Estilo de figuras y recuadros, Páginas limpias: sin viudas, columnas equilibradas. Un panel rojo con el signo ≠ dice «Decisiones artesanales a mano: no son reglas, no sirven para contenido que cambia».

    NarraciónTen en cuenta una cosa: las páginas no tienen por qué ser idénticas a las del PDF. Postext ha entendido las reglas de maquetación y tu contenido ahora es fluido, así que una figura o un salto de página pueden caer en otro sitio. Lo que debe coincidir es la calidad: los mismos valores de producción. Cuando maquetamos a mano, tomamos pequeñas decisiones de artesanía que no son reglas. Y solo con reglas se puede maquetar un contenido que cambia.

  17. 4:01

    En pantallaVuelve la ventana del agente con una cuarta petición: «En el sandbox, capítulo 2, página 7: el recuadro «Recuerda» se parte en dos columnas y falta la cornisa. Revisión marca 3 líneas abiertas. Corrígelo y vuelve a empaquetar el archivo.» Se adjunta una captura, captura-cap2-p7.png. Después, un bucle entre Sandbox (revisar) y Agente (corregir) da las vueltas 1 a 3 mientras el número de avisos baja de 3 a 0, y termina con una marca y «Perfecto.»

    NarraciónLuego cuéntale al agente lo que ves, con la mayor precisión posible: el capítulo, la página y qué falla. Una captura de pantalla ayuda. Abre la nueva versión, vuelve a revisar y repite. Cada vuelta se acerca más, hasta que queda perfecto.

  18. 4:20

    En pantalla«No solo una versión Postext.» El archivo mi-libro.postext se parte en dos por una línea dorada. A la izquierda, Contenido (qué dice): chapters/es/02-la-celula.md, con el título «La célula», una frase que cita la figura fig-celula y un recuadro «recuerda». A la derecha, Forma (cómo se ve): una plantilla deducida de tu original, con página de 210 × 280 mm simétrica, 2 columnas con medianil de 9 mm, texto Lora 9,4/13,6 justificado, títulos en Fraunces numerados, recuadros «recuerda» con fondo y filete, y figuras a la cabeza de columna.

    NarraciónY esto es lo mejor: no solo tienes tu contenido en Postext. Has separado el contenido de la forma. El texto vive en capítulos limpios; el diseño, en una plantilla con las reglas de maquetación deducidas de tu original.

  19. 4:35

    En pantallaSe encienden las pastillas Corregir, Ampliar y Traducir sobre una fila de páginas: se resalta una línea y un destello recorre las páginas, entran dos páginas más y las páginas se dan la vuelta para mostrar la edición en inglés. Se escribe una petición: «Añade una edición en inglés: traduce los capítulos, los pies de figura y los rótulos de los diagramas, y mantén el mismo diseño.» Pie: «Mismas reglas. Contenido nuevo. Las páginas se componen solas.» Después, «Un archivo, todo el libro.»: un icono .postext se ramifica hacia una página con marcas de corte (PDF para imprenta), un lector de libros electrónicos con el texto ajustado a su pantalla (Libro EPUB), una ventana de navegador (Lector web) y una pareja de páginas (Cada página, compuesta).

    NarraciónAsí, cuando tu contenido cambie, cuando lo corrijas, lo amplíes o lo traduzcas, no tendrás que preocuparte por el formato. Postext lo vuelve a componer con las mismas reglas. Un solo archivo para todo el libro: un PDF listo para imprenta, un libro electrónico EPUB, un lector para la web y páginas que se componen solas.

  20. 4:59

    En pantallaCierre: el logotipo de Postext, el lema «El tipógrafo programable para la web», postext.dev, una pastilla con «Los prompts de este vídeo están en la descripción ↓» y el pie «Código abierto · MIT · github.com/drnachio/postext».

    NarraciónPostext. Código abierto, en postext.dev. Tienes los prompts de ejemplo en la descripción.

También en YouTube: míralo allí o en la lista de reproducción de Postext.

Edita un libro Postext con un agente de IA: capítulos, nuevas ediciones, adaptaciones — tutorial 2Ver en YouTube (se abre en una nueva pestaña) · El reproductor se carga desde YouTube al pulsar reproducir.

#Qué contiene la skill

  • Un flujo de trabajo:
    1. acordar el encargo;
    2. inventariar el original;
    3. medir el diseño y anotarlo en una ficha de especificaciones;
    4. crear el esqueleto del proyecto;
    5. extraer el contenido;
    6. pulirlo hasta convertirlo en Markdown de Postext;
    7. preparar fuentes e imágenes;
    8. verificar página a página;
    9. empaquetar.
  • Referencias:
    • el formato de documento y el manifiesto de configuración, ambos comprobados contra el motor;
    • el formato de proyecto (paquete);
    • una guía para cada formato de origen;
    • un método de análisis del diseño;
    • un catálogo de casos de maquetación ya resueltos: partes con colores propios, aperturas de capítulo, poesía, glosas al margen, notas al pie, índices analíticos, recuadros flotantes, partidos y anidados, originales vectoriales para imprenta, figuras con texto vivo, imágenes en celdas de tabla, tablas apaisadas, ediciones bilingües y más;
    • libros chinos, compuestos en horizontal o en vertical y encuadernados por la derecha: qué preguntar en el encargo (escritura, región, dirección, encuadernación), cómo medir una retícula de caracteres, cómo leer PDF verticales, el ruby y el warichu de InDesign, la maquetación de Asia oriental de Word y los EPUB de derecha a izquierda, y cómo recortar las fuentes CJK a los caracteres del libro (véase Composición china);
    • libros japoneses, ya sean novelas bunko y tankōbon en vertical y encuadernadas por la derecha o libros técnicos en horizontal: el idioma que activa las reglas japonesas (ja, nunca una etiqueta china), qué preguntar (dirección, retícula, furigana, notas, la ortografía de la edición), cómo medir la caja de texto en caracteres y líneas, el marcado de furigana y bōten, los textos de Aozora Bunko convertidos con aozora.py, los escaneos de ediciones de dominio público de la Biblioteca Nacional de la Dieta y las fuentes japonesas recortadas con sus kana y sus formas verticales (véase Composición japonesa);
    • libros árabes, modernos o clásicos y vocalizados, compuestos de derecha a izquierda y encuadernados por la derecha: el idioma que pone todo el libro de derecha a izquierda, qué preguntar (región y cifras, vocalización, poesía, índice al final), cómo medir una página en espejo, cómo leer el árabe de PDF, Word y Wikisource, los poemas como :::verse, las notas «(١)» numeradas por página y las fuentes árabes recortadas con sus tablas de enlace (véase Composición árabe);
    • cómics, manga y tiras de prensa: la división que corta una página en viñetas, las imágenes de las viñetas con sus anclas de personaje y sus zonas seguras, un guion por idioma que el motor rotula (bocadillos, cartelas, onomatopeyas), el manga de derecha a izquierda y las ediciones árabes, y cómo portar a partir de dibujos sin texto y sus traducciones, de escaneos ya rotulados o de un guion con imágenes generadas (véase Cómics);
    • las páginas compuestas: las páginas fijas de libros de texto, cuadernos y revistas portadas como plantillas de página cuyos marcos se llenan desde el Markdown, qué ronda de porte admite el Postext instalado y las comprobaciones que debe pasar cada edición (consulta Páginas compuestas);
    • el objeto impreso: cómo leer el papel, la encuadernación, las cubiertas y el lomo del original y fijarlos en los ajustes folio que muestra el visor Folio, con la comprobación del linter.
  • Scripts (Python y Node), descritos en la sección siguiente.

#Scripts

ScriptQué hace
inventory.pyPrimera mirada a cualquier original: geometría, fuentes, estilos en uso, archivos multimedia, páginas que necesitan OCR; en un PDF impreso como PDF/X, su condición de salida y su sangrado, con los ajustes print que los reproducen.
measure_layout.pyMárgenes, columnas, medianil e interlineado (la rejilla base) de un PDF
pdf_extract.pyPDF → capítulos en borrador según el rol tipográfico (fuente, cuerpo, color): orden de lectura, párrafos, eliminación de los guiones de corte, negritas y cursivas, superíndices y subíndices, listas, pies
pdf_figures.pyRecorta las figuras de un PDF: fotos a su resolución nativa, vistas previas en SVG y originales vectoriales en PDF para imprenta
pdf_regions.py, template_dedupe.py, anchors.pyConvierten las páginas fijas de un PDF (libros de texto, cuadernos de ejercicios, revistas) en páginas compuestas: plantillas de página con marcos en mm; estilos de recuadro, de pestaña y de resaltado; un fondo de página sin texto; las imágenes recortadas sin su texto, y Markdown con un bloque de página (::::page) por página y una ranura por caja, en orden de lectura. El texto que queda oculto bajo otros elementos pintados se descarta. template_dedupe.py reúne en una sola biblioteca las plantillas y los estilos de las páginas del mismo tipo, pone a los marcos nombres según su función (box-light-blue, caption-of-picture) en lugar de según su clase y su orden, y actualiza los bloques de página en consecuencia. anchors.py convierte las palabras de un mapa en anclas del recurso y en líneas ::label para cada edición. Cuando una pasada tiene una sola página y no hay nada que fusionar, es el propio pdf_regions.py extract el que pone nombre a los marcos según su función (--name-frames, desde postext 1.43). Desde postext 1.48 dibuja como vectores las líneas, las tarjetas y las formas de la página (conectores entre marcos, líneas que señalan un punto de una imagen, trazados) en lugar de una imagen por página, y template_dedupe.py convierte las tarjetas dispuestas en filas y columnas en cuadrículas que se repiten y cada franja de la página en un módulo. Desde postext 1.50 coloca además en una fila de módulos los bloques que están uno al lado del otro, deja en una sola cuadrícula las tarjetas que solo cambian de color, cada una con un aspecto con nombre, y da a los preliminares y a las páginas del cuerpo una sola plantilla base, cuyo folio y color de página se dibujan cuando el bloque ::::page lo indica. Desde postext 1.51 el borrador pide menos retoques: cada imagen se recorta sin nada más que la imagen (quedan fuera las letras ocultas, los rellenos vecinos y los márgenes en blanco), la placa que la página pinta sobre una foto queda encima de ella, el texto de un recuadro llega hasta el borde del recuadro, los adornos junto a un titulillo se mueven con él, los pies compuestos en columnas bajo las imágenes tienen un marco cada uno, un color al que el libro ya da nombre se lo presta al aspecto que lo usa, y los bloques que el borrador encadena uno bajo otro pueden seguir formando una fila de módulos. Las correcciones a mano van en curation.json, que extract escribe vacío y manifest aplica tras cada compilación, así que no se pierden al rehacer: marcos corregidos, quitados o añadidos, decoración quitada, solapes permitidos, estilos cambiados y recursos añadidos, cada uno con su motivo; una corrección cuya plantilla, marco o estilo no existe detiene la compilación.
extract_tables.pyTablas de PDF → TableModel de Postext: las celdas conservan alineación, negrita y relleno, las celdas combinadas su extensión, una fila de título pasa a ser el pie y la etiqueta de la tabla, una fila que cruza todas las columnas una banda de grupo centrada, las filas de cabecera se cuentan por la negrita o el relleno, y dos filas leídas como una se vuelven a separar. pdf_extract.py ya convierte las tablas con filetes en recursos de tabla.
pandoc_to_postext.pyDOCX, PPTX, ODT, EPUB, HTML, LaTeX, Markdown, JATS, DocBook → capítulos en borrador, con los estilos de Word asignados a recuadros y a estilos de párrafo
idml_extract.pyIDML de InDesign → capítulos en borrador según el estilo de párrafo, tablas e imágenes ancladas; el ruby, el tate-chu-yoko, los puntos de énfasis y el warichu pasan a :ruby, :tcy, :dots y :warichu, y avisa de los artículos (stories) verticales y de la encuadernación de derecha a izquierda
aozora.pyTexto de Aozora Bunko (un zip o un .txt en CP932) → Markdown de Postext: furigana, bōten y líneas laterales, encabezados con su sangría, bloques 字下げ y 地付き como estilos de párrafo, saltos de página, 外字 resueltos con JIS X 0213, marcas de kanbun; devuelve el bloque de créditos y un informe de lo que no ha podido expresar
index_marks.pyReconstruye un índice analítico impreso como marcas :index: lee las páginas del índice en el PDF, busca cada término en su página y marca las mismas palabras en los capítulos
comic_panels.pyMide páginas de cómic: encuentra las viñetas por el papel que las separa, escribe la expresión split (de izquierda a derecha o de derecha a izquierda, con calles inclinadas incluidas), las calles y el marco, recorta una imagen por viñeta e imprime los esqueletos :::page; superpone una cuadrícula a las imágenes para leer las anclas de personaje y las zonas seguras, y las vuelve a dibujar encima para comprobarlas
fonts.py, images.py, convert_assets.pyInstancian fuentes, las reducen a un subconjunto, las escalan y las separan (una fuente china o japonesa recortada a los caracteres del libro conserva sus formas y sus métricas verticales, y una árabe, sus formas de enlace y el tatweel); pasan imágenes a sRGB, las recortan y las unen; convierten ilustraciones .ai/.pdf en SVG
preset_kit.pyCrea el proyecto y su script generador, construye preset.json, empaqueta el archivo .postext y revisa la configuración: avisa del texto del libro escrito en elementos de diseño (la configuración solo debe guardar el diseño) y de una configuración demasiado grande para el Sandbox
lint_project.pyDetecta todo lo que el analizador y el cargador hacen mal sin avisar y, en texto chino, japonés o coreano, los caracteres que las fuentes incluidas en el proyecto no pueden componer; en texto japonés, los kana bajo un idioma chino, las fuentes o los ajustes chinos, la notación de Aozora que haya quedado en los capítulos y las entradas de índice en kanji sin lectura; en texto árabe, la falta de un idioma árabe, las fuentes solo latinas o sin formas de enlace, el espaciado entre letras, la separación silábica forzada y el énfasis en cursiva; en cómics, las expresiones split que no se pueden analizar, las viñetas que no coinciden con las celdas, las imágenes y los estilos de bocadillo o de viñeta desconocidos, las anclas de personaje mal formadas, las fuentes de rotulación que el proyecto no incluye y las ediciones cuyas páginas no coinciden. También señala lo que deja un agente: marcas en línea en un texto de diseño sin inlineMarks, un espacio normal escrito junto a un espacio fijo, un chip en un título con un motor anterior a 1.52, versales escritas en un chip pequeño en vez de :smallcaps[…] y un ::: tras una directiva de una línea como :::toc; su lista de ajustes de configuración sale de los tipos del propio motor
render.mjsCompone el proyecto (una carpeta o un archivo .postext) sin navegador y con el motor real, lee su configuración igual que el Sandbox y muestra los avisos. Con --jpeg pinta como archivos JPEG las páginas que le pidas (--pages 12-15) con el renderizador de canvas del propio motor, en uno o dos segundos, de modo que el agente puede ver sus páginas sin generar un PDF; --out escribe el PDF. Un libro preparado para imprenta recibe líneas PREFLIGHT (imágenes de baja resolución, filetes finos, texto pequeño en varias tintas, tinta por encima del límite, texto cerca del corte), y su PDF se separa con el perfil ICC de salida.
compare_pages.pyPone una junto a otra las páginas del original y las de Postext, a partir del PDF compuesto o de su carpeta de JPEG; con --score mide cuánto se parecen, y con --check la puntuación falla mientras las comprobaciones sigan mostrando un marco encima de otro; con --watch DIR, junto a postext build … --images DIR --watch, vuelve a escribir el par y la puntuación de una página cada vez que esa página cambia
port_audit.pyCompara el PDF de origen con el PDF de la adaptación atributo por atributo, emparejando las palabras por su contenido: espacios especiales, cursiva (incluida una redonda inclinada), negrita, versalitas, tamaño y peso de las viñetas, alineación y peso de las celdas de tabla, y los colores de folios, cabeceras y texto. Escribe un informe JSON y otro Markdown con un recuento por atributo y página; ejecútalo antes de entregar
composed_check.pyPáginas compuestas: round lee la versión del motor instalado y dice qué ronda de porte admite y qué funciones de las páginas compuestas le faltan; check ejecuta postext check y postext html en cada edición y falla si un marco se desborda, si hay plantillas o ranuras desconocidas, etiquetas que no caben en su ancla, texto escrito en la configuración o marcos que el HTML lee en otro orden que el que sigue el Markdown al llenarlos. Desde postext 1.48 también falla si un marco queda debajo de otro o se sale de su caja (frameCovered, frameOutsideArea) y termina con el número de solapamientos; un solapamiento que el original imprime a propósito se anota, con su motivo, en el composed-check.json del proyecto. También fallan los ajustes mal escritos y los valores que el motor no acepta (unknownConfigKey, unknownConfigValue), y se imprimen todos los demás avisos. --json-out FILE guarda el resultado sin perder el informe ni el código de salida, y preset_kit.py pack se niega a empaquetar mientras la revisión guardada haya fallado
postext_md.pyEl módulo auxiliar que importan los demás scripts para escribir texto en el dialecto Markdown de Postext: tramos planos de marcas en línea, caracteres activos escapados y párrafos que se leerían como lista, encabezado o bloque conservados como texto

#Instalación

#Cualquier agente (skills.sh)

La CLI skills detecta tus agentes e instala la skill para ellos:

npx skills add drnachio/postext --skill postext-port

Elige agentes concretos con -a e instálala para todos tus proyectos con -g:

npx skills add drnachio/postext --skill postext-port -a codex -a claude-code -g

La web publica la misma skill, así que esto también funciona:

npx skills add https://postext.dev

#Plugin de Claude Code

El repositorio de Postext es también un marketplace de plugins de Claude Code. Dentro de Claude Code:

/plugin marketplace add drnachio/postext
/plugin install postext@postext

O desde la terminal:

claude plugin marketplace add drnachio/postext
claude plugin install postext@postext

#Que la instale el agente

Puedes pedírselo a tu propio agente, por ejemplo: «Instala la skill de Postext para portar publicaciones (npx skills add drnachio/postext --skill postext-port) y úsala para portar este PDF». Los agentes que leen https://postext.dev/llms.txt encuentran allí esta página y el comando de instalación.

#Herramientas que usan los scripts

python3 -m pip install pymupdf pillow fonttools brotli numpy
brew install pandoc poppler
mkdir -p ~/.cache/postext-tools && cd ~/.cache/postext-tools && npm init -y && npm i postext postext-pdf postext-citeproc react @pdf-lib/fontkit @napi-rs/canvas

Pandoc es necesario para los originales en Word, PowerPoint, EPUB y HTML; poppler, para las imágenes de las páginas del original, y numpy, para comic_panels.py. Los paquetes de Node hacen funcionar el renderizador sin navegador (Node 22.15 o posterior); @napi-rs/canvas es un canvas precompilado con el que pinta las páginas del libro directamente en JPEG. Herramientas opcionales: ocrmypdf para escaneos, ImageMagick y veraPDF, para comprobar PDF/UA.

mkdir -p ~/.local/bin && curl -fL -o ~/.local/bin/postext https://github.com/drnachio/postext/releases/latest/download/postext-macos-arm64 && chmod +x ~/.local/bin/postext

Elige el archivo de tu sistema (postext-macos-arm64, postext-macos-x64, postext-linux-x64, postext-linux-arm64, postext-linux-x64-musl, postext-windows-x64.exe); con Node, también funciona npx postext-cli.

El ciclo de trabajo se apoya en la línea de comandos, un ejecutable autónomo que no requiere instalación: el agente mantiene el proyecto descomprimido y deja postext build --watch en marcha sobre las páginas en las que trabaja, de modo que cada cambio aparece como JPEG alrededor de un segundo después, incluso en un libro largo. Los paquetes de Node son opcionales: sirven para ejecutar render.mjs, que añade las comprobaciones adicionales del Sandbox. Los dos maquetan el libro con bodyText.shapingLanguage: 'host', diga lo que diga su configuración, así que una línea puede cortarse en una palabra distinta que en el Sandbox (véase Diferencias con el Sandbox).

#Cómo usarla

Deja los archivos de origen en tu carpeta de trabajo y pide la conversión. Por ejemplo:

  • «Porta los capítulos 1 a 3 de manual.pdf a Postext, reproduciendo su maquetación a dos columnas, las aperturas de capítulo y los recuadros».
  • «Convierte curso.docx en un libro de Postext. Los estilos “Nota” y “Actividad” son recuadros».
  • «Convierte presentacion.pptx en un dossier de Postext: las diapositivas serán secciones, y las notas del orador, el texto».
  • «Tenemos el paquete de InDesign (IDML + PDF de imprenta) de este manual. Prepara el preset de Postext del capítulo 1 en español e inglés».

El agente sigue el flujo de trabajo:

  1. Encargo. Pregunta lo que no puede deducir: si quieres una reproducción fiel o un rediseño, un capítulo de muestra o el libro entero, en qué idiomas, si es para imprimir o para pantalla, y qué derechos tienes sobre los textos, las imágenes y las fuentes.
  2. Inventario y medición. Lee el original y escribe una ficha con los datos medidos: formato, márgenes, columnas, interlineado, roles tipográficos, paleta, aperturas, titulillos, familias de recuadros y hábitos de colocación. Clasifica cada página como texto corrido o como página compuesta (recuadros, rótulos y mapas en lugares fijos). Con Postext 1.35 o posterior, agrupa las páginas compuestas por tipo y compone cada tipo a partir de una plantilla de página, de modo que la maquetación sigue siendo idéntica y el texto se puede editar y traducir. Con una versión anterior, si más de un tercio de las páginas son compuestas, te pregunta si prefieres la maquetación idéntica o un texto que puedas editar y traducir.
  3. Proyecto. Crea mi-libro/ con un generador, build_preset.py, que guarda la ficha como constantes y produce preset.json.
  4. Contenido. Extrae los capítulos en borrador con el extractor adecuado y los pule hasta convertirlos en Markdown de Postext: recuadros, estilos de párrafo, partes, atributos de encabezado para las aperturas, citas :ref y recursos de tabla y de figura.
  5. Verificación. Pasa el linter y deja postext build --watch en marcha sobre el proyecto descomprimido: cambia un capítulo o un ajuste, mira el JPEG de la página, que se vuelve a pintar alrededor de un segundo después, y repite hasta que los saltos de página, las figuras y los recuadros coinciden con el original página a página. En cada hito ejecuta las comprobaciones completas (postext check y el linter). El PDF solo se genera para las comprobaciones de imprenta, no cada vez que revisa una página.
  6. Entrega. Fija el papel, la encuadernación y las cubiertas del libro para el visor Folio y empaqueta mi-libro.postext.

Abre el resultado en el Sandbox: Libros → Nuevo → Abrir un archivo .postext…. La importación toma los capítulos y los textos del idioma del Sandbox. Para trabajar con una carpeta de proyectos en una copia local de Postext, define POSTEXT_PRIVATE_PRESETS_DIR (véase Sandbox).

#Cargar el resultado desde código

El archivo entregado no depende del Sandbox. El paquete postext lo abre con openBundle, compone el libro con buildBundle y lo dibuja en canvas, HTML o PDF (véase Paquetes). Así, el resultado de una conversión puede alimentar directamente un programa. Si lo que produce ese programa necesita ajustes, vuelve a exportarlo a un archivo .postext con createBundle, retócalo en el Sandbox y carga de nuevo el archivo corregido. El render.mjs de la skill, que compone sin navegador, acepta tanto un archivo .postext empaquetado como una carpeta de proyecto.

#Qué esperar

  • Los extractores producen borradores; el agente los pule. Cuenta con una revisión de cada capítulo frente a las páginas originales: de esa revisión sale la calidad.
  • El texto se queda en el Markdown. La configuración guarda el diseño y cada palabra del libro está en los capítulos, así que una corrección o una traducción es una edición del Markdown. Con Postext 1.35 o posterior, las páginas compuestas son plantillas de página de la configuración cuyos marcos se llenan con el Markdown de cada capítulo: un recuadro crece con una traducción más larga y empuja a los que tiene debajo, y desde la 1.37 los nombres de un mapa son rótulos escritos en el Markdown. Con una versión anterior, se montan con recuadros fijos en su sitio, imágenes de página sin texto y figuras SVG con rótulos vivos. El informe indica cuál de las dos vías ha usado el agente y con qué versión. Cuando Postext no puede expresar algo sin escribir texto en la configuración, el agente se detiene, redacta la carencia como borrador de incidencia y te pregunta. La skill nunca modifica el motor para adaptarlo a un libro concreto.
  • Un solo archivo para todos los idiomas. Una traducción es un juego de capítulos dentro del mismo archivo .postext, con sus propios pies y rótulos de figura, y se comprueba con postext check en cada idioma.
  • Los derechos los decides tú. El agente pregunta antes de reproducir imágenes o fuentes con licencias dudosas. Las fuentes con licencia se marcan con redistributable: false, así que los proyectos exportados no las incluyen.
  • Fidelidad donde importa. El objetivo es conseguir la misma rejilla, tipografía, aperturas, recuadros, colocación de figuras y saltos de página en la mayoría de las páginas (con un margen de una página por capítulo), no cortes de línea idénticos.

#Dónde está

La skill está en el repositorio, en plugins/postext/skills/postext-port. Cubre todos los casos que surgieron al preparar los presets del Sandbox, públicos y privados. Si una conversión se encuentra con un caso que todavía no cubre, abre una incidencia o una pull request que mejore la skill, y la siguiente conversión lo tendrá resuelto.