mirror of
https://github.com/michaelrausch/michaelrausch-24.git
synced 2024-12-26 20:39:56 +00:00
updates
This commit is contained in:
parent
1c461ddc3c
commit
c8508c10d6
11
package-lock.json
generated
11
package-lock.json
generated
@ -19,6 +19,7 @@
|
|||||||
"@typescript-eslint/eslint-plugin": "^7.3.1",
|
"@typescript-eslint/eslint-plugin": "^7.3.1",
|
||||||
"@typescript-eslint/parser": "^7.3.1",
|
"@typescript-eslint/parser": "^7.3.1",
|
||||||
"astro": "^4.5.6",
|
"astro": "^4.5.6",
|
||||||
|
"canvas-confetti": "^1.9.3",
|
||||||
"clsx": "^2.1.0",
|
"clsx": "^2.1.0",
|
||||||
"eslint": "^8.57.0",
|
"eslint": "^8.57.0",
|
||||||
"eslint-plugin-astro": "^0.32.0",
|
"eslint-plugin-astro": "^0.32.0",
|
||||||
@ -3134,6 +3135,16 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"node_modules/canvas-confetti": {
|
||||||
|
"version": "1.9.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/canvas-confetti/-/canvas-confetti-1.9.3.tgz",
|
||||||
|
"integrity": "sha512-rFfTURMvmVEX1gyXFgn5QMn81bYk70qa0HLzcIOSVEyl57n6o9ItHeBtUSWdvKAPY0xlvBHno4/v3QPrT83q9g==",
|
||||||
|
"license": "ISC",
|
||||||
|
"funding": {
|
||||||
|
"type": "donate",
|
||||||
|
"url": "https://www.paypal.me/kirilvatev"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/ccount": {
|
"node_modules/ccount": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
"@typescript-eslint/eslint-plugin": "^7.3.1",
|
"@typescript-eslint/eslint-plugin": "^7.3.1",
|
||||||
"@typescript-eslint/parser": "^7.3.1",
|
"@typescript-eslint/parser": "^7.3.1",
|
||||||
"astro": "^4.5.6",
|
"astro": "^4.5.6",
|
||||||
|
"canvas-confetti": "^1.9.3",
|
||||||
"clsx": "^2.1.0",
|
"clsx": "^2.1.0",
|
||||||
"eslint": "^8.57.0",
|
"eslint": "^8.57.0",
|
||||||
"eslint-plugin-astro": "^0.32.0",
|
"eslint-plugin-astro": "^0.32.0",
|
||||||
|
20
src/components/EmojiScroller.astro
Normal file
20
src/components/EmojiScroller.astro
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<script>
|
||||||
|
const update_interval = 10 * 1000;
|
||||||
|
const emojis = ["👋", "🚀", "🛸"];
|
||||||
|
let idx = -1;
|
||||||
|
|
||||||
|
function update_emoji() {
|
||||||
|
const emoji_element = document.getElementById("emoji");
|
||||||
|
idx += 1;
|
||||||
|
|
||||||
|
if (idx == emojis.length) idx = 0;
|
||||||
|
if (emoji_element) emoji_element.innerHTML = emojis[idx];
|
||||||
|
}
|
||||||
|
|
||||||
|
setInterval(update_emoji, update_interval);
|
||||||
|
update_emoji();
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<span class="text-4xl" id="emoji">👋</span>
|
@ -4,7 +4,7 @@ import { SITE } from "@consts";
|
|||||||
import BackToTop from "@components/BackToTop.astro";
|
import BackToTop from "@components/BackToTop.astro";
|
||||||
---
|
---
|
||||||
|
|
||||||
<footer class="animate">
|
<footer class="animate border-b-4">
|
||||||
<Container>
|
<Container>
|
||||||
<div class="relative">
|
<div class="relative">
|
||||||
<div class="absolute right-0 -top-20">
|
<div class="absolute right-0 -top-20">
|
||||||
|
@ -5,9 +5,10 @@ type Props = {
|
|||||||
href: string;
|
href: string;
|
||||||
external?: boolean;
|
external?: boolean;
|
||||||
underline?: boolean;
|
underline?: boolean;
|
||||||
|
confetti?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
const { href, external, underline = true, ...rest } = Astro.props;
|
const { href, external, underline = true, confetti, ...rest } = Astro.props;
|
||||||
---
|
---
|
||||||
|
|
||||||
<a
|
<a
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
company: "Standard"
|
|
||||||
role: "Software Engineer | Director"
|
|
||||||
dateStart: "03/16/2018"
|
|
||||||
dateEnd: "present"
|
|
||||||
---
|
|
@ -28,7 +28,7 @@ const years = Object.keys(posts).sort((a, b) => parseInt(b) - parseInt(a));
|
|||||||
<PageLayout title={BLOG.TITLE} description={BLOG.DESCRIPTION}>
|
<PageLayout title={BLOG.TITLE} description={BLOG.DESCRIPTION}>
|
||||||
<Container>
|
<Container>
|
||||||
<div class="space-y-10">
|
<div class="space-y-10">
|
||||||
<div class="animate font-semibold text-black dark:text-white">
|
<div class="animate font-semibold text-black dark:text-white text-4xl font-serif">
|
||||||
Blog
|
Blog
|
||||||
</div>
|
</div>
|
||||||
<div class="space-y-4">
|
<div class="space-y-4">
|
||||||
|
@ -6,6 +6,7 @@ import ArrowCard from "@components/ArrowCard.astro";
|
|||||||
import Link from "@components/Link.astro";
|
import Link from "@components/Link.astro";
|
||||||
import { dateRange } from "@lib/utils";
|
import { dateRange } from "@lib/utils";
|
||||||
import { SITE, HOME, SOCIALS } from "@consts";
|
import { SITE, HOME, SOCIALS } from "@consts";
|
||||||
|
import EmojiScroller from "@components/EmojiScroller.astro";
|
||||||
|
|
||||||
const blog = (await getCollection("blog"))
|
const blog = (await getCollection("blog"))
|
||||||
.filter(post => !post.data.draft)
|
.filter(post => !post.data.draft)
|
||||||
@ -30,16 +31,17 @@ const work = await Promise.all(
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
<PageLayout title={HOME.TITLE} description={HOME.DESCRIPTION}>
|
<PageLayout title={HOME.TITLE} description={HOME.DESCRIPTION}>
|
||||||
<Container>
|
<Container>
|
||||||
<h4 class="animate font-semibold text-black dark:text-white text-4xl font-serif">
|
<h4 class="animate font-semibold text-black dark:text-white text-4xl font-serif">
|
||||||
Hi, I'm Michael <span class="text-4xl">👋🏻</span>
|
Hi, I'm Michael <EmojiScroller client:load transition:persist/>
|
||||||
</h4>
|
</h4>
|
||||||
<div class="space-y-16">
|
<div class="space-y-16">
|
||||||
<section>
|
<section>
|
||||||
<article class="space-y-4">
|
<article class="space-y-4">
|
||||||
<p class="animate">
|
<p class="animate">
|
||||||
I'm a lead software engineer at the University of Canterbury, working on <Link href="https://uconline.ac.nz" external>Tuihono UC | UC Online</Link>.
|
I'm a software engineer at the University of Canterbury, working on <Link href="https://uconline.ac.nz" external>Tuihono UC | UC Online</Link>.
|
||||||
|
|
||||||
I specialize in full-stack development. While my primary expertise is in software engineering, I also have a strong interest in cloud infrastructure and DevOps. Based in Christchurch, New Zealand
|
I specialize in full-stack development. While my primary expertise is in software engineering, I also have a strong interest in cloud infrastructure and DevOps. Based in Christchurch, New Zealand
|
||||||
<br/><br/>
|
<br/><br/>
|
||||||
@ -133,7 +135,7 @@ const work = await Promise.all(
|
|||||||
</li>
|
</li>
|
||||||
))}
|
))}
|
||||||
<li class="line-clamp-1">
|
<li class="line-clamp-1">
|
||||||
<Link href={`mailto:${SITE.EMAIL}`} aria-label={`Email ${SITE.NAME}`}>
|
<Link href={`mailto:${SITE.EMAIL}`} aria-label={`Email ${SITE.NAME}`} confetti>
|
||||||
{SITE.EMAIL}
|
{SITE.EMAIL}
|
||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
|
@ -13,7 +13,7 @@ const projects = (await getCollection("projects"))
|
|||||||
<PageLayout title={PROJECTS.TITLE} description={PROJECTS.DESCRIPTION}>
|
<PageLayout title={PROJECTS.TITLE} description={PROJECTS.DESCRIPTION}>
|
||||||
<Container>
|
<Container>
|
||||||
<div class="space-y-10">
|
<div class="space-y-10">
|
||||||
<div class="animate font-semibold text-black dark:text-white">
|
<div class="animate font-semibold text-black dark:text-white text-4xl font-serif">
|
||||||
Projects
|
Projects
|
||||||
</div>
|
</div>
|
||||||
<ul class="animate flex flex-col gap-4">
|
<ul class="animate flex flex-col gap-4">
|
||||||
|
@ -19,7 +19,7 @@ const work = await Promise.all(
|
|||||||
<PageLayout title={WORK.TITLE} description={WORK.DESCRIPTION}>
|
<PageLayout title={WORK.TITLE} description={WORK.DESCRIPTION}>
|
||||||
<Container>
|
<Container>
|
||||||
<div class="space-y-10">
|
<div class="space-y-10">
|
||||||
<div class="animate font-semibold text-black dark:text-white">
|
<div class="animate font-semibold text-black dark:text-white text-4xl font-serif">
|
||||||
Work
|
Work
|
||||||
</div>
|
</div>
|
||||||
<ul class="flex flex-col space-y-4">
|
<ul class="flex flex-col space-y-4">
|
||||||
|
Loading…
Reference in New Issue
Block a user