Compare commits

..

No commits in common. "14c65bda05c3244b5e5d27ef6ed9381d4d804496" and "83b2b9ac68c6b697a65b925ee95c7646bbf40d45" have entirely different histories.

7 changed files with 20 additions and 49 deletions

33
TODO.md
View File

@ -1,40 +1,39 @@
# TODO # TODO
- [ ] License
## Code ## Code
- [ ] day.js for dates
- [ ] Nix Shell - [ ] Nix Shell
- [ ] Analytics
- [ ] Organize code better
## SEO ## SSE
- [ ] Meta tags on each page - [x] Correct Sitemap.xml
- [x] Correct robots.txt
- [x] Correct security.txt
## Layout ## Layout
- [x] Show current page
- [x] Correct bg colour on entire page
- [x] Hamburger menu on mobile
- [ ] Dark mode toggle - [ ] Dark mode toggle
- [ ] Navigate using pathname / breadcrumbs - [ ] Navigate using pathname / breadcrumbs
## Accessibility ## Accessibility
- [x] Fix colours on buttons
- [x] Correct contrast
- [ ] All interactable elements have labels - [ ] All interactable elements have labels
- [x] Colour links, also in MDX posts
## I18N
- [ ] Markdown for text
## ~/ ## ~/
- [ ] About me description - [ ] About me description
- [ ] Limit latest projects to N (5?) - [x] Latest projects
- [x] Non-cat image
## ~/about ## ~/about
- [ ] About me - [ ] About me
## ~/links ## ~/links
- [ ] Add Bluesky link
## ~/projects - [ ] Add MusicBrainz link
- [ ] Translate projects - [ ] Add Archidekt link
- [ ] Bachelor project
- [ ] Sparebank1 ActualBudget service
- [ ] More about this website
- [ ] RSS Feed
## ~/slashes ## ~/slashes
- [ ] List of all slashes - [ ] List of all slashes

View File

@ -1,6 +1,5 @@
{ {
"$schema": "https://inlang.com/schema/inlang-message-format", "$schema": "https://inlang.com/schema/inlang-message-format",
"archidektMessage": "My MTG cards and decks",
"hiIm": "Hi, I'm", "hiIm": "Hi, I'm",
"position": "Software Engineer", "position": "Software Engineer",
"aboutMe": "Dedicated developer currently working at Capgemini Bergen.", "aboutMe": "Dedicated developer currently working at Capgemini Bergen.",

View File

@ -1,6 +1,5 @@
{ {
"$schema": "https://inlang.com/schema/inlang-message-format", "$schema": "https://inlang.com/schema/inlang-message-format",
"archidektMessage": "Mine MTG kort og decks",
"hiIm": "Hei, jeg er", "hiIm": "Hei, jeg er",
"position": "Programvareutvikler", "position": "Programvareutvikler",
"aboutMe": "Engasjert utvikler som for tiden jobber hos Capgemini Bergen.", "aboutMe": "Engasjert utvikler som for tiden jobber hos Capgemini Bergen.",

View File

@ -26,7 +26,6 @@
"@tailwindcss/vite": "^4.0.9", "@tailwindcss/vite": "^4.0.9",
"astro": "^5.3.1", "astro": "^5.3.1",
"astro-icon": "^1.1.5", "astro-icon": "^1.1.5",
"dayjs": "^1.11.13",
"sharp": "^0.33.5", "sharp": "^0.33.5",
"svelte": "^5.20.4", "svelte": "^5.20.4",
"tailwindcss": "^4.0.9", "tailwindcss": "^4.0.9",

8
pnpm-lock.yaml generated
View File

@ -44,9 +44,6 @@ importers:
astro-icon: astro-icon:
specifier: ^1.1.5 specifier: ^1.1.5
version: 1.1.5 version: 1.1.5
dayjs:
specifier: ^1.11.13
version: 1.11.13
sharp: sharp:
specifier: ^0.33.5 specifier: ^0.33.5
version: 0.33.5 version: 0.33.5
@ -1447,9 +1444,6 @@ packages:
daisyui@5.0.0-beta.8: daisyui@5.0.0-beta.8:
resolution: {integrity: sha512-jSokqm5i+Pv1jG80wliNzMHjmcF+iMx5xRUpk0/QExVoVNyQNWeCsaWJQubPvUq7bt9nzSsQTR2uIZBoyIIoaA==} resolution: {integrity: sha512-jSokqm5i+Pv1jG80wliNzMHjmcF+iMx5xRUpk0/QExVoVNyQNWeCsaWJQubPvUq7bt9nzSsQTR2uIZBoyIIoaA==}
dayjs@1.11.13:
resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==}
debug@4.3.7: debug@4.3.7:
resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==}
engines: {node: '>=6.0'} engines: {node: '>=6.0'}
@ -4788,8 +4782,6 @@ snapshots:
daisyui@5.0.0-beta.8: {} daisyui@5.0.0-beta.8: {}
dayjs@1.11.13: {}
debug@4.3.7: debug@4.3.7:
dependencies: dependencies:
ms: 2.1.3 ms: 2.1.3

View File

@ -13,15 +13,6 @@ export interface MyLink {
} }
export default [ export default [
{
title: "Archidekt",
url: "https://archidekt.com/u/Emberal",
message: m.archidektMessage(),
},
{
title: "Bluesky",
url: "https://bsky.app/profile/martials.no",
},
{ {
title: "Codeberg", title: "Codeberg",
url: "https://codeberg.org/martials", url: "https://codeberg.org/martials",
@ -64,10 +55,6 @@ export default [
alt: "Mastodon icon", alt: "Mastodon icon",
}, },
}, },
{
title: "ListenBrainz",
url: "https://listenbrainz.org/user/emberal/",
},
{ {
title: "Pixelfed", title: "Pixelfed",
url: "https://pixelfed.social/i/web/profile/261454857934868480", url: "https://pixelfed.social/i/web/profile/261454857934868480",

View File

@ -1,12 +1,11 @@
--- ---
import * as m from "@/paraglide/messages"
import Layout from "@/layouts/Layout.astro" import Layout from "@/layouts/Layout.astro"
import BadgeList from "@/components/badge/BadgeList.astro" import BadgeList from "@/components/badge/BadgeList.astro"
import GiteaLink from "@/components/links/GiteaLink.astro" import GiteaLink from "@/components/links/GiteaLink.astro"
import { languageTag } from "@/paraglide/runtime" import { languageTag } from "@/paraglide/runtime"
import { getEntry, render } from "astro:content" import { getEntry, render } from "astro:content"
import { Image } from "astro:assets" import { Image } from "astro:assets"
import dayjs from "dayjs" import * as m from "@/paraglide/messages"
import "@/styles/global.css" import "@/styles/global.css"
interface Props { interface Props {
@ -27,12 +26,9 @@ const {
createdAt, createdAt,
updatedAt, updatedAt,
} = entry!.data } = entry!.data
function localeDateString(isoString: string): string {
return dayjs(isoString).locale(languageTag()).format("YYYY-MM-DD")
}
--- ---
<!--TODO day.js / Temporal API for dates?-->
<Layout title={title} class="mx-auto max-w-[750px]"> <Layout title={title} class="mx-auto max-w-[750px]">
<div class="flex justify-between my-2"> <div class="flex justify-between my-2">
<div> <div>
@ -41,10 +37,10 @@ function localeDateString(isoString: string): string {
</div> </div>
<div class="flex flex-col items-end"> <div class="flex flex-col items-end">
<p> <p>
{m.createdAt()}: {localeDateString(createdAt)} {m.createdAt()}: {new Date(createdAt).toLocaleDateString(languageTag())}
</p> </p>
<p> <p>
{m.updatedAt()}: {localeDateString(updatedAt)} {m.updatedAt()}: {new Date(updatedAt).toLocaleDateString(languageTag())}
</p> </p>
</div> </div>
</div> </div>