mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Copied parse_role and parse_directive from doc/conf.py, which provides parsing of directives and roles used in Sphinx documentation.
This commit is contained in:
parent
84a65f257b
commit
51ac251a95
@ -20,11 +20,9 @@ from sphinx.roles import XRefRole
|
|||||||
from sphinx.util.nodes import make_refnode
|
from sphinx.util.nodes import make_refnode
|
||||||
from sphinx.util.docfields import Field, GroupedField, TypedField
|
from sphinx.util.docfields import Field, GroupedField, TypedField
|
||||||
|
|
||||||
|
dir_sig_re = re.compile(r'\.\. (.+?)::(.*)$')
|
||||||
|
|
||||||
class ReSTMarkup(ObjectDescription):
|
class ReSTMarkup(ObjectDescription):
|
||||||
def handle_signature(self, sig, signode):
|
|
||||||
signode.clear()
|
|
||||||
signode += addnodes.desc_name(sig, sig)
|
|
||||||
return sig
|
|
||||||
|
|
||||||
def add_target_and_index(self, name, sig, signode):
|
def add_target_and_index(self, name, sig, signode):
|
||||||
if name not in self.state.document.ids:
|
if name not in self.state.document.ids:
|
||||||
@ -51,10 +49,25 @@ class ReSTMarkup(ObjectDescription):
|
|||||||
|
|
||||||
|
|
||||||
class ReSTDirective(ReSTMarkup):
|
class ReSTDirective(ReSTMarkup):
|
||||||
pass
|
def handle_signature(self, sig, signode):
|
||||||
|
if not sig.startswith('.'):
|
||||||
|
dec_sig = '.. %s::' % sig
|
||||||
|
signode += addnodes.desc_name(dec_sig, dec_sig)
|
||||||
|
return sig
|
||||||
|
m = dir_sig_re.match(sig)
|
||||||
|
if not m:
|
||||||
|
signode += addnodes.desc_name(sig, sig)
|
||||||
|
return sig
|
||||||
|
name, args = m.groups()
|
||||||
|
dec_name = '.. %s::' % name
|
||||||
|
signode += addnodes.desc_name(dec_name, dec_name)
|
||||||
|
signode += addnodes.desc_addname(args, args)
|
||||||
|
return name
|
||||||
|
|
||||||
class ReSTRole(ReSTMarkup):
|
class ReSTRole(ReSTMarkup):
|
||||||
pass
|
def handle_signature(self, sig, signode):
|
||||||
|
signode += addnodes.desc_name(':%s:' % sig, ':%s:' % sig)
|
||||||
|
return sig
|
||||||
|
|
||||||
class ReSTXRefRole(XRefRole):
|
class ReSTXRefRole(XRefRole):
|
||||||
pass
|
pass
|
||||||
|
Loading…
Reference in New Issue
Block a user