ven. 24 mars 2023
Qlam est l'application écrite en C qui sert à maintenir ce blog. Elle utilise un langage de balisage pour produire du code html. Elle offre aussi la possibilité de d'organiser les pages et la navigation entre elle. Qlam n'utilise ni base de données ni de langage sur le serveur. Il produit donc des pages html purement statiques. Ce logiciel s'adresse à des utilisateurs qui ont de bonnes notions de html et de css.
On peut saisir du code html partout où l'on veut. Le code <balise ...> ou </balise> est interprété comme du code html dès lors que balise est une balise clé html (i.e a, abbr, acronym, ... ), sauf dans les parties code.
Qlam se charge de créer une entête minimale de la page. On peut y ajouter des balises <meta> ou des inclusions de style css ou de script js. L'entête prend fin lorsque Qlam rencontre la commande #title ... qu'il traduit en <title> ... </title>. De plus Qlam utilise l'argument de la commande #title pour créer le titre la page dans le <body> (i.e. <h1> ... </h1>)
La ligne qui suit est censée être la date de l'article.
Syntaxe des commandes du head :
<meta name="site" content="grognon"><link rel="stylesheet" href="css/perso"><script src="script/LaTeXMathML.js"></script><i>Italique</i><strong>gras</strong><u>souligné</u><kbd>T</kbd><span="box"></span><code>code</code>codeRemarque : les caractères ^A, ^B, ... s'obtiennent sous linux par :
Ctrl V Ctrl A , Ctrl V Ctrl B , . . .
Une balise qlam #2 Titre (resp. #3 Titre, ... ) crée un header c'est à dire <h2>Titre</h2> (resp. <h3>Titre</h3>, ... ). Les trois premières h2, h3 et h4 sont numérotées automatiquement en css comme dans cette page. Mais Qlam entretient une numérotation parallèle pour tous les titres, qui sert d'identificateur. Elle sera exploitée pour établir les liens internes (voir Liens).
Code qlam
- Ligne 1- Ligne 2- Ligne 3
Résultat
Code qlam
+ Ligne 1+ Ligne 2+ Ligne 3
Résultat
Code qlam
? Mot 1Définition de Mot 1Suite de la définition de Mot 1...? Mot 2Définition de Mot 2Suite de la définition de Mot 2
Résultat
Remarques
#tableDécimal|Français|English1 |un |one2 |deux |two
Le code précédent produit :
| Décimal | Français | English |
|---|---|---|
| 1 | un | one |
| 2 | deux | two |
La balise #table accepte un argument qui est la classe (css) de la table.
On l'obtient avec ^CCeci est du code^C qui donne le résultat Ceci est du code.
On l'ouvre avec la balise qlam #code et se termine par une ligne vide.
La balise #code accepte un argument de la forme [#][!]lang où lang est un langage de programmation. Qlam reconnait les langages que j'utilise : bash, c, cpp, html, js, py, scad. On peut en ajouter en ajoutant dans include un fichier *.dict qui contient les mots clés du langage.
Exemple de bloc de code produit par Qlam
/* qlam.c:w | !gcc % -o %< -Wall -Wfatal-errors -g!./%< qlam(c) 2023 Mourad Arnout marnout à free.fr*/#include "qlam.h"int main(int argc, char *argv[]){// make hdictfor(int i=0; i<27; i++) hdict[i] = NULL;mkdict(hdict, "html");if(argc == 1) printf("Usage: %s NAME [NAME] ...\n", argv[0]);else {str_t src, dest;char *p = basename(argv[1]), *q;if((q = strchr(p, '.')) != NULL) *q = 0;for(int c=1; c<argc; c++){sprintf(src, "qlm/%s.qlm", p);sprintf(dest, "%s.html", p);mkhtml(src, dest);}}freedict(hdict);}
La syntaxe [nom du lien->cible] produit le code html <a href="cible">nom du lien</a>.
Les titres dans la pages ont un identifiant de la forme "a_b_c_" où a, b et c sont des entiers.
Dans le corps du texte un renvoi à une note de bas de page se fait avec la balise Qlam #(n) où n est le numéro de la note.
La note proprement dite se fait (en bas de page) avec la balise #note n. Le contenu de la note doit se terminer par une ligne vide.
On peut écrire du javascript après la balise Qlam #js (sans argument).
Exemple : Le code suivant donne l'heure
#jsvar now = new Date();var h = now.getHours();var m = now.getMinutes();var s = now.getSeconds();document.write('Il est ' + h + ':' + m + ':' + s);
Avec un argument la balise #js nomduscript produit le code :
<script src="script/nomduscript.js"></script>
On peut inclure un fichier html avec la balise #include chemin/fichier.html.
Il faut télécharger les fichiers qlam.h et qlam.c et les compiler avec la commande gcc qlam.c -o qlam.
Il faut ensuite créer à la racine du site local les dossiers doc, img, include, script, qlm, css puis copier :