Vue normale

Reçu aujourd’hui — 18 septembre 2025
Reçu avant avant-hier

Typst, un système de composition de document qui grandit

Vous en souvient-il ? En deux mille vingt-cinq, qpad nous présentait Typst, un nouveau système de composition de documents qui se posait en concurrent de LaTeX.

Depuis, Typst semble avoir grandi, en s’assortissant d’une galaxie (pardon, un univers) de paquets tiers. En fait, j’ai surtout l’impression qu’il a gagné en notoriété, ou en quantité de mouvement, pour le dire comme les anglophones. C’est l’occasion de présenter à nouveau ce système de composition.

Sommaire

Un système de composition de documents

Typst est donc un système de composition de documents. Comme LaTeX, il est non-visuel, c’est-à-dire qu’on code son document qui est ensuite compilé en PDF.

Concrètement, l’outillage se compose, au choix :

Concurrent à LaTeX

Typst partage plusieurs caractéristiques avec LaTeX dont il est ouvertement inspiré :

  • c'est un système non visuel avec un langage dédié ;
  • il est conçu pour permettre d’écrire des documents scientifiques.

Bien que je n’aie pas vérifié ce point, il me semble probable qu’il utilise également quelques algorithmes de mise en page assez incontournables, définis par Donald Knuth pour TeX, par exemple pour la coupure des lignes d’un paragraphe.

Il s’écarte évidemment de LaTeX sur plusieurs aspects, sinon ce ne serait pas vraiment un nouveau système de composition :

  • c’est un système autonome, contrairement à LaTeX qui est construit sur TeX ;
  • il est conçu dès le départ avec des préoccupations actuelles (Unicode, PDF…) ;
  • il est conçu comme un langage humainement compréhensible, là où TeX semble franchement ésotérique.

Impressions d’un LaTeXnicien

Quand on arrive de LaTeX, l’impression est assez partagée, entre des différences significatives, de gros avantages et quelques inconvénients.

Le langage de texte

Le langage de base pour le texte est différent de LaTeX, mais ce n’est pas vraiment dérangeant dans la mesure où on parle seulement de paragraphes, de titres, de mise en emphase, de listes, etc. Bref, le genre de chose qu’on fait aussi bien en Markdown. D’ailleurs, Typst étant né après le développement des langages de balisage léger, sa syntaxe Typst est justement assez proche de Markdown, ce qui n’est pas désagréable :

= Titre de section

Voici du texte avec _une emphase_, *une emphase forte* et un `peu de code`.

À noter que cette syntaxe légère n’est en fait que du sucre syntaxique, et qu’on peut écrire la même chose en faisant explicitement appel à des fonctions nommées.

La compilation

Pour celles et ceux qui n’ont pas l’habitude de LaTeX, compiler un document un peu costaud, qui fait appel à quelques extensions, ça demande un temps de l’ordre d’une ou plusieurs secondes, et cela produit des centaines, voire des milliers de lignes de log. Pour avoir des références internes (sommaire, références à des images…) et externes (bibliographie), il faut lancer plusieurs fois la compilation.

Pour qui vient du monde LaTeX donc, la compilation par Typst est hallucinante. Une seule passe, même si en interne, Typst fait certainement au besoin plusieurs itérations. Quelques dizaines de millisecondes. Ok, c’était pour un document ultra-simple, mais les commentaires lisibles sur les Interwebz font généralement état d’un rapport d’un ou deux ordres de grandeur par rapport à LaTeX.

Le langage de configuration et d’extension

Là où ça change vraiment, c’est pour tout ce qui relève des réglages, des modèles, de la personnalisation ou de la programmation d’extensions. Là, ça n’a plus rien à voir avec TeX et LaTeX. À mon avis, ce n’est pas un mal dans la mesure où le langage TeX et les conventions utilisées pour le développement en LaTeX sont assez complexes, voire incompréhensibles.

Cela se ressent dans le code des extensions. À titre de comparaison, celui de la classe LaTeX lettre fait quelques milliers de lignes. Et c’est assez illisible pour qui ne connaît par TeX. Le code du modèle formalettre, qui n’est certes pas aussi complet mais qui fait très bien le travail de base d’une telle classe, fait une centaine de lignes, que je trouve relativement lisibles pour un béotien.

L’utilisation de paquets tiers

Les paquets tiers, hébergés sur l’univers Typst, sont téléchargés à l’utilisation. Par rapport à une distribution LaTeX qui pèse facilement plusieurs centaines de mébioctets, ça donne une vraie impression de légèreté.

La francisation

L’adaptation aux conventions en usage en langue française, ou dans les différents pays francophones, me semble encore assez incomplète.

Lorsqu’on passe un document en français, les changements de base s’effectuent bien : un sommaire s’appellera bien « Tables des matières » et les césures respecteront l’usage de la langue.

En revanche, cela n’adapte pas la mise en forme des paragraphes avec alinéa, et on attendrait en vain que des mots comme 1ᵉʳ, 2ᵉ ou Mme soient automatiquement mis en forme selon l’usage attendu. Et non, il n’y a pas de commandes définies pour cela. Pas encore, en tout cas, parce que je serais surpris que personne ne publie un jour un paquet proposant tout cela.

Les modèles

L’équivalent d’une classe LaTeX est un modèle Typst. Cela correspond à un type de document, par exemple un article, un rapport ou une lettre.

Typst ne semble pas proposer de modèles officiels. Il y en a en revanche par mal dans l’univers Typst, et le langage est conçu pour rendre la création d’un modèle assez accessible. Le troisième chapitre du tutoriel officiel traite justement de la création d’un modèle.

Un bel avenir ?

Typst a été conçu à partir de 2019 et a vraiment vu le jour en 2023. J’en ai entendu parler pour la première fois en mars 2023, dans le journal de qpad.

Les lacunes que j’avais alors remarquées et qui me retenaient de commencer à l’utiliser pour mes propres documents, semblent avoir été comblées pour l’essentiel. L’univers Typst, qui est le dépôt de paquets tiers, s’est largement rempli et semble bien jouer son rôle pour permettre aux utilisateurs de partager les extensions et modèles.

Le langage semble bien conçu :

  • il joue correctement son rôle pour la mise en forme de documents et de contenu scientifique ;
  • il est beaucoup plus humain que TeX et LaTeX lorsqu’il s’agit d’écrire des modèles et des extensions.

L’écosystème est également bien conçu et bien fourni et semble bien répondre aux attentes de la communauté, avec une légèreté bienvenue. Dans l’ensemble, j’ai l’impression que Typst est bien parti pour proposer un successeur sérieux à LaTeX. Je formule tout de même quelques interrogations :

  • la distribution de paquets tiers, incontournable, semble intégralement centralisée et dépendante de l’univers Typst ;
  • ce dernier, ainsi que Typst en général, est maintenu par l’entreprise allemande Typst GmbH dont le financement dépend de la vente d’abonnements aux formules premium de l’application Web : espérons que cela s’avère pérenne.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Gobs Death Robot

24 août 2025 à 08:50

Hier, j'ai eu l'occasion de tester le jeu Gobs Death Robot, issu du dernier défi Trois Fois Forgé, organisé tous les ans par le site PTGPTB.fr.

J'avais participé à ce défi de création collective de jeux de rôle il y a 4 ans, et j'adore son principe : concevoir des …


Permalink

Psi*Run - Implacables & règles additionnelles

1 août 2025 à 09:21

Psi*Run est un jeu de rôle auquel j'aime régulièrement rejouer depuis une dizaine d'années.

Conçu et publié par Meguey Baker en 2012, j'en ai déjà parlé dans plusieurs précédents articles. Les parties sont courtes, ne nécessitent aucun scénario préparé à l'avance, et les règles ingénieuses font la part belle …


Permalink

Pocket est mort, vive wallabag

Pocket était une application permettant de gérer une liste d'articles lus sur Internet. Elle a été créée en août 2007 par Nathan Weiner, puis est devenue gratuite avec option Premium en 2012. Acquis en 2017 par Mozilla, le service a annoncé le 22 mai 2025 sa fermeture prochaine. (source Wikipedia).

Ainsi, depuis le 8 juillet 2025, il n'est plus possible d'archiver ses contenus via Pocket, seul l'export de ses données est réalisable. Courant octobre, l'export sera également coupé.

Une alternative à Pocket

Depuis maintenant plus de 12 ans, une alternative à ce service privateur existe : il s'agit de wallabag. Nous avons déjà régulièrement parlé de notre projet sur LinuxFR.org.

Suite à l'annonce de la fermeture de Pocket, l'équipe de développement s'est organisée afin de proposer un import possible depuis le CSV fourni.

C'est pourquoi une version 2.6.13 est disponible depuis le 4 juin.

Mettre à jour votre instance

Depuis quelques versions, c’est relativement simple de mettre à jour votre wallabag : vous n’avez qu’à exécuter la commande make update. Si vous le souhaitez, vous trouverez plus d’informations sur le billet de blog du projet.

La suite

Dans quelques semaines, l'équipe aimerait sortir une nouvelle version importante. Outre de nouvelles fonctionnalités (comme par exemple un sélecteur de police de caractères), c'est surtout une montée de version technique nécessaire afin d'assurer la pérennité du projet.

Pour rappel, si vous ne souhaitez pas héberger votre instance de wallabag, il est possible d’utiliser le service en ligne wallabag.it.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Application libre en ligne de suivi des aides aux écoliers avec SQLPage

ThierryM : suite à un besoin exprimé par les enseignant⋅es d’une école et la découverte de SQLPage à travers l’application École Inclusive que j’ai découverte via ce site, je me suis lancé dans la réalisation d’une application en ligne permettant de suivre — sur toute leur scolarité dans le 1er degré — les différentes aides proposées aux élèves rencontrant des difficultés.
Bien que cette application soit encore en cours de développement et de test, je relate ici mon retour d’expérience car SQLPage, qui évolue rapidement, mérite d’être plus largement connue.

Jusqu’à présent je n’avais jamais osé me lancer dans ce genre de développements — principalement à cause de la sécurisation des accès et à la gestion de bases de données — mais SQLPage est arrivé…

    Sommaire

    Besoins et cahier des charges

    Le directeur d’une grosse école (13 classes + ULIS) avait besoin de pouvoir suivre pluriannuellement les différentes aides mises en place pour les élèves rencontrant des difficultés, ceci afin que les enseignant⋅es (dont les membres du RASED) disposent d’un historique pour voir ce qui avait déjà été proposé et ainsi décider ce que l’on pourrait mettre en place sans perdre de temps ni redite. Bref, l’idée était de gagner en temps et en efficacité.

    Au niveau d’une seule école, un tableur LibreOffice Calc pouvait très bien faire l’affaire et suffire (ce classeur existe d’ailleurs) mais il ne pouvait pas être complété à distance et de façon collaborative facilement :
    Classeur LibreOffice Calc de suivi
    On aurait pu mettre en place un classeur sur le Nuage-Nextcloud des Apps Éducation proposé par l’Éducation nationale et travailler de façon collaborative en ligne ou en drive (pour profiter des macros). Mais cette solution n’est pas aisée à mettre en place, avec des problèmes de synchronisation et des conflits de version de fichiers (je le sais par expérience, car nous gérons l’absentéisme de cette façon et ça demande un gros accompagnement, chaque classe ayant son propre classeur que l’on doit retravailler par la suite pour faire des synthèses d’école).

    L’idée était donc de disposer d’une application Web, en ligne pour que les enseignant⋅es puissent intervenir, compléter les données facilement et directement.
    L’avantage de cette solution était aussi de disposer d’une application unique pour étendre par la suite son utilisation aux 4 écoles de la ville (voire d’une circonscription) si le projet est concluant : en effet, les infos des élèves de maternelle suivraient lors du passage à l’école élémentaire.
    Seulement voilà, se posent pas mal de contraintes notamment par rapport à la sécurisation des données et au niveau du RGPD, l’outil envisagé contenant des informations sensibles. Il était impossible d’envisager un développement en Html/CSS/Javascript/PHP de zéro (manque de temps et de compétences). Et c’est là, que j’ai découvert l’existence de SQLPage qui paraissait répondre à nos inquiétudes avec des accès sécurisés, tout en étant à la portée de « débutant⋅es », à travers le récit de l’auteur de l’application « École Inclusive ».

    Début de l’aventure

    L’application « École Inclusive », bien que conçue pour le second degré, pouvait être adaptée à nos besoins plus modestes et a donc servi de base de départ : c’est beaucoup plus facile de partir de l’existant que d’une page blanche où il faut tout construire. Il s’est avéré que nous n’avions pas besoin de toutes les fonctionnalités et qu’il a fallu reprendre les logiques de fonctionnement mais la base étant là, c’était très rassurant d’autant que l'auteur de « École Inclusive » et le concepteur de SQLPage, très disponibles, étaient là pour m’éclairer, me conseiller ou rajouter des fonctionnalités au fil de mes demandes via les pages GitHub de leur projet respectif. Il faut rajouter que le site de SQLPage, conçu avec SQLPage ;-), regorge de ressources avec une documentation (en anglais) très claire et facilitante avec des exemples.
    Il est vrai que ce concept de programmation est assez déstabilisant au début : ne passer que par des fichiers .sql (ou presque) pour développer un site Web, ça paraît inadapté. Mais, une fois qu’on est rentré dedans, on se rend compte que pour le type d’application qu’on recherchait, c’est tout bonnement bluffant et terriblement efficace.
    Ce qui est aussi facilitant, c’est la possibilité d’utiliser des bases sqlite ne nécessitant pas la mise en place d’un serveur de type MySQL ou PostGreSQL rajoutant de la complexité. Mais SQLPage fonctionne aussi avec ces serveurs si on en a l’utilité : ce point est intéressant, car le temps consacré pour se former à SQLPage pourra être réinvesti avec d’autres types de bases de données.

    Matériel, données techniques et application ASDAEL

    Pour des tests les plus proches du fonctionnement prévu (on verra que ça changera), j’ai utilisé un NAS perso Synology 713+ sous DSM 7.1 avec un accès extérieur. Toutes les infos sont là pour ceux et celles que ça intéresse : https://lofurol.fr/joomla/logiciels-libres/104-bases-de-donnees/349-sqlpage-utilisation-sur-un-nas-synology-avec-docker-et-mysql-postgresql-sqlite.
    Toujours dans un souci de partage, les sources de l’application de suivi des aides sont disponibles sur la « Forge des communs numériques éducatifs » ou Forge Éduc, le GitLab mis à disposition par l’Éducation nationale pour favoriser le partage et le développement de ressources numériques pour l’enseignement.
    Source du projet: https://forge.apps.education.fr/thierrym/suivi-aides-eleves-ecoles

    Utilisation locale due au RGPD et à la sécurisation des données

    Cette application n’ayant pas reçu de soutien officiel et vu qu’elle contient des données sensibles sur les élèves (bien que ces données ne soient accessibles qu’aux seul⋅es enseignant⋅es concerné⋅es par le suivi des élèves), il a été décidé de ne pas exposer l’application sur Internet, comme prévu initialement. Elle sera donc installée sur un ordinateur localement sans accès de l’extérieur le temps de la tester. Après, il sera toujours possible d’évoluer vers une utilisation réellement en ligne si les essais sont concluants (et avec un audit sur la sécurité).
    Et là, encore une fois, l’application est très bien faite, car elle fait office de serveur web et il suffit de saisir son adresse ip sur le port 8080 pour y accéder à partir d’un autre ordinateur sur le même réseau. On ne peut pas faire plus simple (pas besoin de se monter un serveur Apache/Ngnix) !!!

    Pour lancer l’expérimentation, j’ai récupéré un “vieil” ordinateur HP 260 G2 Mini (Intel Pentium 4405U, 4 Go de Ram et HD de 100 Go) sur lequel j’ai installé Ubuntu 24.04 Server (avec accès SSH) avec le bureau Mate et Docker pour faire fonctionner les conteneurs Portainer et Adminer pour éventuellement agir sur la base de données SQLite.
    J’ai ensuite installé SQLPage avec mes fichiers dans un dossier « ASDAEL » à la racine de mon home puis configurer un démarrage automatique lançant SQLPage et Firefox pointant vers la page « localhost:8080 ».

    Captures d’écran

    Structure de la base de données
    Structure de la base de données

    Page d’accueil :
    Accueil

    Page de connexion :
    Page de connexion

    Localisation des écoles :
    Liste des écoles

    Liste des élèves suivi⋅es :
    Liste des élèves suivi⋅es

    Fiche individuelle de suivi :
    Fiche individuelle de suivi

    Vue synthétique du parcours de l’élève :
    Vue synthétique

    Page de paramétrage :
    Page de paramétrage

    Perspectives

    Avec l’arrivée du Livret de Parcours Inclusif (LPI) peut-être que ce genre d’applications ne sera plus utile… d’autant qu’elles n’ont aucun soutien institutionnel et qu’en l’état actuel elles ne peuvent être utilisées que localement, ce qui réduit pas mal leur intérêt.
    Mais l’idée de ASDAEL est d’obtenir rapidement une vision synthétique des différentes aides mises en place pour l’ensemble des élèves tout au long des années en facilitant leurs saisies, ce que ne permettra certainement pas le LPI.
    À suivre… ?

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Firefox 140 - Recherche personnalisée et onglets repensés

    Par :Korben
    25 juin 2025 à 07:52

    Vous savez quoi les amis ? Mozilla vient de lâcher dans la nature Firefox 140 et y’a du lourd dans cette mise à jour donc c’est pour ça que je vous en parle ! Si vous en avez marre que votre navigateur décide pour vous quel moteur de recherche utiliser, ou si vous galérez avec 150 onglets ouverts qui bouffent toute votre RAM, cette version va vous réconcilier avec le renard de feu (Oui, c’est un renard. Oui il a le cul en feu. Non, ce n’est pas un panda roux. Le Panda roux est un animal. Le Firefox est un navigateur internet et pas un animal. Merci ^^)

    ❌