|
1 | 1 | ---
|
2 |
| -import { Icon } from "astro-icon"; |
3 |
| -import { Image } from 'astro:assets' |
| 2 | +import { Icon } from "astro-icon/components"; |
| 3 | +import { Image } from "astro:assets"; |
4 | 4 | import Technologies from "../components/Technologies.astro";
|
5 | 5 | import IconLoading from "../components/icons/IconLoading.astro";
|
6 | 6 | import PageLayout from "../layouts/PageLayout.astro";
|
7 |
| -import myImage from "../assets/main/me.webp" |
| 7 | +import myImage from "../assets/main/me.webp"; |
8 | 8 |
|
9 | 9 | const canonical = new URL(`about`, Astro.site);
|
10 | 10 |
|
11 | 11 | const title = "About David Hu";
|
12 | 12 | const description = "Sometimes I write code. Other times, I write code with coffee.";
|
13 | 13 |
|
14 | 14 | const steps = [
|
| 15 | + { |
| 16 | + icon: "mdi:company", |
| 17 | + name: "Co-founder & CTO @ Magic Hour", |
| 18 | + content: "Building AI Video & Image Creation Platform", |
| 19 | + content2: "Still doing full stack work, now just without needing to write unit tests.", |
| 20 | + link: "https://magichour.ai", |
| 21 | + linkText: "Magic Hour", |
| 22 | + }, |
15 | 23 | {
|
16 | 24 | icon: "mdi:work",
|
17 | 25 | name: "Lead Full Stack Engineer",
|
18 | 26 | content: "Maker of full stack apps. Fan of infrastructure as code. Builder of CI/CD pipelines.",
|
19 | 27 | content2:
|
20 | 28 | "My favorite part of the role is the variety, going from frontend one day, to backend the next day, then infrastructure and cost optimizations. I like it all!",
|
| 29 | + link: "https://github.com/davidhu2000", |
| 30 | + linkText: "My Github Profile", |
21 | 31 | },
|
22 | 32 | {
|
23 |
| - icon: "ri:open-source-fill", |
| 33 | + icon: "mdi:open-source-initiative", |
24 | 34 | name: "Open Source",
|
25 | 35 | content:
|
26 |
| - "I maintain an NPM package titled 'React Spinners', a set of loading components. Go check it out at /react-spinners. 15 million downloads and counting 🙂", |
27 |
| - }, |
28 |
| - { |
29 |
| - icon: "simple-icons:stackoverflow", |
30 |
| - name: "Stack Overflow", |
31 |
| - content: |
32 |
| - "I'm not sure I can write code without this website. I tried to contribute whenever I can. My goal is to reach 10,000 reputations by end of this year.", |
| 36 | + "I maintain an NPM package titled 'React Spinners', a set of loading components. 28 million downloads and counting 🙂", |
| 37 | + link: "https://www.davidhu.io/react-spinners", |
| 38 | + linkText: "React Spinners Demo", |
33 | 39 | },
|
| 40 | + // { |
| 41 | + // icon: "mdi:stackoverflow", |
| 42 | + // name: "Stack Overflow", |
| 43 | + // content: |
| 44 | + // "I'm not sure I can write code without this website. I tried to contribute whenever I can. My goal is to reach 10,000 reputations by end of this year.", |
| 45 | + // link: "https://stackoverflow.com/users/6496010/davidhu", |
| 46 | + // linkText: "My StackOverflow Profile", |
| 47 | + // }, |
34 | 48 | {
|
35 |
| - icon: "cil:mood-very-good", |
| 49 | + icon: "mdi:mood", |
36 | 50 | name: "Thank you for reading!",
|
37 | 51 | },
|
38 | 52 | ];
|
@@ -74,12 +88,21 @@ const steps = [
|
74 | 88 | </div>
|
75 | 89 | {step.content && <div class="w-px h-full bg-gray-300 dark:bg-slate-500" />}
|
76 | 90 | </div>
|
77 |
| - <div class="pt-1 pb-8"> |
78 |
| - <p class="mb-2 text-xl font-bold text-gray-900 dark:text-slate-300"> |
79 |
| - {step.name} |
80 |
| - </p> |
81 |
| - <p class="mb-2">{step.content}</p> |
| 91 | + <div class="pt-1 pb-8 flex flex-col gap-2"> |
| 92 | + <p class=" text-xl font-bold text-gray-900 dark:text-slate-300">{step.name}</p> |
| 93 | + <p class="">{step.content}</p> |
82 | 94 | <p>{step.content2}</p>
|
| 95 | + |
| 96 | + {step.link && ( |
| 97 | + <a |
| 98 | + href={step.link} |
| 99 | + class="font-medium text-blue-600 dark:text-blue-500 flex items-center gap-1" |
| 100 | + target="_blank" |
| 101 | + > |
| 102 | + {step.linkText} |
| 103 | + <Icon name="mdi:external-link" /> |
| 104 | + </a> |
| 105 | + )} |
83 | 106 | </div>
|
84 | 107 | </div>
|
85 | 108 | ))
|
|
0 commit comments