VitePress externalizes node_modules during SSR, causing Node.js to
try loading .vue source files directly and throw
ERR_UNKNOWN_FILE_EXTENSION. Setting ssr.noExternal ensures Vite
processes vp-dynamic-nav through its transform pipeline instead.
vp-dynamic-nav 0.0.3 exports a vpDynamicNavPlugin() helper from the
./plugin subpath for consumers who prefer the programmatic approach.
Signed-off-by: Hamish Willee <hamishwillee@gmail.com>
* fix(docs): bypass VitePress router interception in DynamicNav links
VitePress installs a global click interceptor that catches same-origin
<a> clicks and routes them through Vue Router. Cross-version links
(e.g. /v1.17/en/ from /main/en/) share the origin but are separate
deployments, so Vue Router fails to resolve them and navigation is
silently swallowed. Fix by calling window.location.href directly with
@click.prevent on all nav links.
Signed-off-by: Hamish Willee <hamishwillee@gmail.com>
* refactor(docs): use VitePress internal nav components in DynamicNav
Replace the hand-rolled dropdown/link rendering with VitePress's own
VPNavBarMenuLink, VPNavBarMenuGroup, VPNavScreenMenuLink, and
VPNavScreenMenuGroup. This removes ~140 lines of custom CSS and all
manual click/flyout handling; VitePress styles and VPFlyout behaviour
are inherited for free.
The navigation bug (same-origin links swallowed by Vue Router) is also
fixed by this approach: VPLink classifies any https:// href as external
and renders a plain <a> tag, bypassing the router interceptor entirely.
Remote URL and localStorage key are now read from themeConfig
(dynamicNavUrl, dynamicNavCacheKey) so the component can be dropped
into any VitePress repo with just a config change.
Signed-off-by: Hamish Willee <hamishwillee@gmail.com>
* refactor(docs): derive DynamicNav cache key from URL by default
Use the remote URL as the localStorage key when dynamicNavCacheKey is
not set. This avoids the need to declare a key in config, keeps the
key unique per data source automatically, and means all deployed
versions of a site (same origin, different base paths) naturally share
one cache entry — which is the desired behaviour.
Signed-off-by: Hamish Willee <hamishwillee@gmail.com>
* chore(docs): remove redundant nav:[] from themeConfig
VitePress renders no menu items when nav is omitted, so the explicit
empty array adds no value now that all items come from DynamicNav.
Signed-off-by: Hamish Willee <hamishwillee@gmail.com>
* fix(docs): restore display:flex on DynamicNav bar wrapper
Removing the scoped styles during the VitePress-internal-components
refactor also removed the flex layout on the wrapper div, causing nav
items to stack vertically instead of in a row.
Signed-off-by: Hamish Willee <hamishwillee@gmail.com>
* refactor(docs): replace local DynamicNav with vp-dynamic-nav npm package
Removes the in-tree DynamicNav.vue and wires up the published
vp-dynamic-nav package instead. navbar.json is imported in config.mjs
and passed as dynamicNavInitial so it remains the single source of
truth for both the initial render and the remote fetch target.
Signed-off-by: Hamish Willee <hamishwillee@gmail.com>
---------
Signed-off-by: Hamish Willee <hamishwillee@gmail.com>
Regenerate yarn.lock to include prettier dependency that was added to
package.json but missing from the lockfile, causing CI to fail with
--frozen-lockfile. Also add package-lock.json to .gitignore since the
project uses yarn.
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
* Add vitepress tree
* Update existing workflows so they dont trigger on changes in the docs path
* Add nojekyll, package.json, LICENCE etc
* Add crowdin docs upload/download scripts
* Add docs flaw checker workflows
* Used docs prefix for docs workflows
* Crowdin obvious fixes
* ci: docs move to self hosted runner
runs on a beefy server for faster builds
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
* ci: don't run build action for docs or ci changes
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
* ci: update runners
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
* Add docs/en
* Add docs assets and scripts
* Fix up editlinks to point to PX4 sources
* Download just the translations that are supported
* Add translation sources for zh, uk, ko
* Update latest tranlsation and uorb graphs
* update vitepress to latest
---------
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
Co-authored-by: Ramon Roche <mrpollo@gmail.com>