Статьи Архив статей

Автор: Мациевский Николай aka sunnybear
Опубликована: 19 июня 2009

CSS Tidy: нужна помощь

CSS Tidy является полностью открытой и на данный момент одной из самых мощных библиотек по преобразования CSS-кода. В большинстве случаев ее используют для минимизации CSS-кода (что позволяет добиваться весьма впечатляющих результатов, пример с сайта CSS Tidy). Огромное количество сайтов предлагают минимизаторы, основанные именно на CSS Tidy: CleanCSS, CSS Formatter and Optimizer, CSS Compressot и многие другие. Даже YUI Compressor год назад уступал CSS Tidy по степени сжатия.

Преамбула

Количество настроек CSS Tidy впечатляет: это и сжатие наименований свойств (цветов, шрифтов, фона), и регистро-независимый вывод, и объединение селекторов для максимальной минимизации кода, и их сортировка, и исключение нестандартных CSS-свойств, и сохранение синтаксиса введенного кода, и т.д. (полный список поддерживаемых настроек с примерами).

Поскольку библиотека направлена на разбор и стандартизацию (как следует из названия - Tidy), а не только на минимизацию кода, то с ее помощью можно проворачивать довольно любопытные вещи. Например, выводить CSS-код в стандартном виде в любом формате (CSS Tidy поддерживает шаблоны вывода). Или осуществлять любые преобразование с таблицей стилей на странице (к слову, именно она используется для создания CSS Sprites и, естественно, в приложении для автоматической клиентской оптимизации — Web Optimizer). В Web Optimizer уже включена самая последняя версия CSS Tidy, в которой исправлены некоторые ошибки.

Так как приложение написано с учетом высоких требований к производительности, то работает оно очень шустро (в несколько раз быстрее того же YUI Compressor).

Но речь не совсем об этом.

Амбула

На данный момент (как написано в Wikipedia) автор (Florian Schmitz) ищет людей, который смогли бы вести проект дальше. PHP-часть библиотеки не так сложна, и я справляюсь с ней самостоятельно. Но проблемы возникли при необходимости параллельно поддерживать Win32-версию (CPP). Беглый взгляд на текущий состав файлов мне ничего не подсказал, поэтому я прошу у сообщества помощи и в свою очередь ищу людей, которые смогли бы поддерживать актуальность CPP-ветки.

Для примера текущий список файлов в ней:

SConscript
background.cpp
background.hpp
conversions.cpp
conversions.hpp
cssopt.cpp
cssopt.hpp
csspp_globals.cpp
csspp_globals.hpp
csspp_private.h
csstidy.cpp
csstidy.hpp
datastruct.hpp
file_functions.cpp
file_functions.hpp
important.cpp
important.hpp
main.cpp
misc.cpp
misc.hpp
parse_css.cpp
parse_css.hpp
prepare.cpp
prepare.hpp
print_css.cpp
trim.cpp
trim.hpp
umap.cpp
umap.hpp
win32_resource.rc

Заключение

CSS Tidy уже два года "застрял" на версии 1.3. Очень хотелось бы сдвинуть эту библиотеку с мертвой точки и продолжить ее полноценную разработку, ибо с появлением CSS3-селекторов задача эта становится уже гораздо интереснее.

Если добровольцы найдутся, то можно писать в комментариях, приват или используя контакты. Будем решать, как организовывать дальнейшую работу.

Читать дальше

Все комментарии (habrahabr.ru)