Compare commits
2 Commits
83b2b9ac68
...
14c65bda05
Author | SHA1 | Date | |
---|---|---|---|
14c65bda05 | |||
16104d12ae |
37
TODO.md
37
TODO.md
@ -1,39 +1,40 @@
|
|||||||
# TODO
|
# TODO
|
||||||
|
|
||||||
## Code
|
- [ ] License
|
||||||
- [ ] day.js for dates
|
|
||||||
- [ ] Nix Shell
|
|
||||||
|
|
||||||
## SSE
|
## Code
|
||||||
- [x] Correct Sitemap.xml
|
- [ ] Nix Shell
|
||||||
- [x] Correct robots.txt
|
- [ ] Analytics
|
||||||
- [x] Correct security.txt
|
- [ ] Organize code better
|
||||||
|
|
||||||
|
## SEO
|
||||||
|
- [ ] Meta tags on each page
|
||||||
|
|
||||||
## 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
|
||||||
- [x] Latest projects
|
- [ ] Limit latest projects to N (5?)
|
||||||
- [x] Non-cat image
|
|
||||||
|
|
||||||
## ~/about
|
## ~/about
|
||||||
- [ ] About me
|
- [ ] About me
|
||||||
|
|
||||||
## ~/links
|
## ~/links
|
||||||
- [ ] Add Bluesky link
|
|
||||||
- [ ] Add MusicBrainz link
|
## ~/projects
|
||||||
- [ ] Add Archidekt link
|
- [ ] Translate projects
|
||||||
|
- [ ] Bachelor project
|
||||||
|
- [ ] Sparebank1 ActualBudget service
|
||||||
|
- [ ] More about this website
|
||||||
|
- [ ] RSS Feed
|
||||||
|
|
||||||
## ~/slashes
|
## ~/slashes
|
||||||
- [ ] List of all slashes
|
- [ ] List of all slashes
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"$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.",
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"$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.",
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
"@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
8
pnpm-lock.yaml
generated
@ -44,6 +44,9 @@ 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
|
||||||
@ -1444,6 +1447,9 @@ 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'}
|
||||||
@ -4782,6 +4788,8 @@ 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
|
||||||
|
@ -13,6 +13,15 @@ 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",
|
||||||
@ -55,6 +64,10 @@ 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",
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
---
|
---
|
||||||
|
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 * as m from "@/paraglide/messages"
|
import dayjs from "dayjs"
|
||||||
import "@/styles/global.css"
|
import "@/styles/global.css"
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
@ -26,9 +27,12 @@ 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>
|
||||||
@ -37,10 +41,10 @@ const {
|
|||||||
</div>
|
</div>
|
||||||
<div class="flex flex-col items-end">
|
<div class="flex flex-col items-end">
|
||||||
<p>
|
<p>
|
||||||
{m.createdAt()}: {new Date(createdAt).toLocaleDateString(languageTag())}
|
{m.createdAt()}: {localeDateString(createdAt)}
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
{m.updatedAt()}: {new Date(updatedAt).toLocaleDateString(languageTag())}
|
{m.updatedAt()}: {localeDateString(updatedAt)}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user