Besserer Ruby Markdown Interpreter?

73

Ich versuche, eine Markdown-Interpreter-Klasse / ein Markdown-Modul zu finden, die / das ich in einer Rake-Datei verwenden kann.

Bisher habe ich Maruku gefunden , aber ich bin etwas vorsichtig mit Beta-Versionen.

Hat jemand irgendwelche Probleme mit Maruku gehabt? Oder kennen Sie eine bessere Alternative?

Jonathan Lonowski
quelle

Antworten:

314

Ich verwende Maruku, um 100.000 - 200.000 Dokumente pro Tag zu verarbeiten. Meistens Forenbeiträge, aber ich verwende es auch für große Dokumente wie Wiki-Seiten. Maruku ist viel schneller als BlueCloth und erstickt nicht an großen Dokumenten. Es ist alles Ruby und obwohl der Code nicht besonders einfach zu erweitern und zu erweitern ist, ist er machbar. Wir haben ein paar Verbesserungen und Extras in unserem Markdown-Dialekt.

Wenn Sie etwas wollen, das reiner Rubin ist , empfehle ich auf jeden Fall Maruku.

Für die schnellste Option möchten Sie wahrscheinlich RDiscount. Die Eingeweide sind in C implementiert.

Siehe auch: " Moving Past BlueCloth " auf Ryan Tomaykos Blog. Ryans Beitrag enthält den folgenden Benchmark von 100 Iterationen eines Abschriften-Tests:

BlueCloth: 13.029987s total time, 00.130300s average
   Maruku: 08.424132s total time, 00.084241s average
RDiscount: 00.082019s total time, 00.000820s average


Update August 2009

BlueCloth2 wurde veröffentlicht ( http://www.deveiate.org/projects/BlueCloth ). Die Geschwindigkeit ist mit RDiscount vergleichbar, da es auf RDiscount basiert - es ist kein reiner Ruby.

(Danke Jim )


Update November 2009

Kramdown 1.0 wurde gerade veröffentlicht . Ich habe es noch nicht ausprobiert, aber es ist ein reiner Ruby Markdown-Parser, der behauptet, 5x schneller als Maruku zu sein.


Update April 2011

Maruku hat seit Juni 2010 kein Commit mehr gesehen. Vielleicht möchten Sie sich stattdessen mit Kramdown befassen.

Eine neue schnelle Option, die nicht nur Ruby ist: GitHub hat Redcarpet veröffentlicht, das auf libupskirt basiert: https://github.com/blog/832-rolling-out-the-redcarpet

Update August 2013

Kramdown ist immer noch ein sehr gesundes Projekt (basierend auf jüngsten Commits, ausstehenden Problemen, Pull-Anfragen) und eine gute Wahl für eine reine Ruby Markdown-Engine https://github.com/gettalong/kramdown

Redcarpet ist wahrscheinlich immer noch die am häufigsten verwendete und aktiv gewartete Option für Leute, die keinen reinen Ruby brauchen oder wollen.

casey
quelle
79
gab dir +1, weil du den Update-Bereich eingegeben hast!
Rob
15
Ich kann nicht sagen, wie nützlich der Abschnitt Update hier ist. Nur nach einer Ruby-Lösung zu googeln, führt zu einer Reihe von Implementierungen, die zu ihrer Zeit wahrscheinlich großartig waren, aber dies bietet viel Kontext.
Brymck
5
Aus diesem Grund liebe ich die Community von StackOverflow (wirklich den gesamten Exchange) - eine völlig unnötige und unaufgeforderte Großzügigkeit und Gewissenhaftigkeit.
Iono
1
Auf der Testseite von Kramdown finden Sie derzeit Benchmarks aller Bibliotheken vom Februar 2012.
fny
Ich muss darauf hinweisen, dass Kramdown etwas vom Markdown-Standard abweicht. Zum Beispiel (wie ich herausgefunden habe) können Sie keinen Link in einem Header haben. Sie sollten vorsichtig sein, wenn Sie viele bereits vorhandene Markdown-Dokumente haben.
Haroldo_OK
8

Die Auflistung unter http://ruby-toolbox.com/categories/markup_processors.html ist ein guter Ort, um mit der Suche zu beginnen.

John Dyer
quelle
1
+1 Alle diese anderen Antworten werden ziemlich schnell veraltet sein, aber diese Auflistung sollte auf dem neuesten Stand bleiben, solange es eine Ruby-Toolbox gibt.
Ajedi32
5

Versuchen Sie RDiscount . BlueCloth ist langsam und fehlerhaft.

Zenazn
quelle
1
Es ist nicht mehr. Es wird jetzt die C-Rabattbibliothek verwendet. deveiate.org/projects/BlueCloth
Christian Lescuyer
1

Ich glaube, BlueCloth ist das bekannteste.

Gordon Wilson
quelle
1

Es sieht so aus, als ob viele dieser Antworten veraltet sind.

Das Beste, was ich dort (Sommer 2013) herausgefunden habe, ist das Juwel von Redcarpet: https://github.com/vmg/redcarpet

Neal
quelle
0

Installieren Sie Folgendes, um sicherzustellen, dass Sie BlueCloth 2 erhalten:

gem install bluecloth

Beachten Sie, dass "Blautuch" in Kleinbuchstaben und nicht in Kamelschrift geschrieben werden sollte.

Quelle: http://rubygems.org/gems/bluecloth

thdoan
quelle
0

Wenn Sie ein gutes Beispiel für die Verwendung von Kramdown in einer Rake-Datei benötigen, gibt es auf markith.md ein Repo auf Github mit Code und Artikeln, das mit Hervorhebung der Ruby-Codesyntax, aber leider auch Zeilennummern, in HTML konvertiert werden kann würde es vorziehen, die Zeilennummerierung auszuschalten)

Wenn jemand weiß, wie die Standardeinstellung für die Zeilennummerierung deaktiviert werden kann, teilen Sie uns dies bitte mit.

Auf jeden Fall lautet der Link https://github.com/elm-city-craftworks/practicing-ruby-manuscripts

Douglas G. Allen
quelle