include_build_file.py 743 B

1234567891011121314151617181920212223
  1. import os.path
  2. from docutils.parsers.rst import directives
  3. from docutils.parsers.rst.directives.misc import Include as BaseInclude
  4. from sphinx.util.docutils import SphinxDirective
  5. class IncludeBuildFile(BaseInclude, SphinxDirective):
  6. """
  7. Like the standard "Include" directive, but relative to the app
  8. build directory
  9. """
  10. def run(self):
  11. abspath = os.path.join(self.env.config.build_dir, self.arguments[0])
  12. self.arguments[0] = abspath
  13. self.env.note_included(abspath)
  14. return super(IncludeBuildFile, self).run()
  15. def setup(app):
  16. directives.register_directive('include-build-file', IncludeBuildFile)
  17. return {'parallel_read_safe': True, 'parallel_write_safe': True, 'version': '0.1'}