{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreihc2paq5i7juf53biarjs5r36rerctosz3zvp4jnnlycdd7qi5wf4",
"uri": "at://did:plc:5gqnjzjl7mdohronfsnltudb/app.bsky.feed.post/3mmklt2ipi762"
},
"coverImage": {
"$type": "blob",
"ref": {
"$link": "bafkreiadzgp66dereqy3cewwr6eejqztc37xosii72rhkhliaztyvrckpq"
},
"mimeType": "image/jpeg",
"size": 9182
},
"path": "/post/6318615",
"publishedAt": "2026-05-23T12:02:26.000Z",
"site": "https://reactor.cc",
"tags": [
"neliut",
"Regular Expression",
"Cascading Style Sheets",
"Комментировать"
],
"textContent": "Автор: neliut\n\n\n### Релиз расширения для подсветки тегов\n\nУря! Наконец-то релиз!\n\nНа данный момент вот так выглядят большинство встроенных дефолтных окрасок:\n\nЕсли вам бля не нравится вычурность окраски этих тегов, горе хейтеры хулители 500iq диванные эксперты по эпилепсии, ну так просто возьмите и удалите их себе в редакторе правил, оставив только моно-цвета; или перекрасьте их себе так, чтобы они стали красивыми для вас по вашим меркам/критериям.\nИбо самостоятельная кастомизация под себя как раз таки и является обязательным намеренным дизайном; а встроенные дефолтные окраски -- приятный бонус, мемасы, _демонстрация возможностей_ , и использование в качестве примеров для реверса.\n\n\n\nИнструкция по установке:\n\n1. https://chromewebstore.google.com/detail/jrthl\n\n2. Всё\n\n\n\nС самого начала я хотел опубликовать это как своё первое расширение на Chrome Web Store, но… неожиданно столкнулся с непреодолимым препятствием -- разовый регистрационный взнос аккаунта разработчика размером в 5 USD. Я конечно же, подахерел от такой неожиданности. Мало того, что я бичпак-бомж, гроши считаю, так там ещё и сракции политические; из-за чего мне пришлось чесать репу, где найти зарубежную карту для оплаты.\n\nНо к счастью мне повезло… Я поскребал по сусекам, выудил из заначек последние гроши, собрал жалкую дань с самого себя, сделал сальто назад, оплатил этот несчастный взнос, и в итоге обанкротился. Мне теперь даже на дошик не хватает! …Но зато теперь могу публиковать расширения на CWS, и это хорошо.\n\nЯ назвал своё расширение JoyReactor tag highlighter, или коротко jrthl.crx\n\n\n\n**Мотивация создания и философия**\n\nТранзитивность с подсветки синтаксиса.\n\n\n\n**Как пользоваться этим дерьмом?**\n\nПростой сценарий использования:\n\nВас уже устраивает дефолтный пресет -- всё огонь, ничего предпринимать не нужно. Оно работает сразу \"из коробки\" за ноль кликов.\n\nПродвинутый сценарий использования:\n\nО-хо-хо, это самая интересная и сложная часть…\n\nПоскольку у меня не только нет желания делать расширение для глупых юзеров, но и нет для этого навыков (мне с разработкой помогала нейросеть), то я реализовал всё в прямом и минималистичном виде, обрабатывая только сырую информацию для работы кастомизации.\n\nДля реализации нужды внесения своих личных изменений в текущие правила, или полное создание новых с нуля -- потребуется хорошо владеть Regular Expression и умеренно владеть Cascading Style Sheets. Используйте RegEx для триггер-фильтрации на теги по предоставляемому расширению контексту и окрашивайте их указанием css атрибутов. Обратите внимание, что селекторы вообще не нужны; их своеобразную роль играют regex. Так же обратите внимание, что RegEx'ом нужно владеть именно что \"хорошо\"; как максимум потому, что нет защиты от ReDos, и как минимум потому, что напрягать мозги по фильтрации и дизайну контекста вам всё равно придётся.\n\n\n\n**Спецификация Domain-Specific Language**\n\nDSL в этом расширении настолько примитивен, что DSL в нём распознаётся с натяжкой; и настолько прост, что описать его можно в одном предложении: Все строки обрезаются до первого символа комментария и разбиваются на пары, в которой каждая 0-parity -- regex, а 1-parity -- css. Всё. После чего они сразу пускаются в работу как есть.\n\n\n\n**Мнемоники технических контекстных данных**\n\n\"eg\" -- \"версия\" движка [0-2]\n\n\"ht\" -- тема оформления [0-1]\n\n\"ly\" -- макет элемента:\n\n \"f\" -- передник (текст)\n\n \"b\" -- подложка (капсула)\n\n \"fb\" -- едино (просто текст)]\n\n\n\n**О реализации**\n\nВ связи с крайней простотой расширения, нет валидации синтаксиса RegEx и CSS -- ошибки будут обнаруживаться только по факту неработоспособности правил.\n\nВсё редактирование происходит только в одном текстовом поле, потому что гольф-дизайн -- мета и универсальная глобальность через готовые элементы общего назначения.\n\n\n\n**Afterword**\n\nЭй, среди читателей есть кто шарит за мета css? Хотите заценить моё гениальное решение? Для обеспечения анимации я ту же самую строку без изменений сую как `.cssText +=` и как глобальный `<style>`, и оно нахрен работает! Благодаря игнорированию каждым не-своей части, гениально! И тем самым DSL смог остаться регулярно-простым без взрывного усложнения парсера.\n\nP.s. Среди тех, кому очень понравилось это расширение, можете пожалуйста подарить мне боярский аккаунт в качестве благодарности? Ну позязя. Ну позязя… Нет, я не прихуел. Если у меня вдруг появится боярский аккаунт, то это будет отличной демонстрацией для хейтеров, что моя подсветка тегов понравилась кому-то аш вот на столько!\n\nP.s. Git-репы нет; issue сюда, в лс, на почту, или хрен знает.\n\nРазвернуть\n\n\nКомментировать",
"title": "Пост №6318615"
}