{
  "$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"
}