diff options
| author | Danilo M. <danix@danix.xyz> | 2026-04-17 11:47:04 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-04-17 11:47:04 +0200 |
| commit | c353452c544a3184ec66e05fa1743a592543a4d0 (patch) | |
| tree | 833fd7865f89a452a2c48e425712862827a7eb7f /themes | |
| parent | 4ea2790206ca925bcf810c3b10d8c18e44015c61 (diff) | |
| download | danixxyz-c353452c544a3184ec66e05fa1743a592543a4d0.tar.gz danixxyz-c353452c544a3184ec66e05fa1743a592543a4d0.zip | |
fix: use client-side language detection for 404 navigation links
Added window.currentLang detection based on request URL path to correctly
route 404 page navigation links for Italian and English versions. Created
notFoundNav() Alpine component to dynamically compute language-aware links
based on detected language.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Diffstat (limited to 'themes')
| -rw-r--r-- | themes/danix-xyz-hacker/assets/css/main.min.css | 4 | ||||
| -rw-r--r-- | themes/danix-xyz-hacker/assets/js/not-found-page.js | 12 | ||||
| -rw-r--r-- | themes/danix-xyz-hacker/layouts/404.html | 21 |
3 files changed, 21 insertions, 16 deletions
diff --git a/themes/danix-xyz-hacker/assets/css/main.min.css b/themes/danix-xyz-hacker/assets/css/main.min.css index 677ea1e..e92eb90 100644 --- a/themes/danix-xyz-hacker/assets/css/main.min.css +++ b/themes/danix-xyz-hacker/assets/css/main.min.css @@ -2278,10 +2278,6 @@ article.border.border-border\/30.rounded-lg.card.group.bg-bg { box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } -.filter { - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); -} - .backdrop-blur { --tw-backdrop-blur: blur(8px); -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); diff --git a/themes/danix-xyz-hacker/assets/js/not-found-page.js b/themes/danix-xyz-hacker/assets/js/not-found-page.js index 6ec8895..78e3591 100644 --- a/themes/danix-xyz-hacker/assets/js/not-found-page.js +++ b/themes/danix-xyz-hacker/assets/js/not-found-page.js @@ -31,5 +31,17 @@ document.addEventListener('alpine:init', () => { } })); + Alpine.data('notFoundNav', () => ({ + get homeLink() { + return window.currentLang === 'it' ? '/it/' : '/'; + }, + get articlesLink() { + return window.currentLang === 'it' ? '/it/articles/' : '/articles/'; + }, + get contactLink() { + return window.currentLang === 'it' ? '/it/is/here/' : '/is/here/'; + } + })); + console.log('notFoundPage Alpine component registered'); }); diff --git a/themes/danix-xyz-hacker/layouts/404.html b/themes/danix-xyz-hacker/layouts/404.html index efae232..0fb6c9a 100644 --- a/themes/danix-xyz-hacker/layouts/404.html +++ b/themes/danix-xyz-hacker/layouts/404.html @@ -1,5 +1,10 @@ {{ define "main" }} +<!-- Detect language from current URL --> +<script> +window.currentLang = window.location.pathname.startsWith('/it/') ? 'it' : 'en'; +</script> + <!-- Pass articles data to JavaScript for Alpine.js --> <script> window.articlesData = [ @@ -76,22 +81,14 @@ window.articlesData = [ </div> <!-- Navigation Links --> - <div class="space-y-4 flex flex-col items-center mb-12"> - {{ $lang := "en" }} - {{ if in .Permalink "/it/" }} - {{ $lang = "it" }} - {{ end }} - {{ $prefix := "" }} - {{ if eq $lang "it" }} - {{ $prefix = "/it" }} - {{ end }} - <a href="{{ $prefix }}/" class="btn btn-primary"> + <div class="space-y-4 flex flex-col items-center mb-12" x-data="notFoundNav()"> + <a :href="homeLink" class="btn btn-primary"> {{ i18n "goHome" }} </a> - <a href="{{ $prefix }}/articles/" class="btn btn-secondary"> + <a :href="articlesLink" class="btn btn-secondary"> {{ i18n "browseArticles" }} </a> - <a href="{{ $prefix }}/is/here/" class="btn btn-outline"> + <a :href="contactLink" class="btn btn-outline"> {{ i18n "contactSupport" }} </a> </div> |
