Rappel de ma démarche : je cherche à éviter dans la mesure du possible, et surtout des besoins l'installation de plugins. Aussi le template que Bazooka07 nous propose me convient très bien et je vais de ce pas l'adopter dans mes thèmes
Conclusion...mais sans doute provisoire
Depuis bientôt un an, une sorte de "break" dans mes sites du à une réflexion sur la structuration de ces sites ( dossier thèmes ou non, dossier common à l'exterieur, fonctionnement des sous-sites,etc..), passage à une démarche mobile-first & first-content, choix d'une typographie "responsive", création de mon propre framework au lieu d'en utiliser un déjà existant my Simple Framework et adapté à PluXml my PluSimple Framework, et bien d'autres éléments de réflexion comme le nommage des classes.....
Parfois il faut savoir changer
et savoir revenir sur ses choix....
Depuis assez longtemps j'avais fait le choix de modifier la structure de Pluxml en considérant qu'il n'y avait pas besoin de plusieurs thèmes et donc qu'au lieu de ranger les thèmes dans le dossier thèmes themes/themeName par défaut de Pluxml, de créer un simple dossier à la racine themeName et de modifier la configuration de base en conséquence.
Aujourd'hui arrivant à la conclusion ( enfin approchant presque) je reviens sur ce choix.
Test plugin pluPrism
Particularités m'ayant fait choisir Prism
C'est la balise <code>
et non la balise<pre>
qui est est affectée d'une classe.
Et l'une des particularités de Prism est que la classe utilisée est conforme aux spécifications W3C de l'élément <code> : elle commence par le mot-clé language-
. Voici donc les différentes classes que j'ai choisi d'utiliser:
class="language-markup"
: concerne le HTML ou le XML.class="language-css"
: concerne le code css.class="language-markup"
: concerne le PHP.class="language-javascript"
: concerne le code JavaScript.class="language-java"
: concerne le code Java.
La reconnaissance de code intégré dans un autre langage est pris en charge également (CSS dans HTML ou JavaScript dans HTML par exemple).
Utilisation de Prism
Mais où placer ce code d'identification ? Fort logiquement, on pourra l'ajouter aux balises <code>
. Mais une autre alternative, et c'est là encore un des grands atout de Prism, s'offre à vous. Vous pouvez indiquer un type de coloration syntaxique pour toute une partie de la page en plaçant la classe dans un des éléments ancêtre. Voici deux exemples fonctionnels qui seront plus parlant:
Identification dans les balises <code>
Coloration syntaxique de code HTML en plaçant l'identificateur dans chaque balise <code>
. On constate que pour le bloc de code final, le balisage avec l'élément pre
ne suffit pas, il doit contenir un élément code
pour respecter les spécifications.
Le marquage de chaque balise <code>
est relativement fastidieux dans ce cas. Il vaut mieux opter pour la solution proposée ci-après.
Identification dans une balise ancêtre
Ici, seule la balise <section>
sera affublée de la classe language-markup
ce qui entraînera la coloration de toutes les parties encadrées par la balise <code>
. Beaucoup moins de travail, ne trouvez-vous pas ? Voici donc le même exemple avec la simplification proposée.
@import url(http://fonts.googleapis.com/css?family=Questrial);
@import url(http://fonts.googleapis.com/css?family=Arvo);
@font-face {
src: url(http://lea.verou.me/logo.otf);
font-family: 'LeaVerou';
}
/*
Shared styles
*/
section h1,
#features li strong,
header h2,
footer p {
font: 100% Rockwell, Arvo, serif;
}
/*
#languages-list li[data-id="javascript"] {
border-bottom: 1px solid #aaa;
padding-bottom: 1em;
margin-bottom: 1em;
margin-right: 1em;
}
Les plugins ajoutent des fonctionnalités supplémentaires à l'outil.
En voici trois que j'utilise:
Ressources
- Line Highlight : permet de mettre en surbrillance une ou plusieurs lignes.
Créer son plugin..suite
Pour un premier essai j'ai choisi quelque chose de simple. Au lieu d'appeler un script de coloration syntaxique à partir des templates, je vais en faire un plugin..pluPrism