feat: handle 404s
Some checks failed
ci / ci (22, debian-trixie) (push) Failing after 15s

This commit is contained in:
kittentm 2026-05-12 23:52:23 +02:00
commit 915a33253e
Signed by: kitten
GPG key ID: 394B4EABE4405A83
4 changed files with 20 additions and 0 deletions

15
app/pages/[...slug].vue Normal file
View file

@ -0,0 +1,15 @@
<template>
<UContainer class="flex flex-col items-center justify-center py-20 text-center">
<h1 class="text-9xl font-bold text-primary">404</h1>
<h2 class="text-3xl font-semibold mt-4">Oooooops!</h2>
<p class="text-muted-foreground my-6 max-w-md">
"/{{ Array.isArray($route.params.slug) ? $route.params.slug.join('/') : $route.params.slug || '' }}" doesn't exist.
</p>
<UButton
to="/"
size="lg"
label="Return to Home"
icon="i-octicon-home-fill-16"
/>
</UContainer>
</template>

View file

@ -12,6 +12,7 @@
"tailwindcss": "^4.3.0", "tailwindcss": "^4.3.0",
}, },
"devDependencies": { "devDependencies": {
"@iconify-json/octicon": "^1.2.23",
"@nuxt/eslint": "^1.15.2", "@nuxt/eslint": "^1.15.2",
"eslint": "^10.3.0", "eslint": "^10.3.0",
"typescript": "^6.0.3", "typescript": "^6.0.3",
@ -196,6 +197,8 @@
"@iconify-json/lucide": ["@iconify-json/lucide@1.2.106", "", { "dependencies": { "@iconify/types": "2.0.0" } }, "sha512-5nuejHR29A0iQjvLZRRPtuMyj1DA9pzcDMuHD4vmhG7GgLen8haMKiZcZ1IpKVZDwR8wxfcbCv9MsoWHBBAa+g=="], "@iconify-json/lucide": ["@iconify-json/lucide@1.2.106", "", { "dependencies": { "@iconify/types": "2.0.0" } }, "sha512-5nuejHR29A0iQjvLZRRPtuMyj1DA9pzcDMuHD4vmhG7GgLen8haMKiZcZ1IpKVZDwR8wxfcbCv9MsoWHBBAa+g=="],
"@iconify-json/octicon": ["@iconify-json/octicon@1.2.23", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-Orzy6EGFBuqiME4WAyyv7Wr/RCOtf2EDUiCHBr0glTMyPQWwtZqribj9UEbDPE/ZMlwx79YrQ7sOoDQv1pVqRQ=="],
"@iconify-json/simple-icons": ["@iconify-json/simple-icons@1.2.81", "", { "dependencies": { "@iconify/types": "2.0.0" } }, "sha512-Utjw4sPtoVdbpAQAkC4O0cYpt4ehQZYr6aFHhmvdeW8mQwkINyAe0ogTPqNptSSKogZ2lfgXM8zpuhO961Wnng=="], "@iconify-json/simple-icons": ["@iconify-json/simple-icons@1.2.81", "", { "dependencies": { "@iconify/types": "2.0.0" } }, "sha512-Utjw4sPtoVdbpAQAkC4O0cYpt4ehQZYr6aFHhmvdeW8mQwkINyAe0ogTPqNptSSKogZ2lfgXM8zpuhO961Wnng=="],
"@iconify/collections": ["@iconify/collections@1.0.677", "", { "dependencies": { "@iconify/types": "2.0.0" } }, "sha512-Uwbl1p26Md6m2xTMjalJsmQ43YxW+j6RsyrL5RnxRCHEhwympJlaBBCGTKrqI3sA93g9UVJ/Pxi7zDqM3E1oPw=="], "@iconify/collections": ["@iconify/collections@1.0.677", "", { "dependencies": { "@iconify/types": "2.0.0" } }, "sha512-Uwbl1p26Md6m2xTMjalJsmQ43YxW+j6RsyrL5RnxRCHEhwympJlaBBCGTKrqI3sA93g9UVJ/Pxi7zDqM3E1oPw=="],

View file

@ -1,5 +1,6 @@
// https://nuxt.com/docs/api/configuration/nuxt-config // https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({ export default defineNuxtConfig({
srcDir: 'app/',
modules: [ modules: [
'@nuxt/eslint', '@nuxt/eslint',
'@nuxt/ui' '@nuxt/ui'

View file

@ -18,6 +18,7 @@
"tailwindcss": "^4.3.0" "tailwindcss": "^4.3.0"
}, },
"devDependencies": { "devDependencies": {
"@iconify-json/octicon": "^1.2.23",
"@nuxt/eslint": "^1.15.2", "@nuxt/eslint": "^1.15.2",
"eslint": "^10.3.0", "eslint": "^10.3.0",
"typescript": "^6.0.3", "typescript": "^6.0.3",