4 Commits

Author SHA1 Message Date
14c65bda05 Replaced JS Date API with dayjs
All checks were successful
Build and deploy website / build (push) Successful in 56s
2025-02-25 19:49:21 +01:00
16104d12ae Added more links, upddated TODO 2025-02-25 19:33:01 +01:00
83b2b9ac68 📦 Update dependencies
All checks were successful
Build and deploy website / build (push) Successful in 58s
2025-02-25 19:04:17 +01:00
8cc5c6971f Updated lockfile, replaced CMD with ENTRYPOINT
All checks were successful
Build and deploy website / build (push) Successful in 56s
2025-02-16 15:02:20 +01:00
8 changed files with 480 additions and 184 deletions

View File

@ -23,4 +23,4 @@ COPY --from=build /app/dist ./dist
ENV HOST=0.0.0.0
ENV PORT=4321
EXPOSE 4321
CMD node ./dist/server/entry.mjs
ENTRYPOINT node ./dist/server/entry.mjs

37
TODO.md
View File

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

View File

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

View File

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

View File

@ -16,27 +16,28 @@
"dependencies": {
"@astrojs/check": "^0.9.4",
"@astrojs/mdx": "^4.0.8",
"@astrojs/node": "9.1.0",
"@astrojs/node": "9.1.1",
"@astrojs/sitemap": "^3.2.1",
"@astrojs/svelte": "^7.0.4",
"@iconify-json/pajamas": "^1.2.5",
"@inlang/paraglide-astro": "^0.3.5",
"@inlang/paraglide-js": "1.11.8",
"@tailwindcss/typography": "^0.5.16",
"@tailwindcss/vite": "^4.0.6",
"astro": "5.3.0",
"@tailwindcss/vite": "^4.0.9",
"astro": "^5.3.1",
"astro-icon": "^1.1.5",
"dayjs": "^1.11.13",
"sharp": "^0.33.5",
"svelte": "^5.20.1",
"tailwindcss": "^4.0.6",
"svelte": "^5.20.4",
"tailwindcss": "^4.0.9",
"typescript": "^5.7.3"
},
"devDependencies": {
"daisyui": "^5.0.0-beta.8",
"prettier": "^3.5.1",
"prettier": "^3.5.2",
"prettier-plugin-astro": "^0.14.1",
"prettier-plugin-svelte": "^3.3.3",
"vite": "^6.1.0"
"vite": "^6.2.0"
},
"prettier": {
"semi": false,

583
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -1,11 +1,12 @@
---
import * as m from "@/paraglide/messages"
import Layout from "@/layouts/Layout.astro"
import BadgeList from "@/components/badge/BadgeList.astro"
import GiteaLink from "@/components/links/GiteaLink.astro"
import { languageTag } from "@/paraglide/runtime"
import { getEntry, render } from "astro:content"
import { Image } from "astro:assets"
import * as m from "@/paraglide/messages"
import dayjs from "dayjs"
import "@/styles/global.css"
interface Props {
@ -26,9 +27,12 @@ const {
createdAt,
updatedAt,
} = 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]">
<div class="flex justify-between my-2">
<div>
@ -37,10 +41,10 @@ const {
</div>
<div class="flex flex-col items-end">
<p>
{m.createdAt()}: {new Date(createdAt).toLocaleDateString(languageTag())}
{m.createdAt()}: {localeDateString(createdAt)}
</p>
<p>
{m.updatedAt()}: {new Date(updatedAt).toLocaleDateString(languageTag())}
{m.updatedAt()}: {localeDateString(updatedAt)}
</p>
</div>
</div>