mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00

It's like ".. literalinclude::" except the argument is an absolute path which may contain environment variables to be be expanded when generating documents.
25 lines
925 B
Python
25 lines
925 B
Python
import os
|
|
from sphinx.directives.code import LiteralInclude
|
|
|
|
def setup(app):
|
|
app.add_directive('rootedliteralinclude', RootedLiteralInclude)
|
|
|
|
class RootedLiteralInclude(LiteralInclude):
|
|
"""
|
|
Like ``.. literalinclude::``, but the argument is an absolute path
|
|
which may contain environment variables which will be expanded when
|
|
generating documents.
|
|
"""
|
|
|
|
def run(self):
|
|
document = self.state.document
|
|
if not document.settings.file_insertion_enabled:
|
|
return [document.reporter.warning('File insertion disabled',
|
|
line=self.lineno)]
|
|
env = document.settings.env
|
|
|
|
expanded_arg = os.path.expandvars(self.arguments[0])
|
|
sphinx_src_relation = os.path.relpath(expanded_arg, env.srcdir)
|
|
self.arguments[0] = os.path.join(os.sep, sphinx_src_relation)
|
|
|
|
return super(RootedLiteralInclude, self).run()
|