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
}
python类Directive()的实例源码
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