2012-08-13 14 views
17

क्या कोई काम कर रहे पायथन जीएफएम कार्यान्वयन के बारे में जानता है?पायथन में गिथब-फ्लेवर-मार्कडाउन

वर्तमान में मैं javascript renderer का उपयोग कर रहा हूं। यह काम करता है, लेकिन वास्तविक पायथन रेंडरर नौकरी के लिए सही उपकरण होगा। (एफएस एक Django ऐप है)

मैंने this के साथ संयोजन करने की कोशिश की। लेकिन परिणाम इतना अच्छे नहीं हैं।

प्रासंगिक कोड ->https://github.com/freedomsponsors/www.freedomsponsors.org/blob/master/djangoproject/core/models.py (IssueComment.toHTML देखें)

सिंटेक्स हाइलाइटिंग एक प्लस है।

उत्तर

16

GitHub Redcarpet का उपयोग करता है जो वास्तव में एक रूबी Sundown के लिए GitHub द्वारा बनाया गया बाध्यकारी है।

पाइथन में सुंदौउन के लिए बाध्यकारी है जिसे Misaka कहा जाता है। यदि आप रेंडरर जीथब उपयोग के करीब कुछ चाहते हैं लेकिन पाइथन में आप वहां से शुरू कर सकते हैं।

कोड हाइलाइटिंग के लिए आप Pygments with Misaka का उपयोग कर सकते हैं।

+0

अच्छा! मैं इसे देख लूँगा। धन्यवाद! –

+0

दरअसल, यह सिर्फ काम करता है। धन्यवाद (जल्द ही एक डेमो होगा) –

+1

[यह] (https://github.com/freedomsponsors/www.freedomsponsors.org/issues/4) यह है कि मैंने इसे कैसे काम किया। यदि कोई और मिसाका का उपयोग करने की योजना बना रहा है, तो कृपया [इस] (https://github.com/FSX/misaka/issues/25#issuecomment-8295218) –

5

अजगर का अपना मार्कअप भाषा है कि काफी Markdown के समान है: http://docutils.sourceforge.net/rst.html

+0

धन्यवाद, कि पता करने के लिए अच्छा है (upvoted)। हालांकि मैं एमडी का उपयोग करना चाहूंगा। –

2

Grip भी बहुत अच्छा है और काम करवाने हो जाता है।

6

Python-Markdown प्लस py-gfm अच्छी तरह से काम करता प्रतीत होता है। पाइथन पारिस्थितिक तंत्र के भीतर कुछ हद तक मानकीकृत होने का लाभ है - पायथन-मार्कडाउन के लिए कई एक्सटेंशन उपलब्ध हैं, तो django_markdown जैसे अतिरिक्त पैकेज पाइथन-मार्कडाउन के शीर्ष पर बनाए जा सकते हैं और इसके एक्सटेंशन से लाभ उठा सकते हैं।

+0

[py-gfm] के नए रखरखाव के रूप में सावधान रहें (https://github.com/zopieux/py-gfm), मैं भावी रिलीज में लापता सुविधाओं को जोड़ने का प्रयास करूंगा। – zopieux

1

दूसरों के लिए सहायक होने पर, मैं बस गितुब को कोड सिंटैक्स फेंकना चाहता था, उदाहरण के लिए

```python 
def hello(): 
    print('this should be rendered properly') 
``` 

Python Markdown वास्तव में एक एक्सटेंशन के साथ जहाजों यह पहले से ही Fenced Code Blocks कि अच्छी तरह से काम करता है कहा जाता है क्या करना है।

तुम बस इतना है कि यह फोन:

page_content = markdown.markdown(source, extensions=[FencedCodeExtension()])