The A Master Artificer theme uses a custom navigation component calledDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/a-master-artificer/llms.txt
Use this file to discover all available pages before exploring further.
AstrolabeNav. It renders as an animated circular ring menu â a compass-style button fixed to the lower-right corner of every page that expands outward into a ring of route links when clicked. The route configuration that drives that ring lives in a single array called rs inside components/grimoire/AstrolabeNav.js. Every label, icon, and path shown in the navigation is defined there.
The default routes array
Thers array defines all nine default routes. Each entry has three fields: a path matching the React Router route, a label shown on hover, and an icon rendered as the visible button symbol in the ring.
Renaming a navigation label
To rename a navigation label, edit thelabel field for the relevant entry in the rs array. The label appears in a tooltip above the icon button when a visitor hovers over that position in the ring.
label field has no character limit, but shorter labels fit more cleanly above the small ring buttons. One or two words tends to work best in the ring layout.
Changing a route icon
To change a route icon, edit theicon field for the relevant entry. The icon accepts any Unicode character, emoji, or symbol. The component renders it at text-xl size inside the round button.
Adding a new page
Adding a page to the navigation requires three steps.Create the new HTML file at the repository root alongside the other page files. For example, to add a services page:
Model the HTML structure on an existing page like
about.html. Keep the filename casing consistent with the other lowercase HTML files at the root.const rs = [
{ path: "/", label: "Cover", icon: "â" },
{ path: "/about", label: "The Practitioner", icon: "ð" },
{ path: "/projects", label: "Conjurings", icon: "â§" },
{ path: "/skills", label: "Athenaeum", icon: "â" },
{ path: "/work", label: "Past Covens", icon: "ð" },
// New entry added below
{ path: "/services", label: "Services", icon: "â" },
{ path: "/case-studies", label: "Field Notes", icon: "âū" },
{ path: "/blog", label: "Loose Pages", icon: "ðŠķ" },
{ path: "/testimonials", label: "Whispers", icon: "â" },
{ path: "/contact", label: "Send Familiar", icon: "â" }
];
The
path value must match exactly â including case â the React Router path you configure in the next step.Open
assets/main.js and add the new <Route> entry inside the router configuration. The existing routes look like this in the static build:e.jsx(o, { path: '/', element: e.jsx(R, {}) }),
e.jsx(o, { path: '/about', element: e.jsx(O, {}) }),
e.jsx(o, { path: '/projects', element: e.jsx(I, {}) }),
e.jsx(o, { path: '/skills', element: e.jsx(T, {}) }),
e.jsx(o, { path: '/work', element: e.jsx(D, {}) }),
e.jsx(o, { path: '/case-studies', element: e.jsx(N, {}) }),
e.jsx(o, { path: '/blog', element: e.jsx(S, {}) }),
e.jsx(o, { path: '/blog/:slug', element: e.jsx(z, {}) }),
e.jsx(o, { path: '/contact', element: e.jsx(V, {}) }),
e.jsx(o, { path: '/testimonials', element: e.jsx(C, {}) }),
Removing a page
To remove a page from the navigation, reverse the process above:- Delete the entry from the
rsarray inAstrolabeNav.js - Delete the corresponding
<Route>line fromassets/main.js
React Router paths are case-sensitive. The path
/case-studies is not the same as /Case-Studies. Make sure the path value in the rs array, the route entry in assets/main.js, and the HTML filename at the repository root all use exactly the same casing. GitHub Pages is also case-sensitive, so this applies to the live site as well as local testing.