mirror of
https://github.com/OrcaSlicer/OrcaSlicer_WIKI.git
synced 2026-05-17 00:25:45 +03:00
Improve YAML validation for MkDocs config (#129)
Adds a custom SafeLoader to tolerate !!python/name tags in mkdocs.yml, allowing validation of YAML files that use MkDocs or pymdownx extensions without executing code.
This commit is contained in:
@@ -235,7 +235,17 @@ def update_mkdocs_yml(mkdocs_path: Path, nav_yaml: str) -> None:
|
||||
# Validate YAML before writing (basic check - try importing yaml if available)
|
||||
try:
|
||||
import yaml
|
||||
yaml.safe_load(new_content)
|
||||
|
||||
class _MkDocsSafeLoader(yaml.SafeLoader):
|
||||
"""SafeLoader that tolerates mkdocs Python tags."""
|
||||
|
||||
# Allow !!python/name:... tags used by MkDocs/pymdownx without executing code
|
||||
_MkDocsSafeLoader.add_constructor(
|
||||
'tag:yaml.org,2002:python/name',
|
||||
lambda loader, node: loader.construct_scalar(node)
|
||||
)
|
||||
|
||||
yaml.load(new_content, Loader=_MkDocsSafeLoader)
|
||||
except ImportError:
|
||||
# yaml module not available, skip validation
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user