2011-10-13 21 views
18

Tôi đang cố gắng sử dụng phần mở rộng của nhân sư autodoc và cụ thể là chỉ thị tự động hóa để tự động tạo tài liệu cho ứng dụng django mà tôi đang thực hiện. Vấn đề là tôi muốn tạo các tham chiếu nội bộ cho các lớp khác nhau trong mô-đun, mà không cần phải sử dụng autoclass và autofunction trên mọi lớp/hàm đơn trong dự án. Đối với một tập tin nguồn như thế này:automodule nhân sư: làm thế nào để tham khảo các lớp học trong cùng một mô-đun?

# source_code.py 
class A: 
    """docs for A 
    """ 
    pass 

class B: 
    """docs for B with 
    :ref:`internal reference to A <XXXX-some-reference-to-A-XXXX>` 
    """ 
    pass 

Tôi muốn để có thể có một tập tin tài liệu Sphinx như thế này:

.. automodule: source_code 

tài liệu tham khảo Những gì tôi có thể sử dụng cho một số XXXX-tham chiếu-to- A-XXXX? Có cách nào dễ dàng để thực hiện việc này không? Cảm ơn trước sự giúp đỡ của bạn.

Trả lời

36

Bạn có thể tham khảo một lớp học như thế này:

class B(object): 
    """docs for B with reference to :class:`.A`""" 
    pass 

Sphinx sẽ thông minh cố gắng và tìm ra những gì bạn đang tham khảo. Nếu có nhiều lớp với tên A, bạn có thể nhận được cảnh báo, nhưng nó sẽ nhận một cảnh báo trong mô-đun hiện tại.

9

Không biết nếu tôi hiểu vấn đề nhưng công trình này một cách hoàn hảo với tôi với autodoc, theo Cross-referencing Python objects

class FlowDirection(GeneralTable): 
    ''' 
    Heat Flow Direction 

    :cvar int id: database primary key 
    :cvar unicode name: name 
    ''' 
    def __repr__(self): 
     return u'<FlowDirection {0} instance at {1}>'.format(
       self.name, hex(id(self))).encode('utf-8') 

    def __unicode__(self): 
     return self.name 

class AirCavityRes(GeneralTable): 
    ''' 
    Air Cavity :term:`thermal resistance` 

    :cvar flow_direction: heat flow direction 
     (see :class:`FlowDirection`) 
    :cvar int id: database primary key 
    :cvar int if_fd: database foreign key to :class:`FlowDirection` 
    :cvar float res: :term:`thermal resistance` 
    :cvar float thick: thickness 
    ''' 
    def __repr__(self): 
     return u'<AirCavityRes {0} instance at {1}>'.format(
       self.res, hex(id(self))) 
Các vấn đề liên quan