Code-Blöcke in Kommentaren

  Ralf Hersel   Lesezeit: 5 Minuten  🗪 14 Kommentare Auf Mastodon ansehen

Die Formatierung der Kommentare bei uns ist ein Rätsel. Wie man Code-Blöcke einfügt, erfahrt ihr in diesem Artikel.

code-blöcke in kommentaren

In der Computerei gibt es (mindestens) zwei Höllen. Die erste heisst "internationale Zeit- und Datum-Formatierung" und die zweite hört auf den Namen "Zeichen-Codierung". Normale Anwender:innen sind von diesen Höllen nicht betroffen, weil ihnen dieses Problem von den Programmierern (überwiegend) abgenommen wird. Doch es gibt Anwendungsfälle, bei denen auch ihr davon betroffen sein könntet.

Habt ihr schon einmal einen Kommentar zu einem Artikel bei GNU/Linux.ch geschrieben, in dem Code-Blöcke enthalten waren? Das kommt häufig vor und wir erhalten bisweilen Fragen zur Formatierung solcher Code-Blöcke. Hier ist ein Beispiel:

In meinem Kommentar zu dem Artikel möchte ich eine Lösung vorschlagen. Der Code dafür lautet so:

print("Hallo Welt")

Ich hoffe, mein Kommentar hilft den Lesern weiter.

Was bei diesem Beispiel so einfach aussieht, entpuppt sich bei der Kommentarfunktion unseres CMS (Bludit) als Herausforderung. Wir verwenden Snicker als Kommentar-Plug-in in Bludit. Bei diesem Plug-in ist (auf den ersten Blick) nicht klar, welche Formatierungen unterstützt werden. Tim ist dabei, dieses Rätsel zu lüften.

Unser Ziel ist es, die Kommentarfunktion mit einer Information über die möglichen Formatierungen zu ergänzen. Bis Tim das ausgegraben hat, möchte ich euch eine Möglichkeit vorstellen, um Code-Blöcke einzubinden. Und jetzt geht es los:

Um einen Code-Block in einen Kommentar einzufügen, klammert ihr den Code in drei Gravis ein.

Alles klar, oder versteht ihr nur Bahnhof? Mit "klammern" meine ich, dass der Code-Block mit drei Gravis beginnt und mit drei Gravis endet, nämlich so:

```

Code

```

Was ist ein Gravis und wie tippe ich das ein? Die Antwort hängt von deinem Tastatur-Layout ab. Auf einer Schweizer Tastatur befindet sich das/der/die Gravis auf der Taste Shift-Caret (^). Es handelt sich um ein 'oben nach links gerichtetes' einfaches Anführungszeichen. Dummerweise gibt es verschiedene 'oben nach links gerichtete' Anführungszeichen. Ihr ahnt es; so kommen wir nicht weiter.

Unicode

Um die Sache in den Griff zu bekommen, muss ein universaler Zeichensatz her. Den gibt es und er heisst Unicode. Dieser Standard beschreibt in der Version 16.0 knapp 160.000 Zeichen. Da ist für jeden etwas dabei. Nun gibt es zwei Anforderungen: entweder möchte man einen Unicode eintippen und das zugehörige Zeichen sehen; oder man möchte das Zeichen eintippen und den zugehörigen Unicode sehen.

Wie ihr es vermutet, gibt es im Linux-Universum viele GUI-Anwendungen, die diese Anforderung erfüllen. Es gibt noch mehr Webseiten für diesen Zweck. Um die Lösung möglichst allgemein zu halten, schlage ich die Kommandozeile vor. Der Vorteil dieser Lösung ist, dass man nicht auf zig Betriebssysteme, Distros und Desktop-Anwendungen eingehen muss. Ich möchte beim Gravis bleiben.

Um den Unicode des Gravis zu ermitteln, habe ich keine befriedigende Lösung gefunden. Doch so geht es halbwegs:

python
print(format(ord('`'), '#08x'))
0x000060

Falls ihr eine bessere Lösung kennt, schreibt sie bitte in die Kommentare.

Umgekehrt geht es einfacher:

echo -e '\u0060'
`

Die erste Lösung ist unbefriedigend, weil man den Python-Interpreter starten muss und das Ergebnis (0x000060) in u0060 umgewandelt werden will. Doch damit kann man arbeiten.

Nachtrag

So geht es. Allerdings muss man das Gravis mit einem Backslash escapen:

printf '%x\n' "'\`"
60

Eingabe

Zum Schluss stellt sich die Frage, wie man ein Unicode-Zeichen eintippt. Das ist einfach: Ctrl+Shift+u 0060 ergibt das Zeichen `

Wenn ihr einen Code-Block in einen Kommentar bei uns einfügen möchtet, tippt ihr dreimal die oben genannte Tastenkombination oder dreimal das Gravis über die Tastatur ein. Dann fügt ihr den Code-Block ein und schliesst diesen mit drei Gravis ab.

Titelbild: https://pixabay.com/photos/cms-wordpress-265128/

Quelle: Ralf

Tags

Kommentare, Code, Code-Block, Formatierung, Bludit, Snicker

Frank
Geschrieben von Frank am 30. Januar 2025 um 09:32

Hallo Ralf,

Der Codeblock mit den drei Garvis ist aber nur ein Teil des Problems. Texte, in denen die Zeichen 'kleiner' und 'größer' vorkommen werden auch verstümmelt. Kann man dieses Eingabefeld nicht so einrichten, dass GAR KEINE Formatierung stattfindet ?

Hier ein Versuch mit kleiner- und größer Zeichen : kleiner = < größer = >

Frank
Geschrieben von Frank am 30. Januar 2025 um 09:34

oben hat es funktioniert. hier etwas mehr text:

wget -q https://gnulinux.ch/podcast/gnulinux_newscast_rss.xml -O rss.txt
sed 's//\nvon / ; s//\nbis / ; s//\n1 / ; s//\n2 / ; s//\n3 /' < rss.txt > temp.txt sed -n '/^von /,/^bis / { /^1 / { s/^1 (.*)

Frank
Geschrieben von Frank am 30. Januar 2025 um 09:36

aber hier fehlt zwischen den Schrägstrichen wieder die Hälfte ...

Frank
Geschrieben von Frank am 30. Januar 2025 um 09:38

Test Gravis:

Dies soll ein Codeblock sein !
Frank
Geschrieben von Frank am 30. Januar 2025 um 09:40
größer &gt;      kleiner &lt;     Schrägstrich  /       
2 Schrägstrich und dazwischen ein kleiner      / temp.txt
Frank
Geschrieben von Frank am 30. Januar 2025 um 09:42

Das verstehe wer will ....

Naja
Geschrieben von Naja am 30. Januar 2025 um 09:39

Vielen Dank! Toll, dass ihr Formatierungstipps geben wollt. Habe schon öfter ungewollt merkwürdiges Zeug abgeliefert :-)

Frank
Geschrieben von Frank am 30. Januar 2025 um 09:48

Auf der deutschen Tastatur findet man das Gravis Zeichen rechts oben zwischen dem ß und der meist größeren Lösch-Taste. Es ist dort das obere Zeichen, also mit shift zu erreichen. Da es als Akzent Zeichen zusammen mit dem folgenden Buchstaben verwendet wird muss man zur Eingabe des Zeichens alleine danach noch die Leertaste drücken. Für drei Gravis also:

shift Gravis, Leertaste, shift Gravis, Leertaste, shift Gravis, Leertaste

Pablo
Geschrieben von Pablo am 30. Januar 2025 um 10:25
Nick
Geschrieben von Nick am 30. Januar 2025 um 11:32

Auch meine Kommentare wurden schon 'verunstaltet', und es stimmt auch, dass -in Codeblöcken- einfach eliminiert wird, was zwischen 'größer-/kleiner als' steht, also einschließlich der , und auch markdown an sich erscheint in mitunter "seltsamen" Formatierungen.

Es gibt markdown Editoren, und natürlich auch Texteditoren, in denen man als Encoding "UTF-8 mit BOM" einstellen kann (als Beispiele 'retext' und 'scite'). Daher noch einige Tests (cf. markdownguide.org):

Auf einer 'DE' Tastatur sind die ` (hochgestellt) rechts neben dem scharfen 'S'.

Es gibt code und natürlich auch (Frage an Ralf: Womit hat er die "schwarzen" Codeblöcke hin gezaubert?)

Code blocks

Footnote, Strikethrough etc.

Here's a sentence with a footnote. [^1]

[^1]: This is the footnote.

The world is flat. and I need to highlight these ==very important words==.

Italic emphasis , Alternative italic emphasis

Bold emphasis , Alternative bold emphasis

Nick
Geschrieben von Nick am 30. Januar 2025 um 11:45

...noch Tests mit "größer/kleiner" ...und ein paar Leerzeichen:

< > &lt; und natürlich &gt;

mit Kram dazwischen: < nnn > &lt; nnn &gt; und als Block:

&lt; nnn  &gt; 

&lt; nnn  &gt; 
Jörg
Geschrieben von Jörg am 30. Januar 2025 um 13:06

Unicode herausfinden mit vim: Cursor auf des gewünschte Zeichen setzt und ga tippen zeigt folgendes an:

 96,  Hex 60,  Oct 140, Digr '! 

Das hex 60 entspricht dem 0x000060. Die 96 ist übrigens der ASCII code und das Digr ist die Tastenfolge um es von vim erzeugen zulassen (Ctrl+k'!) im insert mode

Onlineexperte
Geschrieben von Onlineexperte am 30. Januar 2025 um 13:16

Ihr solltet euch mal ein professionelles CMS zulegen.

Ralf Hersel Admin
Geschrieben von Ralf Hersel am 30. Januar 2025 um 18:35

Das Kommentar-Plug-in hat nicht direkt etwas mit dem CMS zu tun. Wir haben Bludit bewusst als CMS ausgewählt, weil es einfach zu bedienen ist und damit für die Redaktion zugänglich ist. Aber ja, vielleicht müssen wir früher oder später das CMS wechseln. Davor graut es mir jetzt schon (4000+ Artikel migrieren, alle Zusatzprogramme umschreiben).