docs(nav): strip invisible U+200E marks from version labels (preview experiment) - #457
docs(nav): strip invisible U+200E marks from version labels (preview experiment)#457ketanyekale wants to merge 1 commit into
Conversation
All 49 version labels in dropdown navigation carried invisible Left-to-Right Mark (U+200E) characters (392 total) as a historical workaround to keep same-named versions (v5, v4, ...) in different dropdowns from colliding. This strips them so every label is a clean v2-v7 string and relies on Mintlify scoping each version tree to its parent dropdown. Experiment for the version-selector 'Error 500' crash: verify on the Mintlify preview deploy (production renderer) whether the crash and cross-dropdown version merging behave with clean labels. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
Preview experiment results — do not merge; closingTested on the preview deploy (link), which runs the production renderer. 1. The Error 500 crash is NOT caused by the invisible characters ❌With all 392 U+200E marks stripped, the crash still reproduces: first real click on the version selector on It is a client-side crash in Mintlify's bundle when the dropdown opens (timing-dependent — clicks shortly after page load; scripted 2. The invisible marks are still load-bearing
|
| Action on preview | Expected | Actual |
|---|---|---|
UI Kits → iOS → select v4 |
/ui-kit/ios/v4/overview |
/ui-kit/vue/overview (Vue's v4) |
UI Kits → Android → select v5 |
/ui-kit/android/v5/overview |
/ui-kit/react-native/overview (RN's v5) |
Mintlify still does not scope version-switch resolution to the parent dropdown, so same-named clean labels collide exactly as the original workaround anticipated. Stripping the marks would break version switching for every framework.
Conclusion: closing unmerged per the plan in the PR description. The U+200E workaround must stay until Mintlify either fixes dropdown-scoped version resolution or the selector crash (ideally both — reporting both in the same support ticket).
What
Removes all 392 invisible U+200E (Left-to-Right Mark) characters from the 49
"version"labels indocs.jsonnavigation. Only.versionfields change — no paths, dropdown names, or content are touched (verified by audit: every U+200E in the file was on a"version"line).The marks were a historical workaround to keep same-named version labels (v5, v4, …) in different dropdowns from colliding, from before Mintlify officially supported versions nested inside dropdowns.
Why (experiment — do not merge before preview checks)
This is a controlled experiment for the version-selector "Error 500 / Error loading page" crash seen on production and staging. There are two competing diagnoses:
NotFoundError: Failed to execute 'insertBefore' on 'Node') in Mintlify's hosted bundle when the dropdown opens — reproduced on the React dropdown whose labels contain no marks, intermittently (clicks shortly after page load), with the URL unchanged.The local CLI does not run the production renderer, so only the Mintlify preview deploy of this branch can settle it.
Verification on the preview deploy
/ui-kit/react/overviewon the preview, and immediately real-click the version selector (v7chip in the sidebar). Repeat a few times with hard reloads. Does the Error 500 still occur?/ui-kit/react/v6/overview,/sdk/android/v5/overview, etc.If the crash persists with clean labels, diagnosis 2 is confirmed and this becomes evidence for the Mintlify support ticket (deployed chunk
f486afc314643ce1.js, deploymentdpl_FrDoQHZJuUUsA7qTxqB1HKX9E3Xx). If versions merge across dropdowns in the preview, close this PR unmerged.🤖 Generated with Claude Code