Changeset 81278 in spip-zone


Ignore:
Timestamp:
Mar 9, 2014, 3:47:14 PM (5 years ago)
Author:
cedric@…
Message:

Le trunk passe en version 1.0.0-dev suite a changement de la librairie de compilation de LESS en PHP
On utilise desormais http://lessphp.gpeasy.com/

A noter :

  • le plugin SPIP BootStrap? ne compile pas avec cette librairie car il utilise des "faux" mixins de balise, tolérés par l'ancienne librairie LESS mais non conformes à la syntaxe LESS. Correctifs à venir sur le plugin BootStrap? de SPIP (cela ne concerne pas BootStrap? par lui même)
  • la gestion des URLs des images est pour l'instant identique à precedemment, mais elle va changer pour prendre en compte le chemin relatif au fichier LESS qui contient la directive url() et non le fichier LESS qui inclu tous les autres
  • la librairie permet les SourceMap?, c'est une fonctionnalité à intégrer dans le plugin
  • il semble que la librairie soit gourmande en mémoire (64Mo necessaires pour compiler le plugin SPIP BootStrap?)

Cette branche est donc en developpement et n'est pas encore prête à être utilisée en production

Location:
_plugins_/less-css/trunk
Files:
4 added
1 deleted
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/less-css/trunk/lesscss_fonctions.php

    r80425 r81278  
    1919 */
    2020function lesscss_compile($style, $contexte = array()){
    21         require_once 'lessphp/lessc.inc.php';
    22 
    23         if (!class_exists("SPIPlessc")){
    24                 class SPIPlessc extends lessc {
    25                         protected function addParsedFile($file) {
    26                                 $this->allParsedFiles[$file] = filemtime($file);
    27                         }
    28                 }
    29         }
    30 
    31         // le compilateur lessc compile le contenu
    32         $less = new SPIPlessc();
    33         // lui transmettre le path qu'il utilise pour les @import
    34         $less->importDir = _chemin();
     21        static $import_dirs = null;
     22        require_once 'less.php/Less.php';
     23
     24        if (is_null($import_dirs)){
     25                $path = _chemin();
     26                $import_dirs = array();
     27                foreach($path as $p){
     28                        $import_dirs[$p] = url_absolue($p?$p:"./");
     29                }
     30        }
     31
     32        $parser = new Less_Parser();
     33        $parser->setImportDirs($import_dirs);
    3534
    3635        try {
    37                 $out = $less->parse($style);
    38 
    39                 if ($files = $less->allParsedFiles()
     36                $parser->parse($style,$contexte['file']?url_absolue($contexte['file']):null);
     37                $out = $parser->getCss();
     38
     39                if ($files = Less_Parser::AllParsedFiles()
    4040                  AND count($files)){
    41                         $files = array_keys($files);
    42                         $l = strlen(_ROOT_RACINE);
     41
     42                        $l = strlen(_DIR_RACINE);
    4343                        foreach($files as $k=>$file){
    44                                 if (strncmp($file,_ROOT_RACINE,$l)==0){
     44                                if (strncmp($file,_DIR_RACINE,$l)==0){
    4545                                        $files[$k] = substr($file,$l);
    4646                                }
    4747                        }
    48                         $out = "/*\n#@".implode("\n#@",$files)."\n*/\n" . $out;
    49                 }
     48                        $out = "/*\n#@".implode("\n#@",$files)."\n*"."/\n" . $out;
     49                }
     50
    5051                return $out;
    5152        }
    5253        // en cas d'erreur, on retourne du vide...
    5354        catch (exception $ex) {
    54                 spip_log('lessc fatal error:'.$ex->getMessage(),'less'._LOG_ERREUR);
     55                spip_log('less.php fatal error:'.$ex->getMessage(),'less'._LOG_ERREUR);
    5556                erreur_squelette(
    5657                        "LESS : Echec compilation"
  • _plugins_/less-css/trunk/plugin.xml

    r80425 r81278  
    33        <slogan>Int&#233;gration de l'impl&#233;mentation php de LESS</slogan>
    44        <auteur>Jean-Baptiste Bourgoin</auteur>
     5        <auteur>Cedric Morin</auteur>
    56        <licence>MIT</licence>
    6         <version>0.7.11</version>
    7         <etat>test</etat>
     7        <version>1.0.0</version>
     8        <etat>dev</etat>
    89        <icon>img/lesscss-32.png</icon>
    910        <description>
    1011LESS est une extension de CSS ajoutant les variables, les classes, les op&#233;rations, les imbrications au langage. Facilitant ainsi
    11 l'&#233;criture de feuilles de style complexes. [->http://leafo.net/lessphp/]
     12l'&#233;criture de feuilles de style complexes. [->http://lessphp.gpeasy.com/]
    1213
    1314Ce plugin compile &#224; la vol&#233;e tous les fichiers .less.css ou .less du squelette qui contient #INSERT_HEAD. Vous pouvez aussi forcer la compilation d'un fichier ou d'une feuille de style calcul&#233;e &#224; l'aide du filtre less_css.
Note: See TracChangeset for help on using the changeset viewer.