Как измерить размер текста до отрисовки браузером.
Чтобы положить текст на слайд, надо знать, что он влезет, до того как его нарисуют. Измерение через canvas, корректный перенос Unicode и поправка на расхождение между canvas и DOM.
Чтобы положить текст на слайд, надо знать, что он влезет, до того как его нарисуют. Измерение через canvas, корректный перенос Unicode и поправка на расхождение между canvas и DOM.
Где ставить границы слайдов? Фиксированное число символов режет предложения и оставляет неровные слайды. Как мы превратили разбиение в оптимизацию с небольшой моделью стоимости и динамическим программированием.
Растеризация SVG в PNG через элемент изображения соревнуется с загрузкой шрифта и обычно проигрывает, поэтому экспорт выходит запасным шрифтом. Решение в том, чтобы превратить текст в векторные контуры до растеризации, с шейпингом через HarfBuzz.
SVG-слой может соединять слова в двух строках HTML, но только если знает, куда их поставил браузер. Как измеряются позиции слов и как дуги остаются привязанными при переносах, ресайзе и догрузке шрифтов.
Ссылка может нести всё состояние приложения, если его урезать, сжать и версионировать. Как мы упаковываем целое выравнивание в несколько сотен символов и безопасно читаем его обратно.
Каждое кликабельное слово в редакторе начинается с токена, а простое деление по пробелу путает сокращения, пунктуацию и устойчивые выражения. Токенизатор, который мы сделали, и его настройки.