@@ -84,14 +84,17 @@ def record(self, rel_path: str, url: str, how: str) -> None:
8484 if url != expected :
8585 self .issues .append (
8686 f"{ rel_path } : URL { url } ({ how } ) does not match its file path "
87- f"{ expected } . Rename the file, change the nav label, or set "
88- f'frontmatter slug: "{ expected .lstrip ("/" )} ".'
87+ f"{ expected } . Rename the file, change the nav label, or set a "
88+ "relative slug in docs/index.yml. For folder-discovered pages, "
89+ f'use frontmatter slug: "{ expected .lstrip ("/" )} ".'
8990 )
9091
9192 def walk (self , items : list , prefix : str ) -> None :
9293 for item in items or []:
9394 if "section" in item :
9495 url = prefix + "/" + item .get ("slug" , fern_slug (item ["section" ]))
96+ if item .get ("skip-slug" ):
97+ url = prefix
9598 if "path" in item :
9699 rel = item ["path" ]
97100 self .record (rel , self .page_url (rel , url ), "section page" )
@@ -103,7 +106,9 @@ def walk(self, items: list, prefix: str) -> None:
103106 f"docs/index.yml: nav page { label !r} points to missing { rel } "
104107 )
105108 continue
106- if "slug" in item :
109+ if item .get ("skip-slug" ):
110+ default , how = prefix , "skip-slug"
111+ elif "slug" in item :
107112 default , how = prefix + "/" + item ["slug" ], "nav slug"
108113 else :
109114 default , how = (
@@ -126,6 +131,8 @@ def walk(self, items: list, prefix: str) -> None:
126131 + "/"
127132 + item .get ("slug" , fern_slug (item .get ("title" , folder )))
128133 )
134+ if item .get ("skip-slug" ):
135+ url = prefix
129136 for page in sorted ((self .docs_root / folder ).rglob ("*.mdx" )):
130137 rel = page .relative_to (self .docs_root ).as_posix ()
131138 stem = (
@@ -197,7 +204,9 @@ def run(repo_root: Path) -> list[str]:
197204
198205
199206def main () -> int :
200- parser = argparse .ArgumentParser (description = __doc__ .splitlines ()[0 ])
207+ parser = argparse .ArgumentParser (
208+ description = "Check that the published docs navigation mirrors the docs folder structure."
209+ )
201210 parser .add_argument (
202211 "--repo-root" , type = Path , default = Path (__file__ ).resolve ().parents [2 ]
203212 )
0 commit comments