# Pretext

> Революция в измерении текста: библиотека обходит браузер и считает без DOM

Pretext - JavaScript/TypeScript библиотека для измерения и разметки многострочного текста без DOM. Быстрая, точная, поддерживает все языки, рендерит в DOM, Canv

- Категории: Бесплатные, Инструменты разработчика
- Работает из России: Да
- Бизнес-модель: Бесплатно
- Сайт сервиса: https://github.com/chenglou/pretext
- Карточка в каталоге: https://ailibri.com/pretext
- Обновлено: 2026-05-04

## Описание

Pretext - библиотека для JavaScript и TypeScript, которая измеряет и раскладывает многострочный текст без единого обращения к DOM. Это значит, что ты получаешь высоту параграфа, количество строк и их ширину чистой математикой, минуя дорогущие операции вроде getBoundingClientRect или offsetHeight, которые заставляют браузер пересчитывать всю страницу.


Работает просто: сначала вызываешь prepare() - библиотека нормализует пробелы, разбивает текст на сегменты, измеряет их через canvas и возвращает готовую структуру. Потом запускаешь layout() - быстрый проход по уже посчитанным данным, который выдает высоту и число строк. Никаких перерисовок, никаких тормозов. На бенчмарках prepare() отрабатывает за 19 миллисекунд на пачку из 500 текстов, а layout() - за 0.09 миллисекунды.


Pretext понимает все языки, включая арабский, китайский, эмоджи и смешанные направления письма. Умеет работать с обычными пробелами и с textarea-режимом, где сохраняются табы и переносы строк. Для этого достаточно передать опцию whiteSpace: 'pre-wrap' в prepare().


Если нужно больше контроля, используй prepareWithSegments() и layoutWithLines() - получишь массив строк с их текстом, шириной и позициями. Есть walkLineRanges() для случаев, когда хочешь узнать ширину каждой строки без построения самих строк, например, чтобы найти минимальную ширину контейнера. А layoutNextLine() позволяет строить текст построчно с разной шириной на каждой строке - удобно для обтекания картинок или сложных макетов.


Библиотека открывает путь к виртуализации без костылей, к серверному рендерингу текста, к проверке переполнения лейблов еще на этапе разработки и к предотвращению layout shift при подгрузке контента. Рендерить можно в DOM, Canvas, SVG, скоро добавят серверную сторону.

## Похожие сервисы в каталоге

- [Hermes Agent](https://ailibri.com/hermes-agent): Hermes Agent — агент с открытым исходным кодом от NousResearch, который развивается вместе с вами. Поддержка инструментов, веб-исследований и автоматизации зада
- [HeyCLI](https://ailibri.com/heycli): Инструмент для перевода команд с обычного языка на язык Linux. Просто опишите словами, что нужно сделать, и получите готовую команду.
- [Openclaw Infra](https://ailibri.com/openclaw-infra): Openclaw Infra - Docker-инфраструктура для запуска AI-агентов OpenClaw с поддержкой Telegram. Простое развертывание нескольких агентов на одном сервере.
- [Liner.ai](https://ailibri.com/liner-ai): Платформа для создания моделей машинного обучения без программирования. Импортируй данные, жми кнопку - получай готовую ML-модель для интеграции в приложение.
- [Polymath](https://ailibri.com/polymath): Инструмент для превращения любой музыкальной библиотеки в сэмпл-банк для продакшена с помощью машинного обучения
- [Removal.AI](https://ailibri.com/removal-ai): Онлайн-сервис на ИИ уберёт фон с JPG и PNG, сменит цвет, откроет редактор, пакетную обработку и API. Бесплатно — превью и 0,25 МП для личного использования.

---
Источник: AILibri — каталог нейросетей и ИИ-инструментов, https://ailibri.com