fix(site): replace Page not found nav item with GitHub repo link

Minima's header lists every titled page, so 404.html appeared in the menu.
Override the header to show a single link to the repository, and make the
404 page's home link respect baseurl.
This commit is contained in:
tiennm99 committed 2026-10-04 10:07:56 +07:00
1 parent bc9a3f5c7f
commit 972fec50eb
4 files changed
+35 -2

No files matched your search

+2 -2
View File
@@ -7,7 +7,7 @@ permalink: /404.html
<h1>Page not found</h1> <h1>Page not found</h1>
<p>That page does not exist. The provider list lives on the <p>That page does not exist. The provider list lives on the
<a href="/">home page</a>.</p> <a href="{{ "/" | relative_url }}">home page</a>.</p>
<p>If a link here is broken, <p>If a link here is broken,
<a href="https://github.com/tiennm99/penny-pincher-provider/issues/new">open an issue</a>.</p> <a href="https://github.com/{{ site.repository }}/issues/new">open an issue</a>.</p>
+3
View File
@@ -3,6 +3,9 @@ description: A curated list of affordable (or almost free) LLM providers
theme: minima theme: minima
show_downloads: false show_downloads: false
# Linked from the header nav (_includes/header.html) and 404.html.
repository: tiennm99/penny-pincher-provider
# GitHub Pages target. It only ever reads this file, so its values live here and # GitHub Pages target. It only ever reads this file, so its values live here and
# Cloudflare overrides them via _config.cloudflare.yml. # Cloudflare overrides them via _config.cloudflare.yml.
url: https://tiennm99.github.io url: https://tiennm99.github.io
+27
View File
@@ -0,0 +1,27 @@
{%- comment -%}
Overrides minima's header. Its default nav lists every titled page, which
surfaced 404.html as a "Page not found" menu item; this nav links the repo.
{%- endcomment -%}
<header class="site-header" role="banner">
<div class="wrapper">
<a class="site-title" rel="author" href="{{ "/" | relative_url }}">{{ site.title | escape }}</a>
{%- if site.repository -%}
<nav class="site-nav">
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger">
<span class="menu-icon">
<svg viewBox="0 0 18 15" width="18px" height="15px">
<path d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.032C17.335,0,18,0.665,18,1.484L18,1.484z M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.032C17.335,6.031,18,6.696,18,7.516L18,7.516z M18,13.516C18,14.335,17.335,15,16.516,15H1.484 C0.665,15,0,14.335,0,13.516l0,0c0-0.82,0.665-1.483,1.484-1.483h15.032C17.335,12.031,18,12.695,18,13.516L18,13.516z"/>
</svg>
</span>
</label>
<div class="trigger">
<a class="page-link" href="https://github.com/{{ site.repository }}">GitHub</a>
</div>
</nav>
{%- endif -%}
</div>
</header>
+3
View File
@@ -96,5 +96,8 @@ which a Git-connected project rejects. Push to `main` instead.
content, pulled into `index.md` by `include_relative`, which reads excluded files content, pulled into `index.md` by `include_relative`, which reads excluded files
fine — the exclusion only stops the raw markdown shipping as a duplicate page. fine — the exclusion only stops the raw markdown shipping as a duplicate page.
- `404.html` is served automatically by both hosts for unmatched routes. - `404.html` is served automatically by both hosts for unmatched routes.
- `_includes/header.html` overrides minima's header. The stock nav lists every page
with a `title`, which put `404.html` in the menu as "Page not found"; the override
shows a single GitHub link built from `repository` in `_config.yml`.
- Ruby is pinned to the `3.4` series in both workflows rather than an exact patch. - Ruby is pinned to the `3.4` series in both workflows rather than an exact patch.
Cloudflare's own build image is irrelevant here, since Actions does the building. Cloudflare's own build image is irrelevant here, since Actions does the building.