2011-10-19 14 views
9

मैं अपने स्फिंक्स दस्तावेज़ में केवल एक विशिष्ट फ़ंक्शन के डॉकस्ट्रिंग को शामिल करना चाहता हूं। लेकिन वहाँ कोई विकल्प सिर्फ http://sphinx.pocoo.org/ext/autodoc.htmlस्फिंक्स प्रलेखन में डॉकस्ट्रिंग सहित

का उपयोग कर मैं एक वर्ग के रूप में show *only* docstring in Sphinx documentation में उल्लिखित बनाने की कोशिश की है, लेकिन मुझे यकीन है कि कैसे इस templating के साथ में फिट बैठता है नहीं कर रहा हूँ जुड़े वर्ग और समारोह परिभाषाओं के बिना इन विवरण प्रदर्शित करने के होने लगते हैं।

मैंने बिना किसी किस्मत के ऑटोडोक-प्रोसेस-डॉकस्ट्रिंग इवेंट हैंडलर को भी आजमाया है।

तो बजाय मेरी प्रलेखन प्रदर्शित (के रूप में यह वर्तमान में है):

This is my method doc string 

एक .txt फ़ाइल में मेरे वर्तमान टेम्पलेट है:

class module.MyClass(param) 

    This is the class doc string 

    my_method() 

     This is my method doc string 

मैं सिर्फ प्रदर्शित करना चाहते हैं

.. autoclass:: module.MyClass 
    :members: my_method 

उत्तर

14

स्रोत और प्रयोग को देखने के बाद - यहां स्पिन्क्स 1.1 में इसे कैसे किया जाए।

अपनी conf.py फ़ाइल में एक नया MethodDocumenter सबक्लास बनाएं। यहां आप एक नया "objtype" सेट कर सकते हैं, सुनिश्चित करें कि डॉकस्ट्रिंग इंडेंट नहीं है, और शीर्षक को हटा दें।

from sphinx.ext import autodoc 

class SimpleDocumenter(autodoc.MethodDocumenter): 
    objtype = "simple" 

    #do not indent the content 
    content_indent = "" 

    #do not add a header to the docstring 
    def add_directive_header(self, sig): 
     pass 
फिर

यकीन है कि यह निम्नलिखित समारोह (conf.py में फिर से) के साथ उपलब्ध documenters से जोड़ा गया है: जब तुम सिर्फ प्रदर्शित करने के लिए एक विधि के docstring निम्न स्वरूप का उपयोग करना चाहता हूँ

def setup(app): 
    app.add_autodocumenter(SimpleDocumenter) 

फिर आपके .txt या .rst फ़ाइलों में। ऑटो के साथ बस अपने objname उपसर्ग करें।

.. autosimple:: mod.MyClass.my_method 
+0

कोई विचार यह है कि यह [अभी भी एकमात्र तरीका है] (http://stackoverflow.com/q/34074839/656912)? – orome

संबंधित मुद्दे