Плагин для FireFox «ScrapBook»
Думаю, что многие знают про плагин ScrapBook для FireFox'а. Он позволяет сохранять страницы локально на диск, и после их упорядочивать для удобного просмотра. Но как оказалось, ScrapBook может быть полезен для вебмастера и в достаточно неожиданном качестве.
При разработке сайта требуется подбирать css-стили: в этом случае происходит «замусоривание» css-файла неиспользоваными параметрами. Для того, чтобы отключить действие какого-либо стиля не обязательно его удалять из css-файла, достаточно сделать его невалидным, например так:
color: red; << рабочий
co2lor: red; << нерабочий
При сохранении страниц, ScrapBook обрабатывает css-файлы так, что исключает невалидные параметры и оптимизирует оставшиеся. Таким образом для того, чтобы оптимизировать свой css-файл, достаточно захватить страницу с помощью ScrapBook и, после, взять уже готовый css-файл.
Как работает сохранение страниц
ScrapBook сохраняет веб-страницу не как единый слепок, а разбирает её на составные части: HTML-разметку, изображения, таблицы стилей, скрипты. Каждый ресурс загружается отдельно и помещается в локальную папку, после чего плагин перезаписывает ссылки в HTML так, чтобы они указывали на локальные копии. Это позволяет открывать сохранённую страницу без доступа к интернету, при этом сохраняя её исходную структуру.
При обработке CSS-файлов плагин выполняет разбор правил. Браузерный парсер CSS игнорирует объявления с неизвестными свойствами или синтаксическими ошибками, но сами ошибочные строки остаются в файле и занимают место. ScrapBook при сохранении анализирует таблицу стилей, отбрасывает нераспознанные или невалидные объявления и оставляет только те правила, которые парсер счёл корректными. Попутно могут удаляться дублирующиеся селекторы и пустые блоки правил.
Описанный приём с намеренной порчей свойства — например, добавлением лишнего символа в имя — делает объявление недействительным с точки зрения парсера. Браузер такое объявление пропускает, и стиль перестаёт применяться к странице. При последующем захвате страницы ScrapBook удаляет эти невалидные строки из локальной копии CSS-файла, оставляя только работающие правила. Это даёт эффект очистки без ручного вычищения файла.
Метод не является полноценной заменой специализированным инструментам минификации и очистки CSS, поскольку не удаляет неиспользуемые селекторы и не переупорядочивает правила для уменьшения размера. Он лишь исключает синтаксически неверные объявления, которые браузер в любом случае игнорирует.
