4 points par GN⁺ 2024-03-01 | Aucun commentaire pour le moment. | Partager sur WhatsApp

Proposer des articles de blog sous forme de pages de manuel Linux

  • Les ordinateurs Linux ont des pages de manuel préinstallées qui expliquent l’utilisation de certaines commandes.
  • On peut lire une page de manuel en tapant man <command> dans le terminal.
  • Les logiciels en ligne de commande que l’on installe peuvent aussi ajouter des pages de manuel.
  • Les pages de manuel Linux sont formatées avec la syntaxe roff.
  • roff est le tout premier logiciel de composition typographique en ligne de commande pour Unix, développé chez Bell Labs.
  • L’article explore l’idée de proposer des billets de blog sous forme de pages de manuel Linux.

Conception du système : négociation de contenu

  • L’objectif est de permettre à l’utilisateur de demander une version roff d’un billet de blog via la négociation de contenu HTTP.
  • La négociation de contenu fait partie de HTTP et permet de demander un format de fichier précis.
  • Elle utilise des en-têtes HTTP pour demander au serveur un contenu dans un format donné.
  • Il est possible de router les requêtes des utilisateurs qui envoient l’en-tête Accept.
  • Si un document text/roff est demandé, le serveur peut renvoyer une page de manuel ouvrable avec la commande man.

Rédaction des pages de manuel

  • Comme les pages de manuel utilisent la syntaxe roff, il faut disposer des billets de blog dans ce format.
  • Le site a été mis à jour pour générer une page man pour chaque billet de blog.
  • Pour générer la page de manuel, le nom de domaine est défini comme en-tête et cinq sections sont créées : le titre, l’auteur, la date de publication, le contenu du billet et l’URL du billet.
  • Le contenu source est au format Markdown et, parfois, les espacements peuvent ne pas s’afficher correctement dans le manuel.
  • Le Markdown est plus lisible que le HTML et entraîne moins de perte d’information.

Demander une page de manuel

  • On peut demander la version roff d’un billet de blog avec la commande suivante :
    curl -sL -H "Accept: text/roff" https://jamesg.blog/2024/02/28/programming-projects/ > post.page && man ./post.page
    
  • Le résultat peut être ouvert comme une page de manuel Linux.
  • Contrairement au navigateur qui demande la version HTML de la page, la commande curl demande la version text/roff.
  • Quelques lignes ont été ajoutées à la configuration NGINX pour modifier la réponse du serveur lorsqu’une requête text/roff est reçue.
  • Une variable est déclarée dans le fichier de configuration NGINX afin de définir un indicateur lorsqu’un type de contenu spécifique est identifié.
  • Dans la configuration NGINX du site, du code est utilisé pour traiter différemment les requêtes quand une page roff est demandée.
  • Les billets de blog de ce site peuvent désormais être lus comme des pages de manuel Linux.
  • Il s’agit aussi d’une exploration de l’usage de la négociation de contenu dans NGINX et de l’évolution des techniques de composition typographique.

Avis de GN⁺

  • Cet article peut susciter l’intérêt des passionnés de technologie en présentant une manière originale de diffuser du contenu de blog via des pages de manuel Linux.
  • Il fournit un exemple concret de négociation de contenu avec NGINX, utile pour les administrateurs de serveurs web ou les développeurs.
  • D’un point de vue critique, le format Markdown peut ne pas toujours s’afficher correctement dans une page de manuel, ce qui peut nécessiter un travail supplémentaire pour l’améliorer.
  • Parmi les autres projets offrant des fonctionnalités similaires, on peut citer des outils comme pandoc, qui prennent en charge la conversion entre divers formats de documents.
  • Lors de l’adoption de cette technique, il faut tenir compte des besoins des utilisateurs et des questions de compatibilité.
  • L’avantage de ce choix est de pouvoir proposer un contenu web existant d’une manière familière aux utilisateurs de Linux, tandis que l’inconvénient est qu’il peut entraîner davantage de maintenance et des problèmes de compatibilité.

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.