2010-08-13 7 views
16

मुझे वास्तव में मार्कडाउन (शायद एसओ के कारण) पसंद है और मुझे हास्केल में प्रोग्रामिंग पसंद है। मैंने हाल ही में Literate Haskell (एलएचएस) की खोज की है और मैं मार्कडाउन और एलएचएस का एक साथ उपयोग करना चाहता हूं। मुझे आप इस गूंगा उदाहरण देता हूँ:एलएचएस और मार्कडाउन: कोडब्लॉक्स

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? 

बाद में Markdown से पार्स किया जा सकता लिखा एक साक्षर Haskell फ़ाइल का एक उदाहरण है कि। हालांकि, मैं चाहता हूं कि कोड वास्तव में एचटीएमएल कोड ब्लॉक में और बिना उनके सामने दिखाई दे। इसलिए मैं केवल चार कोड लाइनों को इंडेंट नहीं कर सकता क्योंकि इससे ऊपर दिखाई देने वाले मार्कडाउन का उत्पादन होगा। असल में, मैं चाहता हूं कि एचटीएमएल इस तरह से बाहर निकल जाए:

<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> 

ध्यान देने योग्य बात यह है कि इसमें कोई> प्रतीक नहीं है। मुझे यह कैसे करना है?

+0

अब के साथ इसे स्थापित करें स्पष्ट रूप से मैं .lhs के माध्यम से फाइल फेंक सकता है एक sed की _ ^> _ _ 'लेकिन मैं नहीं है वास्तव में करना चाहते हैं। मैं कुछ ऐसे कार्यों में बनाया गया था जिन्हें मैं नहीं जानता था। –

उत्तर

17

Pandoc का उपयोग करें। इसमें markdown+lhs मोड शाब्दिक हास्केल फ़ाइलों में मार्कडाउन का उपयोग करने के लिए है, और यदि आपको यह HTML पसंद नहीं है, तो दस्तावेज़ संरचना को संशोधित करने के लिए an api है।

cabal install pandoc 
+6

रॉबर्ट, यहां एचटीएमएल चिपकाया गया है http://hpaste.org/fastcgi/hpaste.fcgi/raw?id=29029 आपके मार्कडाउन को काटने और 'pbpaste के साथ इसे 'pandoc' पर पेस्ट करने का नतीजा है। पैंडोक -आर मार्कडाउन + lhs -w html -s | pbcopy' बस अगर आप हास्केल ब्लॉग-लेखन लेते हैं ... ध्यान दें कि आप * पांडोक 'को' पठार एचटीएमएल 'लिखने के लिए पक्षी-ट्रैक के साथ पूछ सकते हैं:' pbpaste | पैंडोक -आर मार्कडाउन + एलएचएस-एचटीएमएल + एलएचएस | pbpaste' - तो आपको यह मिल जाएगा: http://hpaste.org/fastcgi/hpaste.fcgi/view?id=29030 एचटीएमएल विचित्र रूप से है, लेकिन कानूनी रूप से, स्वरूपित है; आप इसे 'tidy' के माध्यम से पारित करके इसे से छुटकारा पा सकते हैं। – applicative

+0

यह डेव और आवेदक दोनों का एक उत्कृष्ट उत्तर है। धन्यवाद, यह वही था जो मैं खोज रहा था। उत्तर के रूप में चिह्नित। –

+0

और इसे स्टैक ओवरफ्लो पर प्रकाशित करने के लिए तैयार करने के लिए (सामान्य मार्कडाउन के रूप में, .lhs चाल के बिना), कोई मार्कडाउन + lhs - मार्कडाउन के लिए 'पैंडोक' कर सकता है! (स्रोत मार्कडाउन में केवल HTML-style टिप्पणियों को गलत तरीके से इलाज किया जाता है। मैं फ़ाइल के अंत में Emacs चर को संग्रहीत करने के लिए उनका उपयोग करता हूं।) –