y2k-web uses React Router v6’s hash history strategy (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/y2k-web/llms.txt
Use this file to discover all available pages before exploring further.
HashRouter / _p in the compiled bundle, backed by Lf — the hash history factory). With hash routing, every URL takes the form https://example.com/#/about rather than https://example.com/about. This means the browser never makes an HTTP request for the path segment — the server always serves the same root index.html and the client-side router reads everything after #. This makes the app compatible with any static file host, including GitHub Pages, without requiring any server-side URL rewrites or redirect rules.
Route table
| Hash URL | Component | Page title |
|---|---|---|
/#/ | Mp (Home) | Home page |
/#/about | Dp (About) | About Me |
/#/projects | Fp (Projects) | Projects showcase |
/#/work | Up (Work / Resume) | Resume / Work history |
/#/case-studies | Bp (Case Studies) | Case Studies |
/#/blog | Vp (Blog) | Web Log (blog) |
/#/testimonials | $p (Testimonials) | Testimonials / Guestbook |
/#/contact | Ap (Contact) | Contact form with IM chat |
App component routing structure
The rootYp component wraps everything in the hash router (_p, aliased from HashRouter). Inside, the nav bar (Qp) and footer (Kp) are rendered outside the <Routes> tree so they are present on every page. The <Routes> block (compiled as Sp) contains one <Route> (Ae) per page:
useLocation() (sr() in the bundle) to highlight the active tab using the Windows 98-style shadow-win-in pressed-button class.
Static page bootstrapping
Each file underpages/ is a thin HTML wrapper that sets the correct hash before the React bundle loads. This handles the case where a user bookmarks or shares a direct link to pages/About.html — without the inline script, the hash would default to #/ and the SPA would render the home page instead of About.
The pattern from pages/About.html:
- Store the intended route on
window.__STATIC_PAGE_ROUTE__for any app code that needs it. - Guard against overwriting an existing deep-link hash — if the user already has a hash (e.g., an anchor link within the page), it is preserved.
- Set the hash to
/about, whichHashRouterthen parses as the pathname/aboutand renders the About component.
All page HTML files in
pages/ share the same assets/main.js bundle and assets/main.css stylesheet. There is only one copy of the React application; the HTML wrappers differ only in their <title> and the bootstrapping script values. This means a single Vite build produces everything needed for every route.