2011-07-11 13 views
54

Geliştiricilerin paketlerini reStructuredText kullanarak tanımlamasına izin verdiğim bir çerçeve yapıyorum. Bu reStructuredText'i HTML'ye ayrıştırmak istiyorum, böylece bir GUI'de gösterebilirim.Yeniden yapılandırılmış HTML'yi HTML'ye ayırma

Mükemmel Sphinx'e aşinayım, ama reStructuredText'i asla başka bir şekilde ayrıştırmamıştım. Bir dizi reStructuredText ve muhtemelen birkaç ek argüman alan bir işlev gibi bir şey hayal ettim ve bir HTML dizisi döndürdüm.

Bu yüzden reStructuredText öğelerini ayrıştırmaktan sorumlu olan Docutils'e baktım. Bu işlevi nasıl bulacağımı hiç anlayamadım. Web'deki belgeler sivilceli. docutils.parsers.rst modülündeki işlevlerin çoğu dosya isimlerine yönelik görünüyordu. Dosya ismim yok! Sadece iplerle uğraşıyorum.

Ben Parser ve Document oluşturma ve parse yöntemi kullanılarak çalıştı, ama sadece bir kayıp .tab_width ayarıyla ilgili bir hata alıyorum.

HTML'de reStructuredText'i nasıl ayrıştırılacağını bilen var mı? Böyle

cevap

60

deneyin şey:

>>> from docutils.core import publish_string 
>>> publish_string("*anurag*", writer_name='html') 

publish_string bir dizeleri kabul eder ve bir dizge çıktılar ya html belgesinin belirli bölümlerini ör almak için publish_parts kullanabilirsiniz

>>> from docutils.core import publish_parts 
>>> print publish_parts("*anurag*", writer_name='html')['html_body'] 
<p><em>anurag</em></p> 
+5

İkinci öneriniz daha etkili olanıydı: '' Body'' tam olarak istediğim şeydi. –

+2

Dokümantasyona bağlantı vermelisiniz (http://docutils.sourceforge.net/docs/api/publisher.html#publish-parts-details)! Ve FWIW, burada bazı ilgili kod snippet'leri var: http://code.activestate.com/recipes/193890-using-rest-restructuredtext-to-create-html-snippet/ –

İlgili konular