我们从Python开源项目中,提取了以下2个代码示例,用于说明如何使用sphinx.util.compat.Directive()。
def setup(app): setup.app = app setup.config = app.config setup.confdir = app.confdir # app.add_stylesheet('css/md.css') app.add_config_value('pandoc_from', ['markdown', 'mediawiki'], 'env') # Directive pandoc:: [file.ext] app.add_directive('pandoc', MakePandocDirective('')) # Directive [type]:: [file.xyz] where type can be a pandoc type # like 'markdown', 'mediawiki' for from_type in setup.config.pandoc_from: app.add_directive(from_type, MakePandocDirective(from_type)) return { 'parallel_read_safe' : True, 'parallel_write_safe' : True }
def create_template_factory(app): class TemplateDefinition(Directive): has_content = True required_arguments = 1 optional_arguments = 1 final_argument_whitespace = True option_spec = {'yaml': directives.flag} def run(self): name = self.arguments[0] defined_in = self.state.document.current_source source_path = self.state.document.get('source') # Register this directive as existing in the current document. if not source_path in REGISTERED: REGISTERED[source_path] = set() if not name in REGISTERED[source_path]: template = '\n'.join(self.content) is_yaml = 'yaml' in self.options directive = create_directive(name, template, defined_in, is_yaml) app.add_directive(name, directive) REGISTERED[source_path].add(name) return [] return TemplateDefinition