docs: migrate from MkDocs to Fern#175
Draft
yamini wants to merge 2 commits into
Draft
Conversation
Pure renames so git --follow tracks each page's history through the mkdocs->fern conversion (the conversion lands in the next commit).
- Convert 188 pages from mkdocs Material/pymdown to Fern MDX (admonitions, tabs, snippets inlined, macro variables substituted, MDX-safe escaping). - Scaffold docs/fern: docs.yml, fern.config.json (CLI 5.44.7), versions/latest.yml with explicit slugs, NVIDIA-green theme (global-theme: nvidia documented toggle, pending org theme access), redirects carried over from the mkdocs redirects plugin. - Native Fern API reference from the OpenAPI spec (docs/fern/apis/nemo-platform). - Preserve launch gating: sections hidden via the same rules as the mkdocs hide_unready_docs hook (hidden in nav, still routable so links resolve). - Hoist converted MDX to docs/ top-level; remove mkdocs.yml, hooks, overrides, theme assets, and excluded template/work/notebooks trees. fern check + fern docs broken-links both pass.
Contributor
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Migrates the NeMo Platform documentation from MkDocs (Material) to Fern MDX, the new required docs format. Converts all 188 published pages, scaffolds the Fern site under
docs/fern/, wires the REST API reference natively from the OpenAPI spec, and preserves the current launch gating.What changed
<Note>/<Warning>/...,=== "tab"→<Tabs>/<Tab>,--8<--snippets inlined,{{ macro }}variables substituted, and MDX-unsafe braces/HTML comments escaped.docs/<section>/<page>.mdx; Fern config/theme/components/nav live underdocs/fern/.docs/fern/apis/nemo-platform/and rendered as an interactive, per-endpoint API reference (replaces the old<swagger-ui>embed, which doesn't work in Fern).hide_unready_docshook hides (Platform, Fine-tune Models/Customizer, Synthesize Safe Data/Safe Synthesizer, Example Applications, plus gated paths likeauth/**,evaluator/benchmarks/**) are markedhidden: true— out of the sidebar but still routable, so cross-links resolve and there are no 404s. Same visible surface as the current site.slug:on every nav entry pins clean slugs (the Fern CLI otherwise splits CamelCase/acronyms, e.g.NemoGuard NIMs→nemo-guard-ni-ms).redirectsplugin.llms.txt: served automatically by Fern (/llms.txt,/llms-full.txt) — no extra files needed.mkdocs.yml,docs/_hooks,docs/_overrides, theme assets, and the excludedtemplate/,work/,notebooks/trees.Reviewing the diff
Commits are split so each page is reviewable:
rename—git mv docs/*.md → docs/*.mdx(no content change; pure renames).convert— the actual MDX conversion +docs/fern/scaffold.So
git show <convert> -- docs/<page>.mdxshows the conversion, andgit log --follow docs/<page>.mdxreaches the original.mdhistory.Preview locally (hot-reload, like
mkdocs serve)fern checkandfern docs broken-linksvalidate config and links (these are what CI should run).Verification
fern check→ 0 errorsfern docs broken-links→ all checks passed (0 broken)manage-files— tab widget renders), an images page (multimodal-data— image renders), and the generated API reference (per-endpoint pages) all render.check_unconvertedclean acrossdocs/— no leftover!!!admonitions,=== "tab"blocks,???details, or MyST roles). The only 2 flags are literal{{ auth_secret }}Jinja examples inside inline code incli/reference.mdx, which render correctly as intended.Follow-ups before merge
docs/fern/docs.ymlcurrently uses a minimal NVIDIA-green theme so the site builds/previews for anyone. To get the full NVIDIA chrome, the publishing Fern account/org must be granted access to theNVIDIA/fern-componentsglobal theme (otherwisefern docs dev/generatereturns HTTP 403). Then replace thecolorsblock withglobal-theme: nvidia(documented inline).docs.yaml(and the docs job inci.yaml) still build MkDocs and will fail. Replace with the Fern CI workflows (fern-docs-ci.ymletc.), which need aDOCS_FERN_TOKENsecret for preview/publish.docs/remain alongside thedocs/fern/copies Fern serves. Safe to remove (all image refs are absolute →docs/fern/); left in place pending a visual confirmation pass..ipynbtutorials (Customizer, Example Applications) are all in currently-gated sections and were not converted; wireNotebookViewerwhen those sections un-gate.🤖 Generated with Claude Code