2010-08-13 9 views
16

Ich mag Markdown wirklich (wahrscheinlich wegen SO) und ich mag Programmierung in Haskell. Ich habe kürzlich Literate Haskell (LHS) entdeckt und ich möchte Markdown und LHS zusammen verwenden. Lassen Sie mich Ihnen dieses stumme Beispiel:LHS und Markdown: Codeblocks

Crazy Literate Haskell 
====================== 

This is an example of some literate Haskell Code: 

> module Main where 

Look at that IO Monad work: 

> main = return 2 >>= print 

Wasn't that cool? 

, das ein Beispiel einer gebildeten Haskell-Datei geschrieben später von Abschriften analysiert werden. Ich möchte jedoch, dass der Code tatsächlich in HTML-Code-Blöcken und ohne die> vor ihnen erscheint. Daher kann ich nicht einfach alle Codezeilen um vier einrücken, weil das den oben erwähnten Abschlag erzeugen würde. Im Grunde möchte ich das HTML so herauskommen:

<h1>Crazy Literate Haskell</h1> 

<p>This is an example of some literate Haskell Code:</p> 

<pre><code>module Main where 
</code></pre> 

<p>Look at that IO Monad work:</p> 

<pre><code>main = return 2 &gt;&gt;= print 
</code></pre> 

<p>Wasn't that cool?</p> 

Die Sache zu bemerken ist, dass es keine> Symbole hat. Wie würde ich das tun?

+0

Jetzt offensichtlich konnte ich die .lhs durch ein ‚s _ ^> _ _‘ sed-Datei werfen, aber ich will nicht wirklich zu. Ich hätte lieber eine eingebaute Funktion, von der ich nichts wusste. –

Antwort

17

Verwenden Sie Pandoc. Es hat einen markdown+lhs Modus für die Verwendung von Abschriften in literalen Haskell-Dateien, und wenn Sie die HTML-Ausgabe nicht mögen, gibt es an api zum Ändern der Dokumentstruktur.

es installieren mit

cabal install pandoc 
+6

Robert, Das html hier eingefügt http://hpaste.org/fastcgi/hpaste.fcgi/raw?id=29029 ist das Ergebnis des Abschneidens Ihrer Abschrift und Einfügen in "Pandoc" mit 'pbpaste | pandoc -r Abschrift + lhs -w html -s | pbcopy' Nur für den Fall, dass Sie Haskell Blog-schreiben ... beachten Sie, dass Sie * pandoc '' literate html' mit Bird-Tracks schreiben können: 'pbpaste | pandoc -r Abschrift + lhs -w html + lhs | pbpaste' - dann bekommst du das: http://hpaste.org/fastcgi/hpaste.fcgi/view?id=29030 Das html ist seltsam, aber legal, formatiert; Sie können dies loswerden, indem Sie es durch "ordentlich" übergeben. – applicative

+0

Das ist eine ausgezeichnete Antwort, sowohl Dave als auch anwendungsorientiert. Danke, genau das habe ich gesucht. Markierung als Antwort. –

+0

Und um es für die Veröffentlichung auf StackOverflow vorzubereiten (als normale Abschrift, ohne .lhs Tricks), kann man 'pandoc - from markdown + lhs - to markdown' machen! (Nur die Kommentare im HTML-Stil im Quell-Markdown werden falsch behandelt. Ich verwende sie zum Speichern von Emacs-Variablen am Ende der Datei.) –