drnachio/postext

drnachio

Движок вёрстки для веба: превращает семантический markdown с ресурсами в публикационную вёрстку для HTML, PDF и EPUB по типографским правилам.

postext — это программируемый типограф для веба, который применяет профессиональные правила печатной вёрстки к семантическому markdown. Инструмент нужен разработчикам и издателям, которым требуется публикационное качество вывода в HTML, PDF и EPUB.

Ключевые возможности

  • Разбор обогащённого markdown с изображениями, таблицами, формулами и врезками
  • Измерение текста без DOM на основе @chenglou/pretext
  • Алгоритм вёрстки с балансировкой колонок и расстановкой ресурсов
  • Контроль типографских правил: запрет висячих строк и корректные сноски
  • Формат-независимая геометрия вёрстки для разных рендереров
  • Вывод в HTML/CSS, PDF, EPUB 3 и 3D-книгу в браузере

Для каких задач подходит

  • Вёрстка книг и журналов с выводом в PDF для печати
  • Генерация EPUB для электронных читалок из markdown-исходников
  • Публикация статей и отчётов на сайте с типографским качеством
  • Создание документов с формулами, таблицами и перекрёстными ссылками
  • Прототипирование вёрстки через конфигурационные файлы без ручной правки

Подробнее

postext принимает на вход обогащённый markdown, в котором контент описан семантически: что показать, а не как. Движок разбирает структуру, измеряет текст через @chenglou/pretext без обращения к DOM, а затем применяет алгоритм вёрстки с балансировкой колонок, размещением ресурсов и типографскими правилами. На выходе получается формат-независимая геометрия — точные координаты и размеры каждого элемента, которую рендереры переводят в HTML/CSS, PDF, EPUB 3 или 3D-книгу в браузере. Поведение вёрстки задаётся конфигурационными файлами: колонки, правила, отступы.

Отличие от типовых генераторов PDF и сайтов в том, что postext не привязан к одному формату вывода и не требует ручной правки вёрстки под каждый носитель. Инструмент ориентирован на публикационное качество: запрет висячих строк, баланс колонок, обтекание текста вокруг врезок и корректное размещение сносок. Это делает его ближе к профессиональным типографским системам, чем к обычным конвертерам markdown.

Стоит учитывать, что проект молодой (11 звёзд на GitHub) и распространяется по лицензии MIT. Для работы нужен Node.js и пакет postext из npm; документация и примеры доступны на postext.dev. Поскольку движок строит геометрию, а рендеринг вынесен в отдельные рендереры, для нестандартного вывода может потребоваться собственный рендерер.

Частые вопросы

Как установить postext?

Основная команда установки из README:

npm install postext

Какие задачи решает postext?

postext решает задачу публикационной вёрстки из семантического markdown: он рассчитывает геометрию страниц с учётом колонок, врезок и сносок. Инструмент позволяет получать согласованный вывод в HTML, PDF и EPUB из одного исходника без ручной правки под каждый формат.

Какие требования для запуска postext?

Проект написан на TypeScript и распространяется как npm-пакет postext, поэтому нужен Node.js. Для измерения текста используется @chenglou/pretext, который устанавливается как зависимость.

Можно ли использовать postext в коммерческих проектах?

Да, проект распространяется по лицензии MIT, которая разрешает коммерческое использование при сохранении уведомления об авторских правах.

Чем postext отличается от обычного конвертера markdown в PDF?

postext сначала строит формат-независимую геометрию вёрстки по типографским правилам, а затем рендереры переводят её в HTML, PDF или EPUB. Обычные конвертеры сразу формируют вывод в одном формате и не применяют правил вроде балансировки колонок и запрета висячих строк.