Так уж сложилось, что в СНГ довольно популярен русский Q&A ресурс по ИТ тематике — เครื่องปิ้งขนมปัง. Однако чего-то ему не хватало, когда я начал плотно с ним знакомиться. Это и вылилось в улучшение в виде браузерного расширения. Встречайте.
คุณสมบัติหลัก:
ชื่อ: Toster Comfort.
Статистика пользователей: процент вопросов с решением; карма с Хабра; сводка из профиля — всё это в списке вопросов Тостера.
ประกาศ: в реальном времени на сайте, на иконке, плюс push-уведомления, много настроек, сайт должен быть открыт (วิกิพีเดีย).
ตัวกรอง: условия на основе формул: можно скрывать вопросы, раскрашивать их цветом, а также показывать уведомления, — всё это гибко настраивается в виде логических условий (วิกิพีเดีย).
อินเตอร์เฟซ: мелкие улучшения, например, показ точных дат или отображение статуса подписки в списке вопросов.
Интерфейс Хабра: мелкие улучшения (опционально), например, линии на отступы в комментариях.
โอเพ่นซอร์ส: можно переделать под себя, если очень хочется (แหล่งที่มา).
Изначально расширение сделал для себя с одной-единственной целью: показывать процент вопросов пользователя, в которых он удосужился нажать кнопку «Отметить решением». Затем мало-помалу добавлялись то одни, то другие хотелки, пока инструмент не вырос в монстра на сотню килобайт. Тем не менее, принцип «не использовать ничего лишнего» соблюдался до конца.
Одной из главных фич сейчас является использование формул в настройках. С ними можно делать практически, что угодно, любую хотелку по управлению своим вниманием. Главное знать, что хотеть. Сокрытие, изменение цвета и уведомления — вот три основных аспекта внимания при работе с сайтом. Фильтрация всего и вся — ключ к удобству.
Пример гибкого правила, которое позволит получать уведомления на определённую тему:
Сразу скажу, что функцию eval() использовать было нельзя. Так что особо не разгуляешься. Поэтому пришлось написать свой костыль на 5 КБ кода, используя обратную польскую запись. Это, можно сказать, сильно кастрированный JS, как по функциям, так и по синтаксису.
Недавно был пост про ส่วนขยายของโทสเตอร์. Если сравнивать, то TE имеет более приятный интерфейс и кое-какие функции, которых нет в Toster Comfort. Однако моё расширение делает акцент на потреблении ресурсов. Впрочем, никто не мешает использовать оба расширения, они не должны конфликтовать.
По-хорошему, TC нужно переписывать с нуля, потому что работу можно ускорить минимум вдвое, а работу с кэшем — раз в 10, отказавшись от localStorage и JSON.stringify() и изменив некоторые архитектурные решения. Но этот подвиг предстоит делать уже не мне. А я поклонник принципа «работает — не трогай». Пока отпуск, активно принимаю issues и PR, но не в ущерб минимализму. Спасибо за внимание!