Utilisation du plugin
Ce plugin compile à la volé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ée à l’aide du filtre |less_css.
Les fichiers générés sont mis en cache dans /local/cache-less
Le langage LESS
LESS est une extension de CSS ajoutant les variables, les classes, les opérations, les imbrications au langage. Facilitant ainsi l’écriture de feuilles de style complexes.
La documentation officielle (http://lesscss.org) offre de bons exemples de ce qu’il est possible de faire avec LESS :
Variables :
@brand_color: #4D926F;
#header {
color: @brand_color;
}
h2 {
color: @brand_color;
}
Mixins
.rounded_corners (@radius: 5px) {
-moz-border-radius: @radius;
-webkit-border-radius: @radius;
border-radius: @radius;
}
#header {
.rounded_corners;
}
#footer {
.rounded_corners(10px);
}
Nested rules :
#header {
color: red;
a {
font-weight: bold;
text-decoration: none;
}
}
Operations
@the-border: 1px;
@base-color: #111;
#header {
color: @base-color * 3;
border-left: @the-border;
border-right: @the-border * 2;
}
#footer {
color: (@base-color + #111) * 1.5;
}
La balise #CSS
Le plugin introduit une nouvelle balise #CSS
qui cherche les fichiers .css ou .less du même nom pour les compiler en fichier .css statique.
Exemple d’utilisation
[<link rel="stylesheet" href="(#CSS{css/style.css})" type="text/css" />]
La balise va chercher un fichier css/style.less ou css/style.css ou css/style.css.html pour retourner un fichier css classique interprétable.
Depuis la version 1.2.3 du plugin (Octobre 2018), le plugin permet d’activer une nouvelle valeur css
pour forcer le recalcul des squelettes CSS,
en affichant un bouton d’administration supplémentaire pour &var_mode=css
.
Discussions par date d’activité
22 discussions
Bonsoir,
Juste pour mémoire, voici une lib LessPHP maintenue par la fondation Wikimedia :
https://github.com/wikimedia/less.php/blob/master/CHANGES.md
Et compatible php 7.3
Les performances sont vraiment bien meilleures avec SCSS et le plugin ScssPhp
Répondre à ce message
La dernière mise à jour de Lesscss provoquait le message d’erreur
« parse error unexpected [ in .../lesscss_fonctions.php ligne 154 »
Je n’ai pas su trouver l’erreur en examinant le fichier (rev 117659) mais j’ai fini par le remplacer par sa version précédente (rev 114181) ce qui fait disparaître le problème.
Comme je ne disposais pas de la version précédente de lesscss, j’ai simplement remplacé le fichier php, les autres fichiers restant ceux de la dernière distribution.
A ce sujet, pouvoir télécharger la version n-1 de chaque plugin serait un avantage.
C’est une syntaxe utilisée dans les dernières versions de PHP.
J’ai corrigé sur la version 1.4.4 du plugin.
Pour les versions n-1 des plugins : ca attendra la fin du travail / reflexion sur les outils de dev communautaires de SPIP.
La version 1.4.4 fonctionne sans problème pour moi.
Merci pour la réactivité ainsi que pour tout ce que vous faites (sans oublier les autres développeurs de la communauté SPIP).
Répondre à ce message
Au niveau du compilateur, il nous a été conseillé de désactiver la ligne suivante :
En effet, cette ligne provoque l’affichage des chemins absolus dans les fichiers générés, par exemple :
ce qui permet d’identifier le chemin absolu du serveur.
Serait-il possible de rendre cet affichage paramétrable dans la configuration du plugin svp ?
Répondre à ce message
Bonjour à tous
J’ai créé un plugin qui se base sur SPIPr en y ajoutant des fonctionnalités qui me sont propres.
Le squelette de SPIPr prévoie la possibilité à d’autres plugins de pouvoir injecter du CSS grâce à la balise #INSERT_HEAD_CSS. Pour cela, on doit utiliser le pipeline correspondant pour s’insérer dans le flux.
Sauf que mon plugin utilise du LESS. Comment injecter du LESS dans le flux ?
J’ai codé ça :
mais ça sort mal dans le HTML. Le compilateur LESS n’est pas appelé évidemment :
En fait, il faut compiler le LESS et injecter le CSS résultant.
Peut-on le faire dans le pipeline ?
j’ai fait un essai : il est inutile de mettre la syntaxe des balises spip : manifestement, quand on cherche à inclure un fichier .less, SPIP cherche automatiquement à le compiler.
Donc il faut écrire simplement :
Et bien ça alors ! ça marche !
Et cela me mets bien le résultat de la compilation dans le flux des css comprimés.
Gros MERCI Mikha.
Répondre à ce message
Bonjour,
J’utilise cette syntaxe dans une feuille CSS dynamique qui appelle une feuille less elle aussi dynamique :
En SPIP 3.1, ça marchait sans problème.
En SPIP 3.2, même avec une feuille less vide, ça donne :
LESS : Echec compilation
Et le fichier en question n’a que ça ligne 1 :
J’ai trouvé : il fallait supprimer le timestamp avant de faire le filtre less :
Répondre à ce message
Hello :-)
Bon, je ne suis pas sûr qu’il s’agit du bon forum, mais bo...
php 5.6.30 sur mutu chez ovh
J’ai un méchant bug, qui plante complètement SPIP 3.2.0-beta3 [23683] :-D
En faite, au départ, je voulais mettre en route le squelette spipR https://plugins.spip.net/spipr_dist.html mais avec bootstrap3 sass https://zone.spip.org/trac/spip-zone/browser/_plugins_/bootstrap3_sass/trunk/paquet.xml
Donc pour ce faire, j’ai télécharger et activer bootstrap3_sass puis, j’ai télécharger et activer spipr
Le problème, c’est que spipr necessite spip-less
Si bien que "svp" m’indique :
Actions demandées :
• Activer le plugin « SPIPr-dist » (version : 0.4.16)
Les actions supplémentaires suivantes seront effectuées :
• Activer le plugin « Z-core » (version : 2.6.3)
• Activer le plugin « LESS CSS » (version : 1.0.11)
• Activer le plugin « Comments » (version : 3.4.1)
• Mise à jour du plugin « Bootstrap 3 - SASS » (de la version 1.0.0 à )
Alors il y a sans doute un bug de "svp" car il n’est pas logique qu’il s’apprête à faire une mise à jour de bootstrap 3 - sass ( qui n’existe pas sur la zone) mais bon, peu importe, le problème, c’est surtout que après, cela me plante complètement spip en affichant comme message :
Fatal error : Cannot redeclare balise_CSS() (previously declared in /home/.../auto/scssphp/v1.3.6/scssphp_fonctions.php:232) in /home/.../auto/lesscss/v1.0.11/lesscss_fonctions.php on line 251
Je me doute que less css et scssphp sont incompatible, mais je pensais pas que spip planterait complètement non plus :-D
Effectivement, « Less CSS » et « ScssPhp » utilisent des fonctions qui ont le même nom, donc ça ne peut que planter.
Il faut que tu supprimes « ScssPhp » par FTP.
Répondre à ce message
J’aurais aimé utiliser des variables de configuration de spip dans mes fichiers less mais il ne me semble pas que cela fonctionne. Quelqu’un a t-il une idée de comment faire ?
par exemple j’aurais aimé pouvoir configurer certaines couleurs directement sur spip par un plugin.
Merci pour votre aide
Bonjour, tombant juste sur ton message, une réponse très tardive qui peut servir à d’autres : oui c’est possible.
Imaginons dans le dossier de squelettes un fichier styles.less où tu voudrais placer des balises SPIP.
Il faut le renommer en styles.css.html, et ajouter ces 2 lignes au tout début :
Ensuite, il faut référencer la feuille de style au moyen de la balise
#PRODUIRE
et appliquer le filtreless_css
:Ah, et si au lieu de xxx.css.html on veut nommer ses fichiers xxx.less.html (plus logique), il faut ajouter l’option
format=less
à la balise#PRODUIRE
:Et comme j’ai eu le besoin d’inclure le résultat dans une autre CSS dynamique, voici la syntaxe :
Répondre à ce message
Hello,
Pas de soucis de message d’erreur de mon coté, mais un très long temps de calcul à chaque modification des feuilles de style due aux nombreux css imbriqués.
évidement, cela ne se produit que lorsque la variable var_mode=recalcul est passée. Mais c’est très handicapant pendant les périodes de développement.
Quelqu’un a t’il des bonnes pratiques pour éviter ces temps de latence ? Peut-être une modification de la config du serveur pour accélérer les calculs ?
Répondre à ce message
Bonjour,
J’essaye d’installer SPIPr sur le site de mon établissement.
Cependant, le menu de navigation ne s’affiche pas, et j’ai le message d’erreur suivant :
La ligne 245 du fichier lesscss_fonctions.php correspond à :
Je copie également le paragraphe avec les quelques lignes au-dessus et en dessous :
Quelqu’un aurait-il la solution à ce problème ?
Merci par avance.
Alors ? SPIPr a-t-il pu être installé ? Car je bloque sur le même problème…
Bonjour,
Oui le problème est résolu, j’avais posté la réponse sur le forum mais je n’avais plus pensé à le faire ici...
Pour résoudre le problème j’avais fait deux modifications :
Je crois que c’est surtout la seconde solution qui avait été décisive.
Répondre à ce message
J’ai mis à jour un site de spip 3.0.17 en 3.0.20 et au passage j’ai aussi mis à jour less-css qui était en 0.7.11 avec la dernière version.
Cependant mon site bug et je me retrouve avec un message d’erreur sur le site public :
Warning : Missing argument 2 for Less_Functions::lighten() in /home/casptdkw/www/plugins/auto/less-css/less.php/Less.php on line 3166
Fatal error : Call to undefined method Less_Tree_Expression::toHSL() in /home/casptdkw/www/plugins/auto/less-css/less.php/Less.php on line 3167
J’ai été obligé de revenir en 0.7.11 pour faire fonctionner à nouveau mon site.
Une idée de comment corriger le problème ?
Soucis similaire : site fonctionne avec 0.7.11 m’ais l’update en 1.0.5 ssuscite des erreurs de compilation de LESS.
Il semble que dans mon cas la nouvelle version soit simplement moins tolérante envers les erreurs de syntaxe (variables manquantes, etc.)
Et quels étaient tes erreurs ? car pour moi impossible de trouver d’ou viens le problème.
Autant si je fais une faute de syntaxe, alors mon site apparait avec un erreur SPIP de compilation.
Mis dès que je n’ai plus d’erreur pour moi ; le site n’apparaît plus et j’ai à la place ces messages d’erreurs :(
Ok trouvé, il n’aimait pas les double opérations.
Style : lighten(saturate(@lien,30%)10% ;
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |