diff --git a/scripts/reference-generation/weave/generate_python_sdk_docs.py b/scripts/reference-generation/weave/generate_python_sdk_docs.py index 1b175ea38d..579a20e894 100755 --- a/scripts/reference-generation/weave/generate_python_sdk_docs.py +++ b/scripts/reference-generation/weave/generate_python_sdk_docs.py @@ -165,6 +165,23 @@ def fix_code_fence_indentation(text: str) -> str: return "\n".join(result_lines) +def convert_source_badges_to_buttons(content: str) -> str: + """Convert shields.io source badge images to SourceLink components. + + This avoids Mintlify's image lightbox from triggering when clicking source links. + + Converts: + + To: + + """ + # Pattern matches both self-closing (/>) and non-self-closing (>) img tags + # lazydocs generates non-self-closing tags: + pattern = r'\s*]*src="https://img\.shields\.io/badge/-source[^"]*"[^>]*/?>\s*' + replacement = r'' + return re.sub(pattern, replacement, content) + + def convert_docusaurus_to_mintlify(content: str, module_name: str) -> str: """Convert Docusaurus markdown to Mintlify MDX format.""" # Remove the sidebar_label frontmatter (Mintlify uses title) @@ -190,6 +207,8 @@ def convert_docusaurus_to_mintlify(content: str, module_name: str) -> str: description: "Python SDK reference for {module_name}" --- +import {{ SourceLink }} from '/snippets/en/_includes/source-link.mdx'; + """ content = frontmatter + content @@ -199,7 +218,7 @@ def convert_docusaurus_to_mintlify(content: str, module_name: str) -> str: def generate_module_docs(module, module_name: str, src_root_path: str, version: str = "master") -> str: """Generate documentation for a single module.""" # Use the specific version tag for source links - src_url = f"https://github.com/wandb/weave/blob/{version}" + src_url = f"https://github.com/wandb/weave/blob/v{version}" if version == "latest": src_url = "https://github.com/wandb/weave/blob/master" @@ -371,6 +390,9 @@ def fix_parameter_lists(text): content = fix_parameter_lists(content) + # Convert source badge images to text buttons (avoids Mintlify lightbox issue) + content = convert_source_badges_to_buttons(content) + # Convert to Mintlify format content = convert_docusaurus_to_mintlify(content, module_name) diff --git a/snippets/button-links.css b/snippets/button-links.css index 965ba02aa1..139a3d93c3 100644 --- a/snippets/button-links.css +++ b/snippets/button-links.css @@ -43,3 +43,35 @@ background-color: rgba(39, 39, 42, 0.8); border-color: rgba(63, 63, 70, 1); } + +/* Compact source link for SDK reference docs */ +.source-link { + float: right; + display: inline-block; + padding: 2px 8px; + border: 1px solid rgba(230, 228, 224, 0.7); + border-radius: 6px; + font-size: 12px; + font-weight: 500; + color: rgb(87, 85, 81); + background-color: rgba(255, 255, 255, 0.5); + text-decoration: none; + transition: all 0.15s ease; +} + +.source-link:hover { + background-color: rgba(255, 255, 255, 0.8); + border-color: rgba(230, 228, 224, 1); + text-decoration: none; +} + +.dark .source-link { + color: rgb(214, 211, 209); + background-color: rgba(39, 39, 42, 0.5); + border: 1px solid rgba(63, 63, 70, 0.7); +} + +.dark .source-link:hover { + background-color: rgba(39, 39, 42, 0.8); + border-color: rgba(63, 63, 70, 1); +} diff --git a/snippets/en/_includes/source-link.mdx b/snippets/en/_includes/source-link.mdx new file mode 100644 index 0000000000..7c2dc73d97 --- /dev/null +++ b/snippets/en/_includes/source-link.mdx @@ -0,0 +1,10 @@ +export const SourceLink = ({ url }) => ( + + Source + +);