За последние 24 часа нас посетили 18088 программистов и 1680 роботов. Сейчас ищут 1063 программиста ...

CSS Beautifier

Тема в разделе "Решения, алгоритмы", создана пользователем <?=RPG?>, 8 янв 2011.

  1. <?=RPG?>

    <?=RPG?> Активный пользователь

    С нами с:
    19 ноя 2010
    Сообщения:
    451
    Симпатии:
    0
    Искал-искал я на просторах сети подобную штуку, но натыкался либо на мордоворотов, построенных на КА, либо вообще server-side решения. А надо-то всего лишь расставить отступы в CSS-файле. Функция естественно JavaScript (на РНР переписать — раз плюнуть).
    Код (Text):
    1.  
    2. function css_beautify(text) {
    3.   text = text.replace(/\s*([a-zA-Z-]+):\s*([^{]*?)\s*?(?:[;\n]|(?=[ \t]*}))([ \t]*\/\*(?:(?=\*\/)|.)*\*\/)?\s*(?=[^{}]*})/g, '  $1: $2;$3\n');
    4.   text = text.replace(/;\n\*\/(?=[^{}]*})/g, '; */\n');
    5.   text = text.replace(/(.*?)\s*{\s*([^{}]*?)}\n?\n?/g, '$1\n{\n  $2}\n\n');
    6.   return text;
    7. }
    Код конечно сложно понять, (я сам уже слабо вникаю) но он работает и пока меня не подводил. Большую часть css не портит.