Langage à balisage ElzML

Un des langages disponibles pour formater vos réponses à ce blog.

Message 1, par Elzen

§ Posté le 10/12/2012 à 21h 31m 22

Note : je suis conscient que l'aspect visuel de ce texte laisse clairement à désirer ; et que sa clareté est peut-être dans le même cas. Si quelqu'un se sent de faire une présentation plus soignée, je ne verrais aucun inconvénient à remplacer ma version par la sienne.


ElzML (pour « Elzen's Markup Language ») est actuellement le langage le plus puissant à votre disposition sur ce blog. Conçu pour être utilisable sur un clavier azerty standard sans avoir à recourir au troisième ou quatrième niveau des touches (ce qui le rend théoriquement pratique à utiliser quelle que soit la variante précise du clavier tant que ça reste un azerty ; mais je pense que les utilisateurs de qwerty ou de bépo devraient pouvoir se débrouiller aussi), il permet de gérer aussi bien des fonctions stylistiques que des fonctions sémantiques. C'est le langage que j'utilise pour rédiger la plupart de mes articles.


À la base, il se voulait assez simple ; comme d'hab, en rajoutant des fonctions bizarres dans tous les sens, c'est devenu un truc un peu complexe dont une partie ne sera pas forcément facile à retenir, surtout pour un débutant. Alors bon, voilà : la base, c'est qu'on ouvre une balise en insérant deux caractères « < » de suite, et on la referme avec deux caractères « > » de suite.

Le premier caractère de la balise sert à identifier de quel type de balise il s'agit, et le reste du contenu permet de définir plus précisément ce comportement. Pour plusieurs types de balises, on peut définir plusieurs propriétés à la fois, par un système clefs/valeurs de la forme : « clef1::valeur1;;clef2::valeur2;;clef3::valeur3 ». Des espaces peuvent éventuellement être insérées avant les noms des clefs, si vous trouvez ça plus lisible.


Les différents types de balises reconnus sont :


Réglage des balises d'image

(1 : §, , ) Une balise d'image reconnaît quatre sortes de clefs (le reste sera ignoré) :

Si vous précisez plusieurs fois la clef indiquant une adresse d'image, une seule balise affichera plusieurs images d'un coup dans votre message. Pensez à renseigner autant de fois le texte alternatif (et, si besoin, le lien) qu'il y a d'images, sinon seule la première sera concernée (s'il n'y a pas de précisions pour le texte alternatif des dernières images, leur adresse sera utilisée). L'alignement, par contre, est commun à toutes les images de la balise.

Au niveau de l'alignement, justement : par défaut, les images situées dans leur propre bloc sont centrées ; c'est pour cela que vous ne pouvez préciser qu'un alignement à droite ou à gauche. L'alignement est également reconnu pour les images qui ne sont pas dans leur propre bloc : dans ce cas, il permet de faire en sorte que l'image « flotte » sur la droite ou sur la gauche, entourée par le reste du texte.


Le système de liens internes

(2 : §, , ) ElzML vous permet donc d'insérer des liens internes au texte. Habituellement, je les utilise pour mes notes de bas de page, mais elles peuvent être placées n'importe où dans le texte, comme vous avez pu le constater ici.

Si vous ne précisez aucun contenu, une numérotation automatique sera mise en place, les balises de marquage devant arriver dans le même ordre que les balises de référence. Si vous indiquez un contenu, celui-ci sera utilisé à la fois comme étiquette affichée, et comme manière d'identifier le marqueur, ce qui vous permet notamment d'en changer l'ordre.

Au niveau du marqueur, les différentes flèches permettent de remonter au niveau de la référence sur laquelle vous avez cliqué. Il est bien sûr possible de placer une référence en dessous du marqueur, mais dans ce cas, le parseur (qui ne lit qu'une seule fois le message, et dans un seul sens) ne vous ajoutera pas de flèche vers le bas.

Lorsque les marqueurs sont utilisées à l'intérieur des notes de bas de page, un des scripts que vous pouvez activer sur la page de réglages vous permet de les récupérer, au survol de ou au clic sur une référence, sans avoir à aller jusqu'au bas de la page pour les lire.


Réglage des balises de bloc

(3 : §, ) Une balise de bloc reconnaît cinq sortes de clefs (le reste sera ignoré) :


Réglage des balises de mise en forme simple

(4 : §, ) Une balise de mise en forme simple reconnaît trois sortes de clefs (le reste sera ignoré) :

  • « link » permet de transformer le texte en lien cliquable, la valeur étant l'URL cible.

  • « style » permet de donner un style particulier au bloc de texte (sans aucune fonction sémantique, donc). Voyez la liste des styles reconnus un peu plus bas(5).

  • « semantic » (qui peut être abregé en « sem ») permet de donner une fonction sémantique particulière au texte.

    • « code » indique un bout de code (aucune balise ne sera reconnue jusqu'à la fermeture, normalement).

    • « quote » indique une citation (des guillemets seront ajoutés automatiquement par la CSS).

    • « italic » (ou « foreign ») permet de spécifier que le texte est différent du reste, par exemple parce qu'il s'agit de termes étrangers.

    • « misspelled » permet de spécifier que le texte est incorrectement orthographié (dans une citation, par exemple).

    • « wrong » permet de spécifier que le texte est erroné (visuellement, il sera barré).

    • « strong » permet de signaler un mot important, qui sera renforcé (mis en gras).

    • « emphasis » (qui peut être abrégé en « emph ») permet de mettre le texte en emphase.

    • « mark » permet de surligner du texte (pour marquer un passage intéressant d'une citation, par exemple).

    • « defined » (ou « def », ou « dfn ») permet d'indiquer que le mot va être défini dans le texte.

    • « reference » (ou « ref », ou cite ») permet de mettre en valeur le titre d'un ouvrage.

    • « removed » (ou « deleted », ou « rem », ou « del ») permet d'indiquer que le texte a été supprimé.

    • « inserted » (ou « added », ou « ins », ou « add ») permet d'indiquer que le texte est nouvellement ajouté.

    • « subscript » (ou « sub ») permet de mettre le texte en indice.

    • « exponent » (ou « super », ou « exp », ou « sub ») permet de mettre le texte en exposant.

    À l'origine, je comptais faire en sorte qu'une seule balise de ce genre puisse insérer plusieurs fonctions sémantiques d'affilée. J'ai cependant abandonné cette idée, parce que je ne pense pas qu'un même bout de texte complet puisse avoir besoin de deux fonctions différentes (les liens étant une exception, vous pouvez à la fois mettre un lien et une autre sorte de balise).


Éléments de style proposés

(5 : §, , ) Plusieurs éléments de style peuvent être utilisées (éventuellement simultanément) pour les blocs ou pour les mises en forme simple. Il s'agit d'attributs de style pur, sans aucune valeur sémantique propre, qui sont gérées par la CSS de la page (je pourrais éventuellement en rajouter en cours de route, si besoin).

  • « underline » permet de souligner le texte.

  • « italic » permet d'afficher le texte en italique (les balises sémantiques de mise en italique le remettront alors droit).

  • « bold » permet de mettre le texte en gras.

  • « caps » permet d'afficher un texte en capitales (et non pas en majuscules).

  • « callig » permet d'utiliser une police calligraphique.

  • « goth » permet d'utiliser une police gothique.

  • « code » permet d'utiliser une police monospace, comme celle utilisée pour le code.


Si vous avez des suggestions d'amélioration, je vous écoute.

(Suite au décès inopiné de mon précédent serveur, je profite de mettre en place une nouvelle machine pour essayer de refaire un outil de blog digne de ce nom. J'en profiterai d'ailleurs aussi pour repasser un peu sur certains articles, qui commencent à être particulièrement datés. En attendant, le système de commentaires de ce blog n'est plus fonctionnel, et a donc été désactivé. Désolé ! Vous pouvez néanmoins me contacter si besoin par mail (« mon login at ma machine, comme les gens normaux »), ou d'ailleurs par n'importe quel autre moyen. En espérant remettre les choses en place assez vite, tout plein de datalove sur vous !)