From be585003fa55dd386050a3468a2917ad43aec149 Mon Sep 17 00:00:00 2001 From: NicolasPllr1 Date: Sun, 16 Nov 2025 12:38:59 +0100 Subject: [PATCH] docs: fix gateway links in code blocks --- docs/.hooks/main.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/.hooks/main.py b/docs/.hooks/main.py index a0eba5610d..c4bad10f8c 100644 --- a/docs/.hooks/main.py +++ b/docs/.hooks/main.py @@ -16,12 +16,12 @@ def on_page_markdown(markdown: str, page: Page, config: Config, files: Files) -> str: """Called on each file after it is read and before it is converted to HTML.""" - relative_path_root = (DOCS_ROOT / page.file.src_uri).parent - markdown = inject_snippets(markdown, relative_path_root) + relative_path = DOCS_ROOT / page.file.src_uri + markdown = inject_snippets(markdown, relative_path.parent) markdown = replace_uv_python_run(markdown) markdown = render_examples(markdown) markdown = render_video(markdown) - markdown = create_gateway_toggle(markdown, relative_path_root) + markdown = create_gateway_toggle(markdown, relative_path) return markdown @@ -120,13 +120,13 @@ def sub_cf_video(m: re.Match[str]) -> str: """ -def create_gateway_toggle(markdown: str, relative_path_root: Path) -> str: +def create_gateway_toggle(markdown: str, relative_path: Path) -> str: """Transform Python code blocks with Agent() calls to show both Pydantic AI and Gateway versions.""" # Pattern matches Python code blocks with or without attributes, and optional annotation definitions after # Annotation definitions are numbered list items like "1. Some text" that follow the code block return re.sub( r'```py(?:thon)?(?: *\{?([^}\n]*)\}?)?\n(.*?)\n```(\n\n(?:\d+\..+?\n)+?\n)?', - lambda m: transform_gateway_code_block(m, relative_path_root), + lambda m: transform_gateway_code_block(m, relative_path), markdown, flags=re.MULTILINE | re.DOTALL, ) @@ -136,7 +136,7 @@ def create_gateway_toggle(markdown: str, relative_path_root: Path) -> str: GATEWAY_MODELS = ('anthropic', 'openai', 'openai-responses', 'openai-chat', 'bedrock', 'google-vertex', 'groq') -def transform_gateway_code_block(m: re.Match[str], relative_path_root: Path) -> str: +def transform_gateway_code_block(m: re.Match[str], relative_path: Path) -> str: """Transform a single code block to show both versions if it contains Agent() calls.""" attrs = m.group(1) or '' code = m.group(2) @@ -186,9 +186,9 @@ def replace_agent_model(match: re.Match[str]) -> str: # Build attributes string docs_path = DOCS_ROOT / 'gateway' - relative_path = docs_path.relative_to(relative_path_root, walk_up=True) - link = f"Learn about Gateway" + relative_path_to_gateway = docs_path.relative_to(relative_path, walk_up=True) + link = f"Learn about Gateway" attrs_str = f' {{{attrs}}}' if attrs else '' if 'title="' in attrs: