В настоящее время я использую lessphp как мой LESS компилятор. Я знаю, что это предоставляет способ установить переменные LESS, но есть ли способ перезаписать переменные, установленные в файле?
Например, у меня есть следующий файл LESS:
@theme-color: #000055;
h1 {
color: @theme-color;
}
h2 {
color: @theme-color * 1.3;
}
h3 {
color: @theme-color * 1.5;
}
Чтобы скомпилировать его в PHP,
require"path/to/leafo/lessphp/lessc.inc.php";
$less = new lessc;
$less->setVariables(array(
"theme-color" => "#000055"));
$less->compileFile("basic/path/less/main.less", "basic/path//css/main.css");
Он успешно компилирует файл, но переменная @ theme-color не перезаписывается. Есть ли способ перезаписать это?
Я не возражаю против использования другого компилятора, если это необходимо, но он должен быть на стороне сервера, так как компилятор javascript слишком медленный и создает момент отсутствия просмотра CSS.
Возможно, вы можете использовать compile()
вместо compileFile()
;
$lesscode = file_get_contents("basic/path/less/main.less");
$lesscode .= "@themecolor: #000055;";
file_put_contents("basic/path//css/main.css", $less->compile($lesscode));
Кажется, что нет никакого способа сделать это с Леафо lessphp компилятор. Наконец я перешел на использование oyejorge lessphp компилятор.
С помощью компилятора lessphp oyejorge переменная может быть изменена после загрузки файла и в то же время может включать файл:
$parser = new Less_Parser();
$parser->parseFile( "path/to/less/main.less", url("path/to/less/") );
$parser->ModifyVars( array('theme-color'=>'#005500') );
$css = $parser->getCss();