4 Punkte von GN⁺ 2024-03-01 | Noch keine Kommentare. | Auf WhatsApp teilen

Blogbeiträge als Linux-Manpages bereitstellen

  • Auf Linux-Rechnern sind Manpages vorinstalliert, die die Verwendung bestimmter Befehle erklären.
  • Mit man <command> im Terminal lassen sich diese Manpages lesen.
  • Auch installierte Kommandozeilen-Software fügt manchmal eigene Manpages hinzu.
  • Linux-Manpages werden mit der roff-Syntax formatiert.
  • roff ist die erste Satzsoftware für die Unix-Kommandozeile und wurde bei Bell Labs entwickelt.
  • Es wird die Idee untersucht, Blogbeiträge als Linux-Manpages bereitzustellen.

Systemkonzept: Content Negotiation

  • Nutzer sollen per HTTP Content Negotiation eine roff-Version eines Blogbeitrags anfordern können.
  • Content Negotiation ist ein Teil von HTTP, mit dem sich bestimmte Dateiformate anfordern lassen.
  • Dazu werden HTTP-Header verwendet, mit denen sich Inhalte in einem bestimmten Format vom Server anfordern lassen.
  • Anfragen von Nutzern, die einen Accept-Header senden, können entsprechend geroutet werden.
  • Wird ein text/roff-Dokument angefordert, kann eine Manpage zurückgegeben werden, die sich mit dem Befehl man öffnen lässt.

Eine Manpage erstellen

  • Da Manpages die roff-Syntax verwenden, müssen die Blogbeiträge in diesem Format vorliegen.
  • Die Website wurde so aktualisiert, dass für jeden Blogbeitrag eine man-Seite erzeugt wird.
  • Für die Generierung der Manpage wird der Domainname als Header gesetzt und es werden fünf Abschnitte angelegt: Titel, Autor, Veröffentlichungsdatum, Beitragsinhalt und Beitrags-URL.
  • Der ursprüngliche Inhalt liegt im Markdown-Format vor, wobei Abstände in der Manpage manchmal nicht korrekt dargestellt werden.
  • Markdown ist leichter lesbar als HTML und mit weniger Informationsverlust verbunden.

Eine Manpage anfordern

  • Mit dem folgenden Befehl lässt sich das roff-Format eines Blogbeitrags anfordern:
    curl -sL -H "Accept: text/roff" https://jamesg.blog/2024/02/28/programming-projects/ > post.page && man ./post.page
    
  • Das Ergebnis kann als Linux-Manpage geöffnet werden.
  • Anders als ein Browser, der die HTML-Version einer Seite anfordert, fordert der Befehl curl die text/roff-Version an.
  • Durch einige zusätzliche Zeilen in der NGINX-Konfiguration wurde geändert, wie der Server auf Anfragen nach text/roff antwortet.
  • In der NGINX-Konfigurationsdatei wird eine Variable deklariert, die ein Flag setzt, wenn ein bestimmter Content-Typ erkannt wird.
  • In der NGINX-Konfiguration der Website wird Code verwendet, der Anfragen anders behandelt, wenn eine roff-Seite angefordert wird.
  • Blogbeiträge auf dieser Website können nun als Linux-Manpages gelesen werden.
  • Es ist eine Untersuchung dazu, wie sich Content Negotiation in NGINX einsetzen lässt und wie weit sich Satztechnik entwickelt hat.

Meinung von GN⁺

  • Dieser Artikel könnte Technikbegeisterte ansprechen, weil er eine originelle Methode vorstellt, Blog-Inhalte über Linux-Manpages bereitzustellen.
  • Er bietet ein praktisches Beispiel für Content Negotiation mit NGINX und liefert damit nützliche Informationen für Webserver-Administratoren oder Entwickler.
  • Kritisch betrachtet könnte zusätzlicher Aufwand nötig sein, da Markdown in Manpages nicht immer optimal dargestellt wird.
  • Ähnliche Projekte gibt es mit Werkzeugen wie pandoc, die Konvertierungen zwischen verschiedenen Dokumentformaten unterstützen.
  • Bei der Einführung dieser Technik sollten Nutzeranforderungen und Kompatibilität berücksichtigt werden.
  • Ein Vorteil dieser Wahl ist, dass bestehende Webinhalte in einer Linux-Nutzern vertrauten Form bereitgestellt werden können; ein Nachteil sind zusätzlicher Wartungsaufwand und mögliche Kompatibilitätsprobleme.

Noch keine Kommentare.

Noch keine Kommentare.