Markdown to MoinMoin-wiki in Ruby (Redcarpet Erweiterung)

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Nabend,

da ich von Jens gebeten wurde, mein Tutorial über Textmenüs ins Wiki zu stellen, habe ich nach einer Lösung gesucht, wie ich automatisch Text in Githubs Markdown-Dialekt in den Markdown-Dialekt unseres Wikis wandeln kann.

Ich stolperte schnell über Redcarpet, das Ruby-Modul, welches Github wohl selber nutzt.

Ich habe mir mal den Spaß gemacht und einen eigenen Renderer für die MoinMoin-Syntax als Erweiterung zu schreiben. Hier mein Resultat: Link

Ich habe bisher wenig Kontakt mit Ruby gehabt, das ist quasi mein erstes Script - daher ist da vermutlich einiges umständliches dran ;-)

Hier mal eine kleiner Demotext:

Code: Alles auswählen

Demo
====

Kleine Demo mit Quotes

> Quotes und vielem bla
> bla bla

Code
----

```python
def foo():
    print("Hello")   
```

sowie **fetten** und *kursiven* Texten und einem 
[Link](http://www.python-forum.de).
Ergebnis:

Code: Alles auswählen

= Demo =

Kleine Demo mit Quotes

Quotes und vielem bla
bla bla


== Code ==

{{{#!python
def foo():
    print("Hello")   
}}}

sowie '''fetten''' und ''kursiven'' Texten und einem 
[[http://www.python-forum.de|Link]].
Eigentlich bin ich ganz zufrieden, aber mit den Quotes hapert es noch. Ich muss für MoinMoin eine Einrückung vor jede Zeile des Quotes schreiben. Leider ignoriert Redcarpet in der Standardeinstellung ja Whitespaces. Ich dachte per `hard_wrap`-Parameter kann ich das evtl. umstellen, aber augenscheinlich liege ich da falsch. Ich hoffe hier gibt es einen Ruby-Gott, der mir das hinbastelt :-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

So, dank Nachfrage bei einem Experten auf uu.de (Danke "rklm"! :-) ), hier nun die funktionierende Lösung: Link.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten