Skip to content

Gutes Markdown schreiben ...

Für einfache Texte nutze ich Markdown als Auszeichnungssprache. Das, was ich brauche, lässt sich dmit sehr gut umsetzen. Wenn es mehr sein müsste, würde ich vermutlich AsciiDoc oder reStructuredText verwenden.

Eigentlich möchte ich Markdown auch im Blog benutzen, aber über dreitausend alte Artikel möchte ich nicht gerne konvertieren.

Markdown hat sich an vielen Stellen als Standard für einfache Texte etabliert, daher lohnt sich die Beschäftigung damit. Die Beschreibung des Standard ist bei Daring Fireball zuf finden. Es gibt auch eine Seite über GitHub Flavored Markdown. Ein einfaches Markdown-Cheatsheet hilft beim Einstieg.

Heute habe ich mit markdownlint für mich vernünftig klingende Regeln für gute Markdown-Texte gefunden.

Trackbacks

Nur ein Blog am : Markdown benutzen

Vorschau anzeigen
In meinem Blog benutze ich seit einem Jahr nur mehr Markdown als Auszeichnungssprache. Dirk Deimeke gibt nun ein paar gute Tipps (Links), wie man gutes Markdown schreibt. Warum überhaupt eine Auszeichnungssprache und warum dann Markdown? Non-WYSIWYG Na

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Thomas Hochstein am :

*
QUOTE:
Eigentlich möchte ich Markdown auch im Blog benutzen,


Das kann ich nur sehr empfehlen!

QUOTE:
aber über dreitausend alte Artikel möchte ich nicht gerne konvertieren.


Musst Du ja auch nicht - lass sie einfach so, wie sie sind.

Wenn Du Angst hast, dass die Interpretation als Markdown bei alten Beiträgen zu Anzeigefehlern führt, hilft "serendipity_event_entryproperties" (Teil des Core), das es ermöglicht, für bestimmte Beiträge Plugins zu deaktivieren.

Das machst Du einmal und schaust dann in die Datenbanktabelle "entryproperties". Dort findest Du dann einen Eintrag mit dem "property" "ep_disable_markup_serendipity_event_markdown:HASH" mit der "entryid" des Eintrags und dem "value" "serendipity_event_markdown:HASH". Danach ergänzt Du entsprechende Einträge mit demselben "property" und demselben "value" für alle alten Beiträge Deines Blogs; das geht per SQL oder in jeder beliebigen Skriptsprache, wobei Dir "SELECT id FROM entries" alle Einträge liefert. (Das Tabellenprefix, idR "s9y_", musst Du natürlich ergänzen). Voila!

Dirk Deimeke am :

*Um ehrlich zu sein, da hätte ich gerne eine globalere Lösung, wie zum Beispiel, dass die verwendeten Plugins zusammen mit dem Artikel gespeichert werden. Alternativ könnte ein Gültigkeitszeitraum für die Plugins gespeichert werden.

Aber - meiner Meinung nach - wäre es am Besten, wenn der gerenderte Artikel in der Datenbank wäre. Dann würde es nur zu potentiellen Problemen kommen, wenn man den Artikel nachträglich bearbeiten müsste. Das könnte man aber auch abfangen, wenn die verwendeten Plugins mitgespeichert werden. Als Lösung könnte Serendipity dann anbieten, den alten Artikel in der Rohform zu bearbeiten.

Ich würde gerne das NL2BR-Plugin entfernen, kann es aber nicht, weil fast alle alten Artikel das verwenden. Und jetzt für jeden neuen Artikel die "entry-properties" zu setzen, macht mir auch keinen Spass, so dass ich jetzt bei aktuellen Artikeln einen Mix habe aus Artikeln, die das Plugin brauchen und anderen.

Thomas Hochstein am :

*Ergänzend noch eines: das s9y-Markdown-Plugin implementiert neben der Basis "Markdown Extra", nicht das "Github flavored Markdown" - das gibt und nimmt sich wenig, aber im Zweifel sollte man für fortgeschrittene Konstruktionen in die richtige Doku schauen. Die für "Markdown Extra" findet sich hier: https://michelf.ca/projects/php-markdown/extra/

Dirk Deimeke am :

*Oh, das ist ein sehr guter Tipp, vielen Dank Thomas!

Weisst Du, ob Syntax-Highlighting in Code Blocks funktioniert? Das wäre auch ein Feature, das ich brauche.

André Jaenisch am :

*Haalo Dirk,

im Rahmen eines Hackathons haben wir uns angeschaut, inwiefern sich die Inhalte eines CMS in ein Static Site Generator füttern ließe.

Dabei hatten wir eine Bibliothek genutzt. Ich glaube, es war https://domchristie.github.io/turndown/ (NodeJS, weil das am ehesten vertraut war für alle).

Aber du hast ja schon ein CMS...

Gruß


André

Dirk Deimeke am :

*Hallo André, danke für den Hinweis.

Du hast Recht, ich plane nicht, die Bloglösung zu wechseln, da ich überwiegend zufrieden bin mit Serendipity.

Aber statische Seiten-"Compiler" faszinieren mich auch, wenn Du einen für das Podcasting kennst, bin ich Dir dankbar für einen Hinweis.

André Jaenisch am :

*Hallo Dirk,

hab dir die Langfassung in deinem dedizierten Artikel geschickt.

Mal als Nicht-Podcast-Hörer gefragt: Warum brauchst du da etwas Spezielles?
Ist Podcasting nicht Audio-über-RSS?

Sprich, ich abonniere den Podcast (iTunes wird oft genannt) und bekomm ein Audio in meinen Podtuner (oder wie die heißen), wenn du etwas online stellst.

Schau dir doch an, wie David Walsh oder Chris Coyier das machen.
Sie reagieren eigentlich recht flott auf E-Mails. Außerdem packen sie die Folge in ihre regulären Blogs (David Walsh bzw. CSS-Tricks).

Dirk Deimeke am :

*Du hast Recht, ein Podcast ist eigentlich nichts anderes als eine eingebettete Mediendatei ("enclosure") in einem RSS-Feed.

Aber irgendwie müssen Leute den Feed finden und dazu braucht es die Webseite.

Da ich auch gerne Diskussionen mit den Hörern führen möchte, an denen sich alle Hörer und Leser beteiligen sollen, braucht es die Kommentarfunktion.

Generell halte ich es auch für eine gute Idee, Sendungsnotizen ("Shownotes") zur Verfügung zu stellen, so dass die Hörer die Themen darüber vertiefen können bzw. die Quellen anschauen können.

Das alles hat aber nichts mit Markdown - dem Thema des Artikels - zu tun.

Biene Maja am :

*"3000 Artikel konvertieren": da markdown ohnehin HTML embedded versteht, würde ich es genauso dabei belassen. Sollte aber dennoch der Bedarf bestehen, empfehle ich einen Blick auf pandoc werfen ;-) Qualitätskontrolle würde ich dann auch in drei Schritten vornehmen (alle Zwischenergebnisse speichern, um's später vergleichen zu können): HTML->Markdown->HTML->Markdown. Ich würde erwarten, dass Markdown aus dem ersten Durchlauf, dem aus dem zweiten Durchlauf entspricht. Dann noch exemplarisch die komplexesten Blogeinträge herauswählen und deren alte HTML Form mit dem Markdown abgleichen und Deine Aufwände sollten sich in Grenzen halten.

Dirk Deimeke am :

*Ganz so trivial ist es nicht.

Das Blog wird in diesem Jahr 14 und hat schon einiges hinter sich, das gilt sowohl für die Infrastruktur wie auch für Plugins, Themes und vieles mehr.

Hier stecken so viele Altlasten drin, dass es vermutlich schlauer wäre, neu anzufangen und die alten Blogartikel zu importieren. Aber den Aufwand kann ich momentan nicht treiben.

Matthias Gutjahr am :

*IIRC sollte das Plugin "normales" HTML einfach durchlassen bzw. es kommt auf die Reihenfolge der Plugins an. Bei mir versucht zuerst das MD-Plugin (als zweites Event-Plugin insgesamt), Markdown in HTML umzuwandeln (und sollte bestehendes HTML in Ruhe lassen), dann behandeln ggf. andere Plugins das HTML weiter.
Nagel mich aber nicht 100%ig darauf fest, dass das in jedem Fall so abläuft. Aber einen Versuch ist es wert, vielleicht kannst du es zunächst mal mit einer Blogkopie testen?

Dirk Deimeke am :

*Ja, das ist eine gute Idee.

Weisst Du aus dem Kopf, wie ich mit Markdown Syntax-Highlighting verwenden kann? Dazu benutze ich im Blog Geshi.

Mittlerweile merke ich an einigen Stellen, dass Serendipity einige Schwächen hat, wenn das Blog lange läuft im Laufe des "Lebens" viel genutzt und wieder anders gemacht wurde.

André Jaenisch am :

*Hi Dirk,

normal wird dafür die Sprache an das öffnende Code-Fence gehängt:

CODE:
```css
body {
  background-color: orange;
}
```


Die Bloggingsoftware wandelt es dann für eine Bibliothek wie highlight.js um.

strcat am :

*s/AsciiDoc/Asciidoctor/g
AsciiDoc habe ich jahrelang verwendet, bin aber mittlerweile komplett auf Asciidoctor umgestiegen.

Kommentar schreiben

Gravatar, Favatar, Pavatar, Identica, Twitter, MyBlogLog Autoren-Bilder werden unterstützt.
BBCode-Formatierung erlaubt
Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
:'(  :-)  :-|  :-O  :-(  8-)  :-D  :-P  ;-) 
Formular-Optionen