2013-01-19 68 views
10

我正在使用Sphinxdoc生成api文檔,並且在編寫文檔字符串時遇到了與pep8一致性問題。如何打破第一個文檔字符串中的鏈接以滿足pep8?

正如你可以看到下面的鏈接到OWASP網站在列105結束,遠過去所PEP8決定maximum-line-length

def handle_csrf(...): 
    """The general recommendation by people in the know [OWASP]_, is 
     'to implement the Synchronizer Token Pattern (STP_)'. 

     .. [OWASP] The Open Web Application Security Project 
      (https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet) 
     .. _STP: http://www.corej2eepatterns.com/Design/PresoDesign.htm 

    """ 

有沒有辦法來包裝的網址,同時仍保持它在一個網址生成的文檔?

插入反斜槓不起作用。

+2

可能的重複[我應該如何格式化一個長的url在python評論,仍然是PEP8兼容](http://stackoverflow.com/questions/10739843/how-should-i-format-a-long-url -in-A-python的註釋和-仍然待PEP8兼容)。雖然這不是關於獅身人面像。 –

+1

我希望shpinx在保留縮進的同時有一些分割線條的方法,特別是因爲連續線上的縮進通常很重要。 – thebjorn

+1

這是非常愚蠢的建議,但如何tinyurl.com或bit.ly –

回答

6

一個反斜槓\完成這項工作,但弄亂了漂亮的縮進。

def handle_csrf(): 
    """The general recommendation by people in the know [OWASP]_, is 
     'to implement the Synchronizer Token Pattern (STP_)'. 

     .. [OWASP] The Open Web Application Security Project 
      (https://www.owasp.org/index.php/Cross-\ 
Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet) 
     .. _STP: http://www.corej2eepatterns.com/Design/PresoDesign.htm 

    """ 

的結果(同樣適用於長線):

>>> print handle_csrf.__doc__ 
The general recommendation by people in the know [OWASP]_, is 
     'to implement the Synchronizer Token Pattern (STP_)'. 

     .. [OWASP] The Open Web Application Security Project 
      (https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet) 
     .. _STP: http://www.corej2eepatterns.com/Design/PresoDesign.htm 

此外,PEP8是引導,而不是一個法律 - 這似乎是一個(罕見)情況下這是確定忽略它。

5

縱觀a problem,我想出了一個解決方案(n優雅?)的解決方案。

首先,這裏是我的文檔字符串:

def ook(): 
"""The sound a monkey makes... 
    ⚠ `SQLAlchemy`_ used here. 
""" 
... 

其次,在第一個文件,我有這樣的定義:

.. autofunction:: ook 
.. _SQLAlchemy: http://www.sqlalchemy.org 

所以當ook形成文件時,SQLAlchemy _鏈接的作品。