diff --git a/doc/common/extensions/requirements.py b/doc/common/extensions/requirements.py index 48b2252..34c1eb0 100644 --- a/doc/common/extensions/requirements.py +++ b/doc/common/extensions/requirements.py @@ -1,6 +1,9 @@ +from os import path, makedirs + from docutils import nodes from docutils.parsers.rst import Directive +from sphinx.util.osutil import copyfile # Base feature set. FEATURES_SMALL = set() @@ -32,25 +35,35 @@ class PybricksRequirementsDirective(Directive): optional_arguments = 10 def run(self): + + # Copy required resources to static + # CC BY-SA 4.0 via https://stackoverflow.com/a/63728208 + env = self.state.document.settings.env + + destdir = path.join(env.app.builder.outdir, '_images') + if not path.exists(destdir): + makedirs(destdir) + + for hub in HUB_FEATURES: + for compat in ("true", "false"): + uri = 'compat_{0}_{1}_label.png'.format(hub, compat) + src_uri = path.join(env.app.builder.srcdir, 'images', uri) + build_uri = path.join(env.app.builder.outdir, '_images', uri) + copyfile(src_uri, build_uri) + # Get requirements from sphinx-directive. requirements = set(self.arguments) # Cell with image of a hub. hub_cell = """
+