summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-04-17 11:49:24 +0200
committerDanilo M. <danix@danix.xyz>2026-04-17 11:49:24 +0200
commit1cab4424a5c6dd2aeb453d299b6a2f12a840599d (patch)
tree6f4b1bf3b575f38bd4219da64f839a02a85438e9
parentc353452c544a3184ec66e05fa1743a592543a4d0 (diff)
downloaddanixxyz-1cab4424a5c6dd2aeb453d299b6a2f12a840599d.tar.gz
danixxyz-1cab4424a5c6dd2aeb453d299b6a2f12a840599d.zip
fix: use Hugo content-based 404 pages for proper multilingual support
Created language-specific 404 pages (content/en/404.md and content/it/404.md) instead of using JavaScript detection. Hugo now properly routes 404 errors to the correct language context, allowing .Lang and i18n to work correctly. Removed JS language detection hack. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
-rw-r--r--content/en/404.md5
-rw-r--r--content/it/404.md5
-rw-r--r--themes/danix-xyz-hacker/assets/js/not-found-page.js12
-rw-r--r--themes/danix-xyz-hacker/layouts/404.html17
4 files changed, 18 insertions, 21 deletions
diff --git a/content/en/404.md b/content/en/404.md
new file mode 100644
index 0000000..6e619f2
--- /dev/null
+++ b/content/en/404.md
@@ -0,0 +1,5 @@
+---
+title: "404 Not Found"
+outputs:
+ - html
+---
diff --git a/content/it/404.md b/content/it/404.md
new file mode 100644
index 0000000..6e619f2
--- /dev/null
+++ b/content/it/404.md
@@ -0,0 +1,5 @@
+---
+title: "404 Not Found"
+outputs:
+ - html
+---
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 78e3591..6ec8895 100644
--- a/themes/danix-xyz-hacker/assets/js/not-found-page.js
+++ b/themes/danix-xyz-hacker/assets/js/not-found-page.js
@@ -31,17 +31,5 @@ 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 0fb6c9a..a81f34d 100644
--- a/themes/danix-xyz-hacker/layouts/404.html
+++ b/themes/danix-xyz-hacker/layouts/404.html
@@ -1,10 +1,5 @@
{{ 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 = [
@@ -81,14 +76,18 @@ window.articlesData = [
</div>
<!-- Navigation Links -->
- <div class="space-y-4 flex flex-col items-center mb-12" x-data="notFoundNav()">
- <a :href="homeLink" class="btn btn-primary">
+ <div class="space-y-4 flex flex-col items-center mb-12">
+ {{ $homeLink := "/" }}
+ {{ if eq .Lang "it" }}
+ {{ $homeLink = "/it/" }}
+ {{ end }}
+ <a href="{{ $homeLink }}" class="btn btn-primary">
{{ i18n "goHome" }}
</a>
- <a :href="articlesLink" class="btn btn-secondary">
+ <a href="{{ if eq .Lang "it" }}/it{{ end }}/articles/" class="btn btn-secondary">
{{ i18n "browseArticles" }}
</a>
- <a :href="contactLink" class="btn btn-outline">
+ <a href="{{ if eq .Lang "it" }}/it{{ end }}/is/here/" class="btn btn-outline">
{{ i18n "contactSupport" }}
</a>
</div>