/var/log/life.log
Блог программиста из солнечной Бурятии

Использование LESS в Joomla

Так же как javascript подключать css в joomla лучше через JHtml. Это даёт возможность упростить обработку подключаемых стилей плагинами. Об одном из таких плагинов я и хочу написать.
До не давнего времени я как то не смотрел в сторону препроцессоров css. И вот посмотрел:) Собственно я выбрал LESS из-за того, что его можно подключать в качестве js библиотеки на сайт. Не охота, чтобы ещё какая-то программа висела в памяти и компилировала на лету. Это свойство LESS я и использовал в https://github.com/VampiRUS/joomla-plg-system-less.
Плагин в debug режиме подключает LESS, указанной в настройках плагина версии. А подключаемые css заменяет на less версии, если таковые имеются. Опять же всё происходит незаметно. При разработке – LESS, а на рабочем сервере – css. Естественно файлы нужно перед этим скомпилировать. Этим у меня powershell занимается.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function pack-less($arg){
    $path = ""
    if ([string]::IsNullOrEmpty($arg)){
        $path = Get-Location
        $path = $path.toString()+""
    } else {
        $path = $arg
    }
    $less = Get-ChildItem $path -Filter *.less|Foreach-Object {$_.Name}
    $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding($False)
    foreach($file in $less){
        $css = $file -replace ".less",".css"
        $pack = &"lessc" -x $path$file
        $to = $path+$css
        [System.IO.File]::WriteAllLines($to, $pack ,$Utf8NoBomEncoding)
    }
}