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
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 = >
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 (.*)
aber hier fehlt zwischen den Schrägstrichen wieder die Hälfte ...
Test Gravis:
Das verstehe wer will ....
Vielen Dank! Toll, dass ihr Formatierungstipps geben wollt. Habe schon öfter ungewollt merkwürdiges Zeug abgeliefert :-)
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
Zeichen eingeben https://codepoints.net/ oder hier https://www.babelstone.co.uk/Unicode/whatisit.html
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?)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
...noch Tests mit "größer/kleiner" ...und ein paar Leerzeichen:
< >
<
und natürlich>
mit Kram dazwischen: < nnn >
< nnn >
und als Block:Unicode herausfinden mit vim: Cursor auf des gewünschte Zeichen setzt und
ga
tippen zeigt folgendes an: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
Ihr solltet euch mal ein professionelles CMS zulegen.
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).