2012-03-08 14 views
5

यहाँ एक सरल बाकी टुकड़ा है:reStructuredText का सम्मान न subheadings

deleting this line causes all subheadings to be rendered as h1 tags 

I should be an h1 
================= 

I should be an h2 
----------------- 
foo    

I should also be an h2 
---------------------- 
foo 

और यहाँ की यह गाया जा रहा है एक प्रदर्शन है: http://rst.ninjs.org/?n=ff67380d732a33c7844f350c240804d0
प्रारंभिक लाइन के बिना: http://rst.ninjs.org/?n=550ea2c1b4233affdce1d158c5dc4d99

मैं प्रारंभिक लाइन के साथ

मैं निम्नलिखित पायथन का उपयोग कर पुनः प्रस्तुत कर रहा हूं:

from docutils.core import publish_parts 
parts = publish_parts(rest_content, writer_name="html") 
html_snippet = parts['html_body'] 

प्रारंभिक रेखा के बिना मैं उपशीर्षक (विशेष रूप से, <h2> टैग) कैसे प्राप्त करूं? उपशीर्षक के ऊपर पदानुक्रम के दो स्तर प्रदान करते हैं? निष्क्रिय रूप से पेज हेडर प्रदान करने में मदद नहीं मिलती है: http://rst.ninjs.org/?n=e874f6eaad17c8ae7fd565f9ecb2212b

उत्तर

8

दस्तावेज़ शीर्षक पर पहला शीर्षक प्रचारित न करें।

rest_content = """ 
I should be an h1 
================= 

I should be an h2 
----------------- 
foo 


I should also be an h2 
---------------------- 
foo 
""" 

from docutils.core import publish_parts 
parts = publish_parts(rest_content, writer_name="html", 
     settings_overrides={'doctitle_xform':False}) 
html_snippet = parts['html_body'] 

print(html_snippet) 

और उत्पादन:

नोट settings_overrides परम publish_parts() नीचे दिए गए उदाहरण में के लिए पारित

<div class="document"> 
<div class="section" id="i-should-be-an-h1"> 
<h1>I should be an h1</h1> 
<div class="section" id="i-should-be-an-h2"> 
<h2>I should be an h2</h2> 
<p>foo</p> 
</div> 
<div class="section" id="i-should-also-be-an-h2"> 
<h2>I should also be an h2</h2> 
<p>foo</p> 
</div> 
</div> 
</div> 
+0

शानदार, मुझे उस सेटिंग के बारे में पता नहीं था, अकेले रहने दें कि यह डिफ़ॉल्ट रूप से चालू था। बहुत सराहना की। –

0

रेस्ट इस बात पर परवाह नहीं करता कि आप प्रत्येक स्तर के लिए किस प्रतीक का उपयोग करते हैं, "=" केवल एक सम्मेलन है। तो यदि आप पहले को हटाते हैं तो यह एक एच 1 को दर्शाते हुए "-" देखता है। मुझे नहीं लगता कि दुर्भाग्य से इस तरह के आसपास एक रास्ता है।

+0

कोई भी प्रतीक बिल्कुल? क्या आप कह रहे हैं कि 'इस लाइन को हटाने' की स्ट्रिंग को शीर्षक के रूप में माना जाता है? यदि नहीं, तो उस पंक्ति को हटाने से शीर्षक प्रतिपादन क्यों बदल जाता है? –

+1

नहीं, यह गैर-अल्फान्यूमेरिक वर्णों की एक श्रृंखला होनी चाहिए, उदा। ===== या ~~~~~। [रीस्ट डॉक्स] देखें (http://docutils.sourceforge.net/docs/user/rst/quickstart.html#sections) – aquavitae

1

बस एक ही समस्या थी। स्वीकृत समाधान मेरे लिए काम नहीं करता था। हालांकि, निम्नलिखित कोड ने किया:

content = publish_parts(
    rest_content, 
    writer_name='html', 
    settings_overrides={'initial_header_level': 2}) 
html = content['html_body'] 
संबंधित मुद्दे