Source code for betty.sphinx.extension.replacements
"""
Provide a Sphinx plugin to apply string replacements to source code.
"""
from sphinx.application import Sphinx
[docs]
def render_replacements(app: Sphinx, docname: str, source: list[str]) -> None:
"""
Handle Sphinx's source-read event to perform string replacements.
"""
for token_name, value in app.env.config["html_context"][
"betty_replacements"
].items():
source[0] = source[0].replace("{{{ " + token_name + " }}}", value)
[docs]
def setup(app: Sphinx) -> None:
"""
Implement Sphinx's extension setup.
"""
app.connect("source-read", render_replacements)