Utilisateur:Tractopelle-jaune/Notepad++

Une page de Wikipédia, l'encyclopédie libre.

Règles pour la coloration syntaxique du wikicode dans Notepad++ utilisant UDL 2.1.

Instructions d'utilisation

  1. Copier-coller le code ci-dessous dans un fichier nommé wikicode.xml que vous enregistrez où vous voulez,
  2. Ouvrez Notepad++ → menu « Language » → sous-menu « Language utilisateur »« Définir votre language »
  3. Dans la boîte de dialogue qui s'ouvre, cliquez sur le bouton « Importer » et séléctionez votre fichier wikicode.xml.

Code

<NotepadPlus>
    <UserLang name="Wikicode" ext="wiki" udlVersion="2.1">
        <Settings>
            <Global caseIgnored="no" allowFoldOfComments="no" foldCompact="no" forcePureLC="2" decimalSeparator="0" />
            <Prefix Keywords1="yes" Keywords2="yes" Keywords3="yes" Keywords4="yes" Keywords5="no" Keywords6="no" Keywords7="no" Keywords8="no" />
        </Settings>
        <KeywordLists>
            <Keywords name="Comments">00! 00|+ 00;;;;;; 00;;;; 00;;; 00;; 00; 00:::::::::: 00::::::::: 00:::::::: 00::::::: 00:::::: 00::::: 00:::: 00::: 00:: 00: 01 02 03{| 04|}</Keywords>
            <Keywords name="Numbers, prefix1"></Keywords>
            <Keywords name="Numbers, prefix2"></Keywords>
            <Keywords name="Numbers, extras1"></Keywords>
            <Keywords name="Numbers, extras2"></Keywords>
            <Keywords name="Numbers, suffix1"></Keywords>
            <Keywords name="Numbers, suffix2"></Keywords>
            <Keywords name="Numbers, range"></Keywords>
            <Keywords name="Operators1">!! |+ |- | = { } DEFAULTSORT: CLEDETRI: CLEFDETRI: Fichier: Image: Media: File: Cat&#x00E9;gorie: fichier: Special: Sp&#x00E9;cial: Utilisateur: Utilisatrice: User: image: media: file: cat&#x00E9;gorie: special: sp&#x00E9;cial: utilisateur: utilisatrice: user: &amp;nbsp;</Keywords>
            <Keywords name="Operators2"></Keywords>
            <Keywords name="Folders in code1, open">(</Keywords>
            <Keywords name="Folders in code1, middle"></Keywords>
            <Keywords name="Folders in code1, close">)</Keywords>
            <Keywords name="Folders in code2, open"></Keywords>
            <Keywords name="Folders in code2, middle"></Keywords>
            <Keywords name="Folders in code2, close"></Keywords>
            <Keywords name="Folders in comment, open"></Keywords>
            <Keywords name="Folders in comment, middle"></Keywords>
            <Keywords name="Folders in comment, close"></Keywords>
            <Keywords name="Keywords1">formatnum:</Keywords>
            <Keywords name="Keywords2">class= id= style= width= scope= colspan= rowspan= bgcolor= border= valign= align= cellspacing= cellpadding= group= face= size= color= name= widths= heights= perrow= mode= caption=</Keywords>
            <Keywords name="Keywords3">ucfirst: fullurl: ns: NUMBEROFARTICLES NAMESPACE PAGENAME CURRENTTIME subst: #if: #time: #invoke: #ifeq:</Keywords>
            <Keywords name="Keywords4">* #</Keywords>
            <Keywords name="Keywords5">---- ~~~~~ ~~~~ ~~~ __TOC__ __NOTOC__ __NOINDEX__ __NEWSECTIONLINK__</Keywords>
            <Keywords name="Keywords6">thumb vignette upright redresse alt left right link baseline frame 1px 5px 10px 15px 20px 25px 30px 35px 40px 45px 50px 55px 60px 65px 70px 75px 80px 85px 90px 100px 110px 120px 125px 130px 140px 150px 160px 170px 175px 180px 190px 200px 210px 220px 225px 230px 240px 250px 260px 270px 275px 280px 290px 300px 310px 320px 325px 330px 340px 350px 360px 370px 375px 380px 390px 400px 425px 450px 475px 500px 525px 550px 575px 600px 650px 700px 750px 800px 850px 900px 1000px</Keywords>
            <Keywords name="Keywords7"></Keywords>
            <Keywords name="Keywords8"></Keywords>
            <Keywords name="Delimiters">00{{ 01 02}} 03[[ 04 05]] 06{{ 07 08}} 09{{ 10 11}} 12(( &lt;a &lt;b &lt;c &lt;d &lt;e &lt;f &lt;gallery &lt;h &lt;i &lt;j &lt;k &lt;l &lt;mark &lt;map &lt;noinclude &lt;o &lt;poem &lt;q &lt;references &lt;ruby &lt;rp &lt;rt &lt;samp &lt;small &lt;span &lt;strike &lt;strong &lt;sub &lt;sup &lt;section &lt;table &lt;td &lt;th &lt;tr &lt;tt &lt;translate &lt;tvar &lt;u &lt;v &lt;w &lt;x &lt;y &lt;z &lt;/ )) 13 14&gt; 15====== 15===== 15==== 15=== 15== 16 17====== 17===== 17==== 17=== 17== 18(( class=&quot; id=&quot; style=&quot; width=&quot; scope=&quot; colspan=&quot; rowspan=&quot; bgcolor=&quot; border=&quot; valign=&quot; align=&quot; cellspacing=&quot; cellpadding=&quot; face=&quot; site=&quot; color=&quot; group=&quot; name=&quot; widths=&quot; heights=&quot; perrow=&quot; mode=&quot; caption=&quot; )) 18(( &apos;&apos;&apos; &apos;&apos; )) 19 20&quot; 20(( &apos;&apos;&apos; &apos;&apos; )) 21&lt;ref 21&lt;graph 21&lt;math 21&lt;nowiki 21&lt;pre 21&lt;syntaxhighlight 21&lt;source 21&lt;score 21&lt;templatedata 21&lt;timeline 21&lt;!-- 22 23(( &lt;/ref&gt; /&gt; )) 23&lt;/graph&gt; 23&lt;/math&gt; 23(( &lt;/nowiki&gt; /&gt; )) 23&lt;/pre&gt; 23&lt;/syntaxhighlight&gt; 23&lt;/source&gt; 23&lt;/score&gt; 23&lt;/templatedata&gt; 23&lt;/timeline&gt; 23--&gt;</Keywords>
        </KeywordLists>
        <Styles>
            <WordsStyle name="DEFAULT" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="COMMENTS" fgColor="008000" bgColor="FFFFFF" fontStyle="0" nesting="50408435" />
            <WordsStyle name="LINE COMMENTS" fgColor="005D00" bgColor="FFFFFF" fontStyle="1" nesting="50407635" />
            <WordsStyle name="NUMBERS" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS1" fgColor="FF8000" bgColor="FFFFFF" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS2" fgColor="006A6A" bgColor="FFFFFF" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS3" fgColor="00B900" bgColor="FFFFFF" fontStyle="5" nesting="0" />
            <WordsStyle name="KEYWORDS4" fgColor="FF0000" bgColor="FEE60C" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS5" fgColor="FF0000" bgColor="FEE60C" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS6" fgColor="0080FF" bgColor="FFFFFF" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS7" fgColor="FFFF00" bgColor="FF0000" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS8" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="OPERATORS" fgColor="FF0000" bgColor="FFFFFF" fontStyle="1" nesting="0" />
            <WordsStyle name="FOLDER IN CODE1" fgColor="000000" bgColor="FFFFFF" fontStyle="1" nesting="0" />
            <WordsStyle name="FOLDER IN CODE2" fgColor="808000" bgColor="FFFFFF" fontStyle="1" nesting="0" />
            <WordsStyle name="FOLDER IN COMMENT" fgColor="FF8080" bgColor="FFFFFF" fontStyle="1" nesting="0" />
            <WordsStyle name="DELIMITERS1" fgColor="800080" bgColor="FFFFFF" fontStyle="1" nesting="50402454" />
            <WordsStyle name="DELIMITERS2" fgColor="0000FF" bgColor="FFFFFF" fontStyle="1" nesting="50429971" />
            <WordsStyle name="DELIMITERS3" fgColor="D7006B" bgColor="EBEBEB" fontStyle="1" nesting="50402458" />
            <WordsStyle name="DELIMITERS4" fgColor="800040" bgColor="D7D7D7" fontStyle="1" nesting="50402458" />
            <WordsStyle name="DELIMITERS5" fgColor="804000" bgColor="FFFFFF" fontStyle="1" nesting="67648" />
            <WordsStyle name="DELIMITERS6" fgColor="000000" bgColor="FF8000" fontStyle="1" nesting="0" />
            <WordsStyle name="DELIMITERS7" fgColor="006A6A" bgColor="FFFFFF" fontStyle="1" nesting="82003" />
            <WordsStyle name="DELIMITERS8" fgColor="808080" bgColor="FFFFFF" fontStyle="0" nesting="65536" />
        </Styles>
    </UserLang>
</NotepadPlus>

Problème connus

La qualité de la coloration syntaxique n'est pas aussi bonne que celle permise par Aide:CodeMirror (que ce soit le thème par défaut ou via mon thème sombre CodeMirror-dark).

Certains de ces problèmes pourraient êtres corrigés dans certains cas par une modification des règles, mais cela affecte leur robustesses, et casse la coloration dans certains cas. Le nombre limités de délimiteurs offets par l'UDL (8 délimiteurs + 2 prévus pour les commentaires, mais pouvant être détournés de cet usage prévu, soit 10 au total) empêche d'améliorer la mise en forme de certains éléments, et implique d'utiliser la même mise en forme pour divers types d'éléments.

l'abscence de support des expressions régulières par l'UDL limite également fortement les possibilités.

  • Modèles :
    • Abscence de différentiation entre noms de paramètres et valeurs (cause UDL ; impossibilité technique en l'état des possibilités offertes ; problème lié à la gestion des paramètres positionnels).
  • Gras/italique :
    • Abscence de différentiation entre gras et italique (cause UDL ; nombre de délimiteurs limités à 8, d'autres utilisations des délimiteurs sont jugées prioritaires).
    • Abscence de coloration des zones simultanément en gras+italique (cause UDL + complexité syntaxique ; non-support nécéssaire afin d'éviter des bugs de coloration lors de certaines situations ; en lien avec le fait de n'utiliser qu'un seul délimiteur pour le gras et l'italique).
  • Liens/catégories/images :
    • Catégories : coloration en rouge de la première lettre du nom des catégories (bug UDL ; « Catégorie: » est défini comme un mot-clé pour faciliter son identification ; bug UDL avec les mot-clés dôtés de caractère multi-octets, la longueur du segment à mettre en forme semble calculée en nombre d'octets, mais appliquée en nombre de caractères) ;
    • Souligement type URL des fichiers File: ([[File:Exemple.jpeg]]) (comportement Notepad++ avec les URI/URL) ;
    • Images : abscence de signalement en bleu clair des paramètres gauche, droite, centre, center pour les images, ainsi que de divers paramètres d'usage très rare dans les articles (limitations UDL ; impossibilité d'empêcher les faux-positifs en restreignant ces mots-clefs au balisage d'insertion d'images ; inclure ces termes communs provoqueraient la coloration intempestive en bleu clair de ces termes dans le texte libre des articles ; les termes anglais courants sont gérés, car il est beacoup plus rare de les rencontrer dans le texte libre, hors modèles) ;
    • Images : abscence de signalement en bleu clair des paramètres de taille en pixels autres que les 1px 5px 10px 15px 20px 25px 30px 35px 40px 45px 50px 55px 60px 65px 70px 75px 80px 85px 90px 100px 110px 120px 125px 130px 140px 150px 160px 170px 175px 180px 190px 200px 210px 220px 225px 230px 240px 250px 260px 270px 275px 280px 290px 300px 310px 320px 325px 330px 340px 350px 360px 370px 375px 380px 390px 400px 425px 450px 475px 500px 525px 550px 575px 600px 650px 700px 750px 800px 850px 900px 1000px ;
  • Tableaux :
    • Abscence de gras+rouge pour le balisage d'ouverture/fermeture de tableau (incompatibilité technique avec la coloration verte indiquant le contenu d'un tableau, jugée plus importante) ;
    • Abscence de gras+rouge pour les ! (en-têtes de tableaux) en début de ligne (imcompatibilité technique avec le balisage en vert+gras des en-têtes de tableaux + impossibilité technique)
  • Tableaux: Bug de coloration des attributs sans guillmets doubles type scope=col au lieu de scope="col" (bug UDL ; conflit entre opérateur = et mot-clé scope= avec mode préfixe activé ; cause le repport du balisage opérateur sur le caractère suivant et l'interruption du mot-clé ; ce bug n'est pas présent avec les attributs de balises (hors <ref></ref>) car il est contourné en n'appliquant pas les « opérateurs 1 » à l'intérieur du délimiteur dédié aux balises (possible car seule les balises d'ouverture/fermeture sont indiquées, pas le contenu) ; cette solution n'est cependant pas possible concernant les tableaux ; l'indication des opérateurs au sein des tableaux étant requises ; et de toute façon, la syntaxe sans guillmets doubles est déconseillée) ;
  • Mots magiques :
    • Coloration des mots magiques s'étendant au premier mot après le deux-points (cause UDL ; contraintes techniques liées aux possibilités d'UDL, qui n'offre pas de possibilité autres que les opérateurs permettant une correspondance exacte sans séparateurs ; et volonté de ne pas utiliser les opérateurs pour les mots magiques hors {{DEFAULTSORT:}})
    • {{DEFAULTSORT:}} (et variantes) sont en rouge au lieu de vert ; couleur habituelle des mots magiques (cause UDL ; pas de possibilité de définir des mots-clés pouvant être appliqués sans séparateur après le deux-points, excepté avec le groupe « opérateurs 1 » ; autrement cela nécéssite d'activer le mode préfixe, avec comme conséquence de colorer également le premier mot suivant le deux-points ; s'agissant du seul mot magique (hors {{formatnum:}}) habituellement présent dans les articles, le choix a été fait de le traiter comme opérateur (donc en rouge) afin d'éviter ce problème de mise en forme) ;
    • {{formatnum:}} colore également les chiffres après le deux-points (cause UDL ; contraintes techniques liées au fonctionnement des mots-clés ; : n'étant pas considéré comme un séparateur, le mode préfixe doit être activé, ce qui provoque la coloration du premier "mot" suivant — dans le cas présent, il s'agit du nombre)
    • Tous les mots magiques n'ont pas encore été ajoutés, seuls quelque'uns le sont.
  • Références :
    • Pas d'indication des attributs group="abc" ou name="abc" (cause UDL ; nombre de délimiteurs limités ; choix de ne pas appliquer le délimiteur dédié aux attributs normaux pour des raisons de lisibilité ; volonté de garder les réfs avec un contraste "en retrait" par rapport au reste du wikicode) ;
  • Texte libre :
    • Certains termes peuvent être mis en forme sans raison (vignette, redresse, left, right, fichier:, catégorie:) car il s'agit de mots-clefs utilisés dans certains cas. Cela est considéré comme acceptable si le rapport bénéfice/nuisance est favorable.
  • Variables :
    • Non gérées correctement (limitations UDL ; manque de délimiteurs ; priorité donnée au wikicode des articles ; CodeMirror accompagné du thème CodeMirror-dark est l'outil le plus approprié pour gérer la coloration syntaxique des modèles) ;
  • Liens externes :
    • Si aucun espace n'est présent après entre la fin d'une URL et une barre verticale, le soulignement continue au-delà de l'URL (comportement Notepad++, une barre verticale n'étant pas un délimiteur d'URL) ;
  • Titres de sections :
    • Abscence de mise en forme des titres de niveau 0 (un seul = ; syntaxe inutilisé dans les articles) (limitations UDL ; usage très rare, faux-positifs élevés cassant la mise en page) ;
  • Balises :
    • <time> non mis en forme ; conflit avec <timeline>, qui doit impérativement en être exclu (traité comme commentaire) ; <time> est très peu utilisé hors-modèles (limitations UDL) ;
    • <p> non mis en forme ; conflit avec <pre>, qui doit impérativement en être exclu (traité comme commentaire) ; <p> est très peu utilisé hors-modèles et espace méta (limitations UDL) ;
    • <s> non mis en forme ; conflit avec <syntaxhighlight>, <source> et <score> qui doivent impérativement en être exclu (traités comme commentaire) ; <s> est relativement peu utilisé (limitations UDL) ;
    • Le contenu des balises suivantes est traité comme étant un commentaire HTML, afin d'éviter des erreurs et ruptures de coloration syntaxique : <math>, <templatedata>, <timeline>, <graph>, <syntaxhighlight>, <source>, <score>, <nowiki>, <pre>
  • Références :
    • Les références sont traitées comme des commentaires HTML (il s'agit d'un choix personnel, lià à mon utilisation de Notepad++ et à mon activité sur WP (maintenance). Je n'interviens que très rarement dans les références, donc en les affichant comme des commentaires, cela permet de mieux visualiser le reste du wikicode de la page. Si plus de délimiteurs UDL étaient disponibles, une coloration adaptée aurait pu être mise en place).