Blogger : Les balises defaultmarkup pour diffuser du code
Quand on travaille à l'amélioration du code d'un thème Blogger, se pose la question de la portabilité des modifications vers d'autres thèmes, ne serait-ce que vers celui de ses propres blogs.
Grâce aux balises <b:defaultmarkup> Blogger propose une solution souple et efficace, mais non sans risques, que je vais vous expliquer par l'exemple.
Rappel préliminaire : avant toute modification du thème de votre blog, faites une sauvegarde !
Le problème
Pour faire simple, imaginons que ma lubie soit seulement de rajouter l'affichage du mot "Coucou" au gadget "Blog". La solution la plus rapide est de rajouter ça dans l'inclusion 'main' du gadget, mais cette modification sera écrasée dès qu'on passera par la fonction " Rétablir les paramètres par défaut". Si je veux la garder à tout prix, je ne pourrai plus faire de mises à jour du gadget, sous peine de voir mon travail disparaître... Situation délicate !La solution
Heureusement, avec les balises <b:defaultmarkup> (sans s) Blogger offre une solution élégante et pratique pour le développeur et la diffusion de son travail, qui concilie l'ajout de ses améliorations et la continuité des mises à jour des gadgets.
Si je reprends mon exemple simplissime, à l'intérieur des balises <b:defaultmarkups> et </b:defaultmarkups> (avec s, qui sont quelque part dans le <head> et si elles n'y sont pas, il suffit de les rajouter) j'introduis ce code :
<b:defaultmarkup type='Blog'>
<b:includable id='main'>
Coucou
<b:include name='super.main'/>
</b:includable>
</b:defaultmarkup>
Explications
- <b:defaultmarkup type='Blog'>la balise cible le gadget 'Blog'
- <b:includable id='main'>nouvelle inclusion qui redéfinit l'inclusion 'main' du gadget ciblé, Blog dans l'exemple.
- Coucouest le code que je veux ajouter.
- <b:include name='super.main'/>appelle l'inclusion 'main' originale Blogger du gadget ciblé. Si cet appel n'est pas fait, seul le mot 'Coucou' sera affiché par le gadget.
- </b:includable> et </b:defaultmarkup>ferment les balises.
Important : si je me contente d'enregistrer ça, RIEN ne va se passer !
Pour que ce code soit pris en compte il faut passer par la fonction 'Rétablir les paramètres par défaut des thèmes de widgets' et choisir le rétablissement du gadget 'Blog1' . Blogger va alors intégrer directement dans le code du gadget le code que je viens de rajouter dans la balise <b:defaultmarkup type='Blog'>.
C'est un aspect du rétablissement des gadgets qu'il faut bien garder en tête, car si des modifications antérieures ont été faites directement dans leur code, elles seront écrasées. Et si ça se produit, on ne regrettera pas d'avoir fait une sauvegarde préalable ! La solution est alors de copier tout le code modifié du gadget dans la nouvelle inclusion définie à l'intérieur des balises <b:defaultmarkup> et de ne plus faire l'appel à l'inclusion 'super.main'.
Commentaires