19/02/2017

Vivaldi

Les visiteurs assidus ont peut-être remarqué que mon site mettait des habits différents à chaque saison. C'est que j'utilise un script python qui permet en une ligne de commande de modifier les couleurs de la feuille de style.

Syntaxe

La commande ressemble à ceci

./vivaldi.py style.css iverno

Adaptation de la feuille de style

Les feuilles de style traitées par Vivaldi sont des feuilles de styles css ordinaires. C'est la présence d'un commentaire spécial qui déclenche le traitement.

Exemple :

body {
  max-width: 680px;
  ...
}
...
body {
  background-color: white;
  /* vivaldi color: #085200  #95005d #6e4004 #051630*/
  color: #051630;
}

Dans l'exemple ci-dessous j'ai séparé les règles des couleurs des autres. Ce n'est pas obligatoire, mais c'est plus commode pour la mise au point.

La règle concernant le fond background-color n'est pas précédée du commentaire magique. Elle est statique et Vivaldi ne la modifiera pas.

Par contre la règle color: est précédée d'un commentaire spécial qui débute avec vivaldi .

	/* vivaldi color: #085200  #95005d #6e4004 #051630*/

Ce commentaire va déclencher le traitement, qui consiste à écrire la règle color: suivie de l'argument adéquat qui est la couleur de saison.

Autre exemple :

	/* vivaldi color: green red brown blue*/
	color: yellow;

produirait

Le script

Le script est disponible ici vivaldi

Le nerf de la guerre est l'expression régulière :

# something like /* vivaldi color: #2f4800  #48002f #482f00 #002f48*/ 
regex = re.compile(r'(\s*)/\* vivaldi (\S*) ([^*]*)\*)

Cette expression reconnait le motif du commentaire spécial.

La correspondance est disséquée par les lignes:

  m = regex.match(line)
    ...
    tabs, wd, data = m.groups()
    ...

La ligne next(ifcss) permet de sauter la lecture de la lingne originale qui a été réécrite.




Réalisé avec Qlam - LGPL