2010-01-19 11 views
5

Sphinx है उत्पन्न, वहाँ स्वचालित रूप से #112 या Trac में इसी टिकट/changesets को r1023 की तरह पाठ लिंक करने के लिए तरीका है?स्फिंक्स - Trac टिकट के लिए स्वत: संदर्भ और changesets

उदाहरण के लिए:

#112 -> http://mytracsite/tickets/112 
r1023 -> http://mytracsite/changeset/1023 

अधिक उदाहरण के लिए TracLinks देखें।

उत्तर

9

आप अपने config.py


trac_url = 'http://mytratsite/' 

from docutils import nodes, utils 
from docutils.parsers.rst import roles 
import urllib 

def trac_role(role, rawtext, text, lineno, inliner, options={}, content=[]): 
    ref = trac_url + '/intertrac/' + urllib.quote(text, safe='') 
    node = nodes.reference(rawtext, utils.unescape(text), refuri=ref, **options) 
    return [node],[] 

roles.register_canonical_role('trac', trac_role) 

में रखते हैं तो फिर तुम :trac:`#123` और अपने दस्तावेज़ों में :trac:`r1023` उपयोग कर सकते हैं।

यह ट्रैक साइट के त्वरित लिंक बनाने का सबसे आसान तरीका है। यह स्वचालित रूप से सभी प्रकार के ट्रैकलिंक्स के लिए काम करता है क्योंकि यह लिंक के लिए इंटरट्रैक तंत्र का उपयोग करता है।

+0

वाह, भूमिकाएं जोड़ना इतना आसान है? ठंडा! केवल register_canonical_role एक @canonical_role सजावट के रूप में अच्छा दिखता है;) – c089

+0

आप योगदान वाले स्फिंक्स एक्सटेंशन के भंडार से 'Traclinks' भूमिका का भी उपयोग कर सकते हैं: https://bitbucket.org/birkenfeld/sphinx-contrib/src – Eric3

4

स्फिंक्स 1.0 extlinks एक्सटेंशन का उपयोग कर external links का समर्थन करता है।

:issue:`123` 

और यह http://mytracsite/123 में परिवर्तित हो जाएगा: आप की तरह अपने लिंक लिख सकते हैं एक विन्यास भूमिका नाम (जैसे 'मुद्दा') का उपयोग करना।