Asciinema in Markdown

vorhergehende Artikel in: OpenSource Markup
20.12.2021

Mein Static Site Generator kann ja bereits seit einiger Zeit mit Asciinema-Dateien umgehen und diese einbinden - ich war aber auf der Suche, diese Einbindung auch in Gitlab und/oder Github nutzen zu können...

Ein Beispiel für die Einbindung in meine Heimatseite ist hier zu sehen.

Ich habe in letzter Zeit hin und wieder darüber nachgedacht, dass so etwas in Open-Source-Projekten auf Github oder Gitlab ebenfalls nützlich sein könnte - speziell wenn man es gleich in die Readme.md einbinden könnte, besonders, weil man die eingegebenen Terminal-Kommandos dann gleich daraus kopieren könnte.

Leider ist die direkte Einbindung auf beiden Plattformen derzeit nicht möglich - man kann aber ein Bild (sozusagen einen Screenshot) aus der Animation erzeugen und diesen als Bild in die Readme.md einfügen und als Link zur eigentlichen Animation ausprägen.

Das reichte mir aber nicht - dann stolperte ich über ein Projekt, das aus den Asciinema-Dateien animierte SVG-Graphiken erzeugen kann. Damit wird aus dieser Animation dieses Bild:

Screenshot Asciinema-Animation als SVG

Der Nachteil dabei ist natürlich, dass das dann kein interaktiver Player mehr ist, dessen Wiedergabe man beliebig pausieren kann und - was noch wichtiger erscheint - man kann auch nicht mehr Kommandos aus dem Player heraus kopieren, wie es eines der hervorstechendsten Merkmale des Originals ist. Aus meiner Sicht sollte man also auf jeden Fall auch eine so erzeugte Graphik unbedingt mit einem Link zum echten Asciinema-Player hinterlegen!

Darüber hinaus existieren auch verschiedene Projekte, die eine Asciinema-Animation in ein Anim-Gif verwandeln.

Möchte man (bei lokal gehosteten Asciinema-Animationen) ein einzelnes Frame extrahieren, das als Bild für einen Verweis auf die Animation dienen soll, kann man das mittels folgenden Kommandos erreichen (nutzt man das Cloud-Angebot, ist die Erstellung eines solchen Bildes bereits inklusive):

xterm -e asciinema play globe.js& export APP_PID=$! && sleep 10 && xwd -id $(xdotool search --pid $APP_PID) | convert xwd:- image.png

Der Wert hinter sleep sollte mindestens 1 betragen, da sonst unter umständen das Terminal noch nicht geöffnet ist - mit ihm kann man auch einige Sekunden überspringen, wenn man den Screenshot nicht gleich zu Beginn der Animation erzeugen möchte...

Alle Artikel rss Wochenübersicht Monatsübersicht Codeberg Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Strange Attractors im Lorenz System

    10.05.2020

    Das Lorenz System kann in einem Jupyter-Notebook interaktiv erkundet werden:

    Weiterlesen...

Neueste Artikel

  • Anpassungen für GraphViz und PlantUML

    Ich habe hier schon verschiedentlich über die Anwendung des PlantUML- oder GraphViz- Formats geschrieben. Beide sind extrem vielseitig - sowohl für eher traditionelle Darstellungen von Graphen oder Entity-Relationship-Diagrammen als auch für zum Beispiel die Dokumentationen von Public Key Infrastrukturen

    Weiterlesen
  • Origami - Inspirationen und Anleitungen

    Videos und Bastelanleitungen - meistenteils Origami

    Weiterlesen
  • SBOMs für alte Java-Projekte

    Ich habe neulich wieder einmal über Software Bill Of Materials oder SBOMs nachgedacht - inspiriert nicht nur, aber auch von meinem $dayjob...

    Weiterlesen

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muss damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen Codeberg-Repositories findet man hier.