def add_crossref_type(self, directivename, rolename, indextemplate='', ref_nodeclass=None): additional_xref_types[directivename] = (rolename, indextemplate, None) directives.register_directive(directivename, directive_dwim(Target)) roles.register_local_role(rolename, xfileref_role) if ref_nodeclass is not None: innernodetypes[rolename] = ref_nodeclass
def add_description_unit(self, directivename, rolename, indextemplate='', parse_node=None, ref_nodeclass=None): additional_xref_types[directivename] = (rolename, indextemplate, parse_node) directives.register_directive(directivename, directive_dwim(GenericDesc)) roles.register_local_role(rolename, xfileref_role) if ref_nodeclass is not None: innernodetypes[rolename] = ref_nodeclass
def add_directive(self, name, obj, content=None, arguments=None, **options): if isinstance(obj, clstypes) and issubclass(obj, Directive): if content or arguments or options: raise ExtensionError('when adding directive classes, no ' 'additional arguments may be given') directives.register_directive(name, directive_dwim(obj)) else: obj.content = content obj.arguments = arguments obj.options = options directives.register_directive(name, obj)
def setup(app): app.add_directive('objcmethod', directive_dwim(ObjCMethod)) app.add_node(desc_objc_method_type, html=(visit_desc_objc_method_type, depart_desc_objc_method_type)) app.add_node(desc_objc_method_name_part, html=(visit_desc_objc_method_name_part, depart_desc_objc_method_name_part)) app.add_node(desc_objc_type, html=(visit_desc_objc_type, depart_desc_objc_type)) app.add_node(desc_objc_param, html=(visit_desc_objc_param, depart_desc_objc_param))
final_argument_whitespace = True option_spec = {} def run(self): node = addnodes.only() node.document = self.state.document node.line = self.lineno node['expr'] = self.arguments[0] self.state.nested_parse(self.content, self.content_offset, node, match_titles=1) return [node] directives.register_directive('toctree', directive_dwim(TocTree)) directives.register_directive('module', directive_dwim(Module)) directives.register_directive('currentmodule', directive_dwim(CurrentModule)) directives.register_directive('sectionauthor', directive_dwim(Author)) directives.register_directive('moduleauthor', directive_dwim(Author)) directives.register_directive('program', directive_dwim(Program)) directives.register_directive('index', directive_dwim(Index)) directives.register_directive('deprecated', directive_dwim(VersionChange)) directives.register_directive('versionadded', directive_dwim(VersionChange)) directives.register_directive('versionchanged', directive_dwim(VersionChange)) directives.register_directive('seealso', directive_dwim(SeeAlso)) directives.register_directive('productionlist', directive_dwim(ProductionList)) directives.register_directive('tabularcolumns', directive_dwim(TabularColumns)) directives.register_directive('glossary', directive_dwim(Glossary)) directives.register_directive('centered', directive_dwim(Centered)) directives.register_directive('acks', directive_dwim(Acks))
# Note: the target directive is not registered here, it is used by the # application when registering additional xref types. _ = lambda x: x # Generic cross-reference types; they can be registered in the application; # the directives are either desc_directive or target_directive. additional_xref_types = { # directive name: (role name, index text, function to parse the desc node) 'envvar': ('envvar', _('environment variable; %s'), None), } del _ directives.register_directive('describe', directive_dwim(DescDirective)) directives.register_directive('function', directive_dwim(ModulelevelDesc)) directives.register_directive('data', directive_dwim(ModulelevelDesc)) directives.register_directive('class', directive_dwim(ClasslikeDesc)) directives.register_directive('exception', directive_dwim(ClasslikeDesc)) directives.register_directive('method', directive_dwim(ClassmemberDesc)) directives.register_directive('classmethod', directive_dwim(ClassmemberDesc)) directives.register_directive('staticmethod', directive_dwim(ClassmemberDesc)) directives.register_directive('attribute', directive_dwim(ClassmemberDesc)) directives.register_directive('cfunction', directive_dwim(CDesc)) directives.register_directive('cproperty', directive_dwim(CDesc)) directives.register_directive('cmember', directive_dwim(CDesc)) directives.register_directive('cmacro', directive_dwim(CDesc)) directives.register_directive('ctype', directive_dwim(CDesc))
required_arguments = 1 optional_arguments = 0 final_argument_whitespace = True option_spec = {} def run(self): node = addnodes.only() node.document = self.state.document node.line = self.lineno node['expr'] = self.arguments[0] self.state.nested_parse(self.content, self.content_offset, node, match_titles=1) return [node] directives.register_directive('toctree', directive_dwim(TocTree)) directives.register_directive('module', directive_dwim(Module)) directives.register_directive('currentmodule', directive_dwim(CurrentModule)) directives.register_directive('sectionauthor', directive_dwim(Author)) directives.register_directive('moduleauthor', directive_dwim(Author)) directives.register_directive('program', directive_dwim(Program)) directives.register_directive('index', directive_dwim(Index)) directives.register_directive('deprecated', directive_dwim(VersionChange)) directives.register_directive('versionadded', directive_dwim(VersionChange)) directives.register_directive('versionchanged', directive_dwim(VersionChange)) directives.register_directive('seealso', directive_dwim(SeeAlso)) directives.register_directive('productionlist', directive_dwim(ProductionList)) directives.register_directive('tabularcolumns', directive_dwim(TabularColumns)) directives.register_directive('glossary', directive_dwim(Glossary)) directives.register_directive('centered', directive_dwim(Centered)) directives.register_directive('acks', directive_dwim(Acks))
if modname: return _('%s (in module %s)') % (name, modname) else: return name if modname and add_modules: return _('%s (%s/%s field)') % (attrname, modname, clsname) else: return _('%s (%s field)') % (attrname, clsname) else: return '' def before_content(self): OOCDesc.before_content(self) if self.names and self.names[-1][1] and not self.env.currclass: self.env.currclass = self.names[-1][1].strip('/ ') self.clsname_set = True directives.register_directive('describe', directive_dwim(DescDirective)) directives.register_directive('function', directive_dwim(ModulelevelDesc)) directives.register_directive('var', directive_dwim(ModulelevelDesc)) directives.register_directive('class', directive_dwim(ClasslikeDesc)) directives.register_directive('cover', directive_dwim(ClasslikeDesc)) directives.register_directive('method', directive_dwim(ClassmemberDesc)) directives.register_directive('staticmethod', directive_dwim(ClassmemberDesc)) directives.register_directive('field', directive_dwim(ClassmemberDesc))
if startafter is not None or endbefore is not None: use = not startafter res = [] for line in lines: if not use and startafter in line: use = True elif use and endbefore in line: use = False break elif use: res.append(line) lines = res text = ''.join(lines) retnode = nodes.literal_block(text, text, source=fn) retnode.line = 1 if self.options.get('language', ''): retnode['language'] = self.options['language'] if 'linenos' in self.options: retnode['linenos'] = True document.settings.env.note_dependency(rel_fn) return [retnode] directives.register_directive('highlight', directive_dwim(Highlight)) directives.register_directive('highlightlang', directive_dwim(Highlight)) # old directives.register_directive('code-block', directive_dwim(CodeBlock)) directives.register_directive('sourcecode', directive_dwim(CodeBlock)) directives.register_directive('literalinclude', directive_dwim(LiteralInclude))
def setup(): 'add support for math to docutils' nodes._add_node_class_names(['math', 'displaymath', 'eqref']) roles.register_local_role('math', math_role) roles.register_local_role('eq', eq_role) directives.register_directive('math', directive_dwim(MathDirective2))
if not use and startafter in line: use = True elif use and endbefore in line: use = False break elif use: res.append(line) lines = res if prepend: lines.insert(0, prepend + '\n') if append: lines.append(append + '\n') text = ''.join(lines) retnode = nodes.literal_block(text, text, source=fn) retnode.line = 1 if self.options.get('language', ''): retnode['language'] = self.options['language'] if 'linenos' in self.options: retnode['linenos'] = True document.settings.env.note_dependency(rel_fn) return [retnode] directives.register_directive('highlight', directive_dwim(Highlight)) directives.register_directive('highlightlang', directive_dwim(Highlight)) # old directives.register_directive('code-block', directive_dwim(CodeBlock)) directives.register_directive('sourcecode', directive_dwim(CodeBlock)) directives.register_directive('literalinclude', directive_dwim(LiteralInclude))