2010-01-19 18 views

Respuesta

9

si se pone esto en su 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) 

continuación, puede utilizar :trac:`#123` y :trac:`r1023` en sus documentos.

Esta es probablemente la forma más fácil de hacer enlaces rápidos a un sitio de trac. Funciona automáticamente para todo tipo de TracLinks porque usa el mecanismo intertrac para los enlaces.

+0

Wow, agregar roles es así de fácil? ¡Guay! Solo el register_canonical_role se vería mejor como decorador de @canonical_role;) – c089

+0

También puede usar el rol 'traclinks' desde el repositorio de extensiones Sphinx aportadas: https://bitbucket.org/birkenfeld/sphinx-contrib/src – Eric3

4

Sphinx 1.0 ahora es compatible con external links con la extensión extlinks. El uso de un nombre de función configurable (por ejemplo, 'problema') se puede escribir como sus enlaces:

:issue:`123` 

y se convertirá a http://mytracsite/123.

Cuestiones relacionadas