#статья дня
Когда разработчикам браузеров заняться нечем, они... занимаются подсветкой текста.
Ладно, кроме шуток. Для некоторых задач подсветка текста поважнее будет, чем View Transitions API. Например, как вам текстовый редактор, который подсвечивает слова не путём создания тысяч элементов span, а с накладывая CSS прямо на текст?
А это ближе, чем кажется! И вот Брамус Ван Дамм написал большую статью, описывающую современное состояние Custom Highlight API. И, если коротко, фича уже вполне готова, чтобы создавать редакторы кода буквально на одном contenteditable элементе!
Собственно, что нам нужно?
1. Токенайзер — выделение значащих "токенов" в текста: зарезервированные слова, переменные, комментарии... В примере используется токенайзер из Prism.js
2. Генератор CSS для Custom Highlight API.
3. ...
4. Готово!
Вот статья: https://www.bram.us/2024/02/18/custom-highlight-api-for-syntax-highlighting/
Да, пока не без косяков, включая рандомные проблемы с производительностью, но работа идёт!
И пример для самых нетерпеливых: https://codepen.io/bramus/pen/MWxLjEo
#css #highlight
Post #2715
2.65K

- 👍 12