# Postext — Tipógrafo Programable para la Web

> Un motor de maquetación que conecta la tradición tipográfica con la web moderna. Recibe markdown semántico, devuelve páginas con calidad editorial — renderizadas a HTML, canvas y PDF listo para imprenta.

- Versión HTML: https://postext.dev/es
- Otros idiomas: [en](https://postext.dev/en.md)

## El Tipógrafo Programable para la Web

Postext parte de markdown semántico y aplica reglas de maquetación con siglos de historia — justificación Knuth-Plass, prevención de huérfanas, colocación de figuras — para generar páginas con calidad editorial renderizadas a HTML, canvas o PDF listo para imprenta.

## Maquetación Editorial, Computada para la Web

CSS ofrece maquetación responsiva — flexbox, grid, columnas. Pero no sabe balancear columnas, evitar huérfanas, ajustar texto alrededor de figuras ni colocar notas al pie en la base de una columna. Son decisiones editoriales depuradas durante siglos de tipografía impresa.

Postext cubre ese vacío. Pásale markdown semántico y un objeto de configuración. Mide texto entre 300 y 600 veces más rápido que el DOM gracias a [@chenglou/pretext](https://github.com/chenglou/pretext), calcula la geometría completa de cada página — cada línea, flotante y pie de figura — y la renderiza mediante los backends de HTML, canvas o PDF listo para imprenta.

## Lo que los Tipógrafos Siempre Han Sabido

### Justificación Knuth-Plass

El mismo algoritmo óptimo de partición de líneas que usa TeX, con separación silábica por patrones de TeX y control de huérfanas — bloques de texto homogéneos sin ríos de blanco, más allá de lo que CSS puede expresar.

### Recursos y Referencias Cruzadas

Figuras, diagramas SVG y tablas que flotan al inicio o al final de columnas y páginas — como los flotantes en imprenta — con numeración tipada y referencias :ref que siempre se mantienen sincronizadas.

### Estilo de Tablas y Pies de Figura

Tablas compuestas con tipografía independiente para cuerpo y cabecera, y pies de figura que siguen tu configuración — numerados, con estilo propio y colocados junto al recurso que describen.

### Diagramas a una Tinta

Recolorea los diagramas SVG a matices de una sola tinta según su luminancia, para que cada ilustración encaje con tu diseño — listos para impresión con tinta directa.

### Matemáticas en LaTeX

Ecuaciones en línea y en bloque escritas en LaTeX, medidas y compuestas por el motor para que se asienten en la retícula base junto al texto.

### Web y PDF Listo para Imprenta

Un motor de maquetación, tres renderizadores. Las mismas páginas calculadas se renderizan a HTML, canvas o PDF listo para imprenta — con marcadores y color CMYK.

## Una Función, Control Total

Llama a `buildDocument` con tu contenido y un objeto de configuración. Recibes la geometría completa de las páginas, lista para renderizar con `renderToHtml` — o con los backends de canvas y PDF.

```ts
import { buildDocument, renderToHtml } from "postext";

const doc = buildDocument(
  { markdown },
  {
    layout: { layoutType: "double" },
    bodyText: {
      textAlign: "justify",
      hyphenation: { enabled: true, locale: "en-us" },
    },
  }
);

const html = renderToHtml(doc);
```

## Maquetación Editorial en Tres Pasos

1. **Escribe Markdown Semántico.** Escribe tu contenido en markdown enriquecido con referencias a recursos y marcadores de notas al pie. Sin pensar en maquetación — solo contenido.
2. **Configura las Reglas de Maquetación.** Define columnas, reglas tipográficas, estrategias de colocación de recursos y ajustes por sección en un objeto PostextConfig.
3. **Renderiza a HTML, Canvas o PDF.** Llama a buildDocument y obtén la geometría completa de la maquetación — y renderízala con el backend de HTML, canvas o PDF listo para imprenta.

## Empieza en Menos de un Minuto

```bash
pnpm add postext
```

```ts
import { buildDocument, renderToHtml } from "postext";

const doc = buildDocument({
  markdown: "# Hello World\n\nYour content here.",
});

const html = renderToHtml(doc);
```

## Documentación

- [Introducción a Postext](https://postext.dev/es/docs/introduction.md): Qué es Postext, por qué existe y el problema que resuelve
- [Arquitectura de Postext](https://postext.dev/es/docs/architecture.md): Arquitectura técnica del motor de composición tipográfica Postext
- [Configuración de Postext](https://postext.dev/es/docs/configuration.md): Referencia completa de todas las opciones de configuración de composición de Postext
- [Separación silábica y justificación](https://postext.dev/es/docs/justification.md): Cómo Postext corta líneas, justifica texto y controla el espaciado entre palabras usando el algoritmo Knuth-Plass
- [Formato del documento](https://postext.dev/es/docs/document-format.md): El subconjunto de markdown que parsea Postext y las normas para escribir los documentos fuente
- [Contribuir a Postext](https://postext.dev/es/docs/contributing.md): Cómo unirse a la comunidad Postext y contribuir al proyecto
- [Sandbox](https://postext.dev/es/docs/sandbox.md): Entorno interactivo para experimentar con el motor de maquetación de Postext
- [Skill para agentes: portar una publicación a Postext](https://postext.dev/es/docs/skill.md): Instala la skill postext-port en Claude Code, Codex o cualquier agente y deja que convierta un PDF, Word, PowerPoint, EPUB, InDesign o HTML en un proyecto de Postext que sigue la maquetación original

## Enlaces

- [GitHub](https://github.com/drnachio/postext)
- [npm](https://www.npmjs.com/package/postext)
- [Sandbox](https://postext.dev/es/sandbox): Editor interactivo en el navegador: escribe markdown, ajusta la configuración y exporta PDF listo para imprenta.
- [Licencia MIT](https://postext.dev/es/license.md)
