On Tue, Apr 6, 2010 at 11:21 AM, Georg Brandl <[email protected]> wrote:
> -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Am 05.04.2010 23:19, schrieb Kevin Horn: > > On Mon, Apr 5, 2010 at 3:22 AM, Georg Brandl <[email protected] > > <mailto:[email protected]>> wrote: > > > > -----BEGIN PGP SIGNED MESSAGE----- > > Hash: SHA1 > > > > Am 05.03.2010 00:59, schrieb Kevin Horn: > > > I'm creating a Sphinx extension which just adds a custom docutils > > > "role". A couple of questions: > > > > > > 1) What's the opinion of the list on whether to use a standard > "role > > > function" or the CustomRole class in docutils.parsers.rst.roles.py > > <http://docutils.parsers.rst.roles.py> > > > <http://docutils.parsers.rst.roles.py>? Which is better and why? > > > > CustomRole is meant mostly for the implementation of the "role" > > directive, > > which you can use to add custom roles in reST documents themselves. > > > > If you need the capabilities of CustomRole (adding options and > content > > automatically), you can use it, otherwise I would use a normal role > > function. > > > > > 2) What's the best way to access a Sphinx config variable in my > role > > > function/class? Pass the Sphinx app object into the function/class > in > > > my extensions setup function? Or is there a better way? > > > > You can get at the app via document.settings.env.app. > > > > cheers, > > Georg > > > > > > Yes, but how do I get a reference to "document" inside my role > > function? Is it a global variable? > > Ah, no. Sorry, it is available via inliner.document. (In general, I would > recommend to look at the Sphinx source for guidance.) > > Georg > For future searchers, here's what I got to work: def your_role_function(...): ... env = inliner.document.settings.env config_val = env.config.config_name ... Thanks for the help, Georg! Kevin Horn -- You received this message because you are subscribed to the Google Groups "sphinx-dev" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sphinx-dev?hl=en.
