diff --git a/public/spinner.svg b/public/spinner.svg new file mode 100644 index 0000000..a4e71f5 --- /dev/null +++ b/public/spinner.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/snipcast-screenshot.png b/src/assets/images/snipcast-screenshot.png index ab47264..8f81678 100644 Binary files a/src/assets/images/snipcast-screenshot.png and b/src/assets/images/snipcast-screenshot.png differ diff --git a/src/assets/photos/1.jpg b/src/assets/photos/1.jpg new file mode 100644 index 0000000..2a17222 Binary files /dev/null and b/src/assets/photos/1.jpg differ diff --git a/src/assets/photos/10.jpg b/src/assets/photos/10.jpg new file mode 100644 index 0000000..3b80bf0 Binary files /dev/null and b/src/assets/photos/10.jpg differ diff --git a/src/assets/photos/11.jpg b/src/assets/photos/11.jpg new file mode 100644 index 0000000..edcb939 Binary files /dev/null and b/src/assets/photos/11.jpg differ diff --git a/src/assets/photos/12.jpg b/src/assets/photos/12.jpg new file mode 100644 index 0000000..af93ca1 Binary files /dev/null and b/src/assets/photos/12.jpg differ diff --git a/src/assets/photos/13.jpg b/src/assets/photos/13.jpg new file mode 100644 index 0000000..b16cb54 Binary files /dev/null and b/src/assets/photos/13.jpg differ diff --git a/src/assets/photos/14.jpg b/src/assets/photos/14.jpg new file mode 100644 index 0000000..3e84701 Binary files /dev/null and b/src/assets/photos/14.jpg differ diff --git a/src/assets/photos/15.jpg b/src/assets/photos/15.jpg new file mode 100644 index 0000000..2dc19d2 Binary files /dev/null and b/src/assets/photos/15.jpg differ diff --git a/src/assets/photos/16.jpg b/src/assets/photos/16.jpg new file mode 100644 index 0000000..9b2f411 Binary files /dev/null and b/src/assets/photos/16.jpg differ diff --git a/src/assets/photos/17.jpg b/src/assets/photos/17.jpg new file mode 100644 index 0000000..d4c74bb Binary files /dev/null and b/src/assets/photos/17.jpg differ diff --git a/src/assets/photos/18.jpg b/src/assets/photos/18.jpg new file mode 100644 index 0000000..78144b1 Binary files /dev/null and b/src/assets/photos/18.jpg differ diff --git a/src/assets/photos/19.jpg b/src/assets/photos/19.jpg new file mode 100644 index 0000000..57fd6f5 Binary files /dev/null and b/src/assets/photos/19.jpg differ diff --git a/src/assets/photos/2.jpg b/src/assets/photos/2.jpg new file mode 100644 index 0000000..58f4c31 Binary files /dev/null and b/src/assets/photos/2.jpg differ diff --git a/src/assets/photos/20.jpg b/src/assets/photos/20.jpg new file mode 100644 index 0000000..293775b Binary files /dev/null and b/src/assets/photos/20.jpg differ diff --git a/src/assets/photos/3.jpg b/src/assets/photos/3.jpg new file mode 100644 index 0000000..3562eae Binary files /dev/null and b/src/assets/photos/3.jpg differ diff --git a/src/assets/photos/4.jpg b/src/assets/photos/4.jpg new file mode 100644 index 0000000..4c09cb7 Binary files /dev/null and b/src/assets/photos/4.jpg differ diff --git a/src/assets/photos/5.jpg b/src/assets/photos/5.jpg new file mode 100644 index 0000000..d543360 Binary files /dev/null and b/src/assets/photos/5.jpg differ diff --git a/src/assets/photos/6.jpg b/src/assets/photos/6.jpg new file mode 100644 index 0000000..d0a491e Binary files /dev/null and b/src/assets/photos/6.jpg differ diff --git a/src/assets/photos/7.jpg b/src/assets/photos/7.jpg new file mode 100644 index 0000000..5ddf39f Binary files /dev/null and b/src/assets/photos/7.jpg differ diff --git a/src/assets/photos/8.jpg b/src/assets/photos/8.jpg new file mode 100644 index 0000000..218ee87 Binary files /dev/null and b/src/assets/photos/8.jpg differ diff --git a/src/assets/photos/9.jpg b/src/assets/photos/9.jpg new file mode 100644 index 0000000..78ce9f1 Binary files /dev/null and b/src/assets/photos/9.jpg differ diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro new file mode 100644 index 0000000..9fb3cca --- /dev/null +++ b/src/layouts/BaseLayout.astro @@ -0,0 +1,21 @@ +--- +import Navbar from "@components/Navbar.svelte"; +import RootLayout from "./RootLayout.astro"; + +interface Props { + title?: string; +} + +const { title } = Astro.props; +--- + + + +
+ +
+ + +
diff --git a/src/layouts/ProjectLayout.astro b/src/layouts/ProjectLayout.astro index 27d5cb9..9112e27 100644 --- a/src/layouts/ProjectLayout.astro +++ b/src/layouts/ProjectLayout.astro @@ -1,6 +1,6 @@ --- import ContainerLayout from "./ContainerLayout.astro"; -import RootLayout from "./RootLayout.astro"; +import BaseLayout from "./BaseLayout.astro"; import TextContentLayout from "./TextContentLayout.astro"; import type { MarkdownLayoutProps } from "astro"; @@ -18,7 +18,7 @@ const { title, website, repository, technologies, date } = Astro.props.frontmatter; --- - +

- + diff --git a/src/layouts/RootLayout.astro b/src/layouts/RootLayout.astro index 2931ae1..3cb434c 100644 --- a/src/layouts/RootLayout.astro +++ b/src/layouts/RootLayout.astro @@ -1,14 +1,13 @@ --- import { ViewTransitions } from "astro:transitions"; -import Navbar from "@components/Navbar.svelte"; interface Props { - title: string; + title?: string; } const { title } = Astro.props; -const fullTitle = `${title} – Mikkel Svartveit`; +const fullTitle = `${title && title + " – "}Mikkel Svartveit`; --- @@ -25,14 +24,7 @@ const fullTitle = `${title} – Mikkel Svartveit`; - - -
- -
- - + + diff --git a/src/pages/404.astro b/src/pages/404.astro index 46a4a31..6d11db3 100644 --- a/src/pages/404.astro +++ b/src/pages/404.astro @@ -1,9 +1,9 @@ --- import Paragraph from "../components/Paragraph.astro"; -import RootLayout from "../layouts/RootLayout.astro"; +import BaseLayout from "../layouts/BaseLayout.astro"; --- - +

That's an error.

-
+ diff --git a/src/pages/index.astro b/src/pages/index.astro index d056804..d6ba41e 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,6 +1,6 @@ --- import { Image } from "astro:assets"; -import RootLayout from "../layouts/RootLayout.astro"; +import BaseLayout from "../layouts/BaseLayout.astro"; import Link from "@components/Link.astro"; import Paragraph from "@components/Paragraph.astro"; import SocialIcons from "@components/SocialIcons.astro"; @@ -8,7 +8,7 @@ import SocialIcons from "@components/SocialIcons.astro"; import portraitImage from "@assets/images/portrait.jpg"; --- - +
@@ -62,4 +62,4 @@ import portraitImage from "@assets/images/portrait.jpg"; Tailwind CSS.

- + diff --git a/src/pages/photography/[photo].astro b/src/pages/photography/[photo].astro new file mode 100644 index 0000000..e7ad220 --- /dev/null +++ b/src/pages/photography/[photo].astro @@ -0,0 +1,37 @@ +--- +import type { GetStaticPaths } from "astro"; +import { getFileNameFromPath } from "./index.astro"; +import { Image } from "astro:assets"; +import RootLayout from "@layouts/RootLayout.astro"; + +export const getStaticPaths = (async () => { + const photos = await Astro.glob("../../assets/photos/*"); + + return photos.map((photo: any) => ({ + params: { + photo: getFileNameFromPath(photo.default.src), + }, + props: { + photo, + }, + })); +}) satisfies GetStaticPaths; + +const { photo } = Astro.props; +--- + + +
+ +
+
diff --git a/src/pages/photography/index.astro b/src/pages/photography/index.astro new file mode 100644 index 0000000..80f3e29 --- /dev/null +++ b/src/pages/photography/index.astro @@ -0,0 +1,60 @@ +--- +import Paragraph from "@components/Paragraph.astro"; +import ContainerLayout from "@layouts/ContainerLayout.astro"; +import BaseLayout from "@layouts/BaseLayout.astro"; +import TextContentLayout from "@layouts/TextContentLayout.astro"; +import { Image } from "astro:assets"; + +const photos = await Astro.glob("../../assets/photos/*"); + +const sortFiles = (a: any, b: any) => { + const aNum = Number(a.default.src.match(/\d+/)); + const bNum = Number(b.default.src.match(/\d+/)); + + return bNum - aNum; +}; + +export const getFileNameFromPath = (path: string) => { + const parts = path.split("/"); + return parts[parts.length - 1].split("?")[0]; +}; +--- + + + + +

+ Photography +

+ + + I enjoy taking photos and I always bring my camera with me when I + travel. I used to shoot with a Nikon DSLR, but recently switched to a + Fujifilm X-T20, which I find a lot more enjoyable to bring around. These + are some of my favorite shots from over the years. + +
+
+ +
+ { + photos.sort(sortFiles).map((photo) => ( + + + + )) + } +
+
diff --git a/src/pages/programming/[project].astro b/src/pages/programming/[project].astro index 53aa1a0..f10f6a6 100644 --- a/src/pages/programming/[project].astro +++ b/src/pages/programming/[project].astro @@ -1,6 +1,6 @@ --- import ContainerLayout from "@layouts/ContainerLayout.astro"; -import RootLayout from "@layouts/RootLayout.astro"; +import BaseLayout from "@layouts/BaseLayout.astro"; import TextContentLayout from "@layouts/TextContentLayout.astro"; import type { GetStaticPaths } from "astro"; import { getCollection } from "astro:content"; @@ -20,7 +20,7 @@ const { Content } = await project.render(); const { title, date, technologies, website, repository } = project.data; --- - +

- + diff --git a/src/pages/programming/index.astro b/src/pages/programming/index.astro index bd203be..13c7859 100644 --- a/src/pages/programming/index.astro +++ b/src/pages/programming/index.astro @@ -2,14 +2,14 @@ import { Image } from "astro:assets"; import Paragraph from "@components/Paragraph.astro"; import ContainerLayout from "@layouts/ContainerLayout.astro"; -import RootLayout from "@layouts/RootLayout.astro"; +import BaseLayout from "@layouts/BaseLayout.astro"; import TextContentLayout from "@layouts/TextContentLayout.astro"; import { getCollection } from "astro:content"; const projects = await getCollection("programming"); --- - +

- +