Skip to content

Commit 8981edd

Browse files
kevinlin1agoose77
andauthored
Add missing base URLs in top navigation (jupyter-book#644)
* Use `withBaseurl` in `TopNav.tsx` `NavItem` link targets * .changeset: Add changeset patching @myst-theme/site * docs: add test for relative Url --------- Co-authored-by: Angus Hollands <[email protected]>
1 parent b61c5ec commit 8981edd

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

.changeset/tidy-baboons-eat.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@myst-theme/site': patch
3+
---
4+
5+
Fix top navigation links not following the BASE_URL environment variable

docs/myst.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,9 @@ project:
1515
site:
1616
# NOTE: You must run `make deploy-book` to generate the local version of this theme.
1717
template: ../.deploy/book
18+
19+
nav:
20+
- title: Developer page
21+
url: /developer
1822
options:
1923
site_title: MyST Theme Documentation

packages/site/src/components/Navigation/TopNav.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,13 @@ import { ChevronDownIcon, Bars3Icon as MenuIcon } from '@heroicons/react/24/soli
55
import type { SiteManifest, SiteNavItem } from 'myst-config';
66
import { ThemeButton } from './ThemeButton.js';
77
import { Search } from './Search.js';
8-
import { useNavLinkProvider, useNavOpen, useSiteManifest } from '@myst-theme/providers';
8+
import {
9+
useBaseurl,
10+
useNavLinkProvider,
11+
useNavOpen,
12+
useSiteManifest,
13+
withBaseurl,
14+
} from '@myst-theme/providers';
915
import { LoadingBar } from './Loading.js';
1016
import { HomeLink } from './HomeLink.js';
1117
import { ActionMenu } from './ActionMenu.js';
@@ -15,12 +21,13 @@ export const DEFAULT_NAV_HEIGHT = 60;
1521

1622
export function NavItem({ item }: { item: SiteNavItem }) {
1723
const NavLink = useNavLinkProvider();
24+
const baseurl = useBaseurl();
1825
if (!('children' in item)) {
1926
return (
2027
<div className="relative inline-block mx-2 grow-0">
2128
<ExternalOrInternalLink
2229
nav
23-
to={item.url ?? ''}
30+
to={withBaseurl(item.url, baseurl) ?? ''}
2431
className={({ isActive }) =>
2532
classNames(
2633
'inline-flex items-center justify-center w-full mx-2 py-1 text-md font-medium dark:text-white focus:outline-none focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-opacity-75',

0 commit comments

Comments
 (0)