python类Directive()的实例源码

pandoc_sphinxext.py 文件源码 项目:adaptivemd 作者: markovmodel 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
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
    }
template.py 文件源码 项目:docs 作者: hasura 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
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


问题


面经


文章

微信
公众号

扫码关注公众号