CodeKit 2 - меньше компилируется с пустыми строками в коде

Я использую Codekit 2.1.8 для компиляции файлов LESS. В моих файлах LESS у меня есть пустые строки, и я хочу, чтобы они были и в скомпилированном файле CSS, но Codekit, кажется, удаляет их. Я не могу найти никаких опций в Codekit, связанных с этой проблемой.

Пример:

МЕНЬШЕ файл:

p {
    font-size: 14px;
}



a {
    color: red;
}

Скомпилированный файл CSS с помощью Codekit:

p {
    font-size: 14px;
}
a {
    color: red;
}

person max    schedule 22.10.2014    source источник
comment
Нет, компилятор Less не сохраняет форматирование (поскольку он буквально компилирует исходные операторы, а затем генерирует новый код из своего внутреннего представления). Вы можете применить определенное форматирование кода после компиляции с помощью дополнительных инструментов (например, csscomb), но не когда речь идет о произвольном количестве строк между наборами правил.   -  person seven-phases-max    schedule 23.10.2014
comment
Спасибо за объяснение. Я тоже использую CSSComb, но мне это не поможет. Поэтому, к сожалению, мне приходится вручную изменять скомпилированные файлы CSS. Разве CSSComb умеет как-то добавлять пустые строки после комментариев?   -  person max    schedule 23.10.2014


Ответы (1)


При использовании командной строки по умолчанию или на стороне клиента вы можете легко добавлять свои собственные плагины, начиная с v2. Меньше сохраняет /**/ комментарии.

Добавьте в свой код LESS, например, /*3*/ для 3 новых строк.

Теперь напишите плагин, назовите этот файл less-plugin-add-newlines.js:

var getCommentsProcessor = require("./comments-processor");

module.exports = {
    install: function(less, pluginManager) {
        var CommentsProcessor = getCommentsProcessor(less);
        pluginManager.addPostProcessor(new CommentsProcessor());
    }
};

Затем напишите comments-processor.js:

String.prototype.repeat = function( num )
{
    return new Array( num + 1 ).join( this );
}


module.exports = function(less) {
    function CommentProcessor(options) {
        this.options = options || {};
    };

    CommentProcessor.prototype = {
        process: function (css) {
            var r = new RegExp("(\\/\\*)([0-9]+)(\\*\\/)","g");
            return css.replace(r,function(m1,m2,m3){ return "\n".repeat(m3*1-1); });
        }
    };

    return CommentProcessor;
};

меньше

p1 {
p:3;
}
/*3*/
p2 {
p:3;
}
/*4*/
p2 {
p:3;
}

Предыдущее будет скомпилировано при запуске lessc --plugin=less-plugin-add-newlines.js index.less:

p1 {
  p: 3;
}



p2 {
  p: 3;
}




p2 {
  p: 3;
}
person Bass Jobsen    schedule 24.10.2014
comment
Кстати, это хорошая идея. - person seven-phases-max; 24.10.2014
comment
Красивый! Я попробую это завтра. Спасибо. - person max; 25.10.2014
comment
У меня есть еще один вопрос... Я установил в терминал меньше, но это версия 1.7.5. Как перейти на v2? - person max; 29.10.2014