from __future__ import annotations import posixpath import re from mkdocs.config.defaults import MkDocsConfig from mkdocs.structure.files import File, Files from mkdocs.structure.pages import Page from re import Match # very much stolen/based on https://github.com/squidfunk/mkdocs-material/blob/master/src/overrides/hooks/shortcodes.py def on_page_markdown(markdown: str, *, page: Page, config: MkDocsConfig, files: Files): # Replace callback def replace(match: Match): type, args = match.groups() args = args.strip() if type == "version": return _version_block(args) if type == "inline_version": return _inline_version_block(args) elif type == "pro": return _pro_ad() elif type == "inline_pro": return _inline_pro_ad() elif type == "featpro": return _pro_feat_ad() elif type == "templates": return _templates_ad() elif type == "alpha": return _alpha_block() # Otherwise, raise an error raise RuntimeError(f"Unknown shortcode: {type}") # Find and replace all external asset URLs in current page return re.sub( r"", replace, markdown, flags = re.I | re.M ) def _pro_feat_ad(): return "".join([ f"
GoReleaser Pro
", f"This feature is exclusively available with GoReleaser Pro.
", f"GoReleaser Pro
", f"One or more features are exclusively available with GoReleaser Pro.
", f"Tip
", f"Discover more about the name template engine.
", f"