Skip to content

Commit 00888e2

Browse files
committed
Refactor, licence, docs
1 parent 496c4b2 commit 00888e2

10 files changed

+590
-145
lines changed

Diff for: LICENSE

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 Yizhuo Liang
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

Diff for: README.md

+50-22
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,64 @@
1-
This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).
1+
# Minimal Portfolio Theme
2+
3+
A clean, minimal portfolio theme built with Next.js and Tailwind CSS. Perfect for academics, researchers, or developers who want a simple yet elegant way to showcase their work.
4+
5+
Developed with Cursor! It's amazing!
6+
7+
## Features
8+
9+
- **Clean Minimal Design**: Focus on content with a distraction-free design
10+
- **Responsive Layout**: Looks great on all devices from mobile to desktop
11+
- **Interactive Sections**: Expandable sections for education, research, skills, and more
12+
- **Easy Customization**: Simple to modify with Tailwind CSS utility classes
13+
- **Performance Optimized**: Fast loading with Next.js optimizations
14+
- **Accessible**: Built with accessibility in mind
215

316
## Getting Started
417

5-
First, run the development server:
18+
### Prerequisites
19+
20+
- Node.js 18+ and npm/yarn
21+
22+
### Installation
23+
24+
1. Clone this repository:
25+
```bash
26+
git clone https://github.com/yizhuoliang/yizhuoliang.github.io.git my-portfolio
27+
cd my-portfolio
28+
```
29+
30+
2. Install dependencies:
31+
```bash
32+
npm install
33+
# or
34+
yarn install
35+
```
636

7-
```bash
8-
npm run dev
9-
# or
10-
yarn dev
11-
# or
12-
pnpm dev
13-
# or
14-
bun dev
15-
```
37+
3. Run the development server:
38+
```bash
39+
npm run dev
40+
# or
41+
yarn dev
42+
```
1643

17-
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
44+
4. Open http://localhost:3000 to see your site
1845

19-
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
46+
### Deployment
2047

21-
This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
48+
This site is configured for deployment to GitHub Pages through GitHub Actions. For detailed instructions, see the GitHub workflow in `.github/workflows/nextjs.yml`.
2249

23-
## Learn More
50+
## Customization
2451

25-
To learn more about Next.js, take a look at the following resources:
52+
See the [customization guide](./docs/CUSTOMIZATION.md) for detailed instructions on personalizing the theme.
2653

27-
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
28-
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
54+
For information about the project structure, see the [project structure documentation](./docs/PROJECT_STRUCTURE.md).
2955

30-
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!
56+
## License
3157

32-
## Deploy on Vercel
58+
This project is open source and available under the [MIT License](./LICENSE).
3359

34-
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
60+
## Acknowledgments
3561

36-
Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
62+
- Built with [Next.js](https://nextjs.org/)
63+
- Styled with [Tailwind CSS](https://tailwindcss.com/)
64+
- Icons from [Lucide](https://lucide.dev/)

Diff for: app/page.tsx

+42-57
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
import Image from 'next/image'
22
import { Card } from "@/components/ui/card"
3-
import { ExpandableSection } from "@/components/expandable-section"
3+
import {
4+
ExpandableSection,
5+
StyledLink,
6+
ProfilePhoto,
7+
ContactItem,
8+
EmailIcon,
9+
GithubIcon,
10+
Footer,
11+
SkillTag,
12+
ProjectItem
13+
} from "@/components/ui/shared-components"
414

515
export default function Home() {
616
return (
@@ -19,41 +29,36 @@ export default function Home() {
1929
</Card>
2030

2131
{/* Photo */}
22-
<Card className="w-full h-48 md:h-auto md:aspect-square overflow-hidden shadow-lg border-none dark:border-zinc-200">
23-
<Image
24-
src="/pics/coulson-faker.jpg"
25-
alt="Yizhuo Liang"
26-
width={400}
27-
height={400}
28-
priority
29-
className="object-cover w-full h-full transition-transform hover:scale-105 duration-300"
30-
/>
31-
</Card>
32+
<ProfilePhoto
33+
src="/pics/coulson-faker.jpg"
34+
alt="Yizhuo Liang"
35+
priority
36+
/>
3237

3338
{/* Contact Card */}
3439
<Card className="bg-white border border-zinc-100 dark:bg-white dark:border-zinc-100">
3540
<div className="p-5">
3641
<div className="space-y-1.5">
37-
<div className="flex items-center gap-2">
38-
<svg xmlns="http://www.w3.org/2000/svg" className="h-3.5 w-3.5 text-zinc-500" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><rect width="20" height="16" x="2" y="4" rx="2"/><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"/></svg>
39-
<a href="mailto:[email protected]" className="text-xs text-zinc-800 hover:text-zinc-950 dark:text-zinc-800 dark:hover:text-zinc-950">[email protected]</a>
40-
</div>
41-
<div className="flex items-center gap-2">
42-
<svg xmlns="http://www.w3.org/2000/svg" className="h-3.5 w-3.5 text-zinc-500" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"/><path d="M9 18c-4.51 2-5-2-7-2"/></svg>
43-
<a href="https://github.com/yizhuoliang" className="text-xs text-zinc-800 hover:text-zinc-950 dark:text-zinc-800 dark:hover:text-zinc-950">github.com/yizhuoliang</a>
44-
</div>
42+
<ContactItem
43+
icon={<EmailIcon />}
44+
href="mailto:[email protected]"
45+
>
46+
47+
</ContactItem>
48+
49+
<ContactItem
50+
icon={<GithubIcon />}
51+
href="https://github.com/yizhuoliang"
52+
>
53+
github.com/yizhuoliang
54+
</ContactItem>
4555
</div>
4656
</div>
4757
</Card>
4858
</div>
4959

5060
{/* Footer with copyright - desktop only */}
51-
<div className="hidden md:block text-center text-[10px] text-zinc-400 mb-2">
52-
<p>© 2025 Yizhuo Liang</p>
53-
<p className="mt-1">
54-
Welcome to fork my <a href="https://github.com/yizhuoliang/yizhuoliang.github.io" className="hover:text-zinc-600 transition-colors">theme</a>!
55-
</p>
56-
</div>
61+
<Footer className="hidden md:block mb-2" />
5762
</div>
5863

5964
{/* Right column: Bio and Expandable sections */}
@@ -62,7 +67,7 @@ export default function Home() {
6267
<Card className="mb-8 bg-white border border-zinc-100 dark:bg-white dark:border-zinc-100">
6368
<div className="p-6">
6469
<p className="text-sm text-zinc-700 leading-relaxed dark:text-zinc-700">
65-
Hi, I'm an incoming PhD at <a href="https://nsl.usc.edu/" className="underline text-zinc-800 hover:text-zinc-600">University of Southern California</a>, advised by Professor <a href="https://seojinpark.net/" className="underline text-zinc-800 hover:text-zinc-600">Seo Jin Park</a>. I have a broad interest of distributed and operating systems.
70+
Hi, I'm an incoming PhD at <StyledLink href="https://nsl.usc.edu/" variant="underline">University of Southern California</StyledLink>, advised by Professor <StyledLink href="https://seojinpark.net/" variant="underline">Seo Jin Park</StyledLink>. I have a broad interest of distributed and operating systems.
6671
</p>
6772
</div>
6873
</Card>
@@ -117,9 +122,9 @@ export default function Home() {
117122
July 2024 - Present
118123
</p>
119124
<ul className="mt-3 space-y-3 pl-5 text-sm">
120-
<li className="rounded-lg bg-zinc-50 p-2.5 border border-zinc-100 shadow-sm dark:bg-zinc-50 dark:text-zinc-800 dark:border-zinc-100">Built a tool for monitoring application performance and profiling resource usage at microsecond scale.</li>
121-
<li className="rounded-lg bg-zinc-50 p-2.5 border border-zinc-100 shadow-sm dark:bg-zinc-50 dark:text-zinc-800 dark:border-zinc-100">Achieved less than 10% runtime overhead while identifying lock contention, interference, and hardware resource bottlenecks.</li>
122-
<li className="rounded-lg bg-zinc-50 p-2.5 border border-zinc-100 shadow-sm dark:bg-zinc-50 dark:text-zinc-800 dark:border-zinc-100">Investigating memory bandwidth contention and resource demand heterogeneity.</li>
125+
<ProjectItem>Built a tool for monitoring application performance and profiling resource usage at microsecond scale.</ProjectItem>
126+
<ProjectItem>Achieved less than 10% runtime overhead while identifying lock contention, interference, and hardware resource bottlenecks.</ProjectItem>
127+
<ProjectItem>Investigating memory bandwidth contention and resource demand heterogeneity.</ProjectItem>
123128
</ul>
124129
</div>
125130

@@ -132,10 +137,10 @@ export default function Home() {
132137
June 2023 - June 2024
133138
</p>
134139
<ul className="mt-3 space-y-3 pl-5 text-sm">
135-
<li className="rounded-lg bg-zinc-50 p-2.5 border border-zinc-100 shadow-sm dark:bg-zinc-50 dark:text-zinc-800 dark:border-zinc-100">Built a Software Fault Isolation system for process-level sandboxing.</li>
136-
<li className="rounded-lg bg-zinc-50 p-2.5 border border-zinc-100 shadow-sm dark:bg-zinc-50 dark:text-zinc-800 dark:border-zinc-100">Implemented a library OS with fast inter-process communications.</li>
137-
<li className="rounded-lg bg-zinc-50 p-2.5 border border-zinc-100 shadow-sm dark:bg-zinc-50 dark:text-zinc-800 dark:border-zinc-100">Made benchmarks 75-200% faster than native Linux.</li>
138-
<li className="rounded-lg bg-zinc-50 p-2.5 border border-zinc-100 shadow-sm dark:bg-zinc-50 dark:text-zinc-800 dark:border-zinc-100">Led transition to WASM runtimes and ported glibc to WASM.</li>
140+
<ProjectItem>Built a Software Fault Isolation system for process-level sandboxing.</ProjectItem>
141+
<ProjectItem>Implemented a library OS with fast inter-process communications.</ProjectItem>
142+
<ProjectItem>Made benchmarks 75-200% faster than native Linux.</ProjectItem>
143+
<ProjectItem>Led transition to WASM runtimes and ported glibc to WASM.</ProjectItem>
139144
</ul>
140145
</div>
141146
</div>
@@ -147,12 +152,7 @@ export default function Home() {
147152
summary={
148153
<div className="flex flex-wrap gap-2">
149154
{["Go", "C", "Rust", "Python", "Java", "Coq"].map((skill) => (
150-
<span
151-
key={skill}
152-
className="rounded-full bg-zinc-100 px-4 py-2 text-xs font-medium text-zinc-800 border border-zinc-200 shadow-sm dark:bg-zinc-100 dark:text-zinc-800 dark:border-zinc-200"
153-
>
154-
{skill}
155-
</span>
155+
<SkillTag key={skill}>{skill}</SkillTag>
156156
))}
157157
</div>
158158
}
@@ -162,12 +162,7 @@ export default function Home() {
162162
<h3 className="mb-2 font-semibold">Programming Languages</h3>
163163
<div className="flex flex-wrap gap-3">
164164
{["Go", "C", "Rust", "Python", "Java", "Coq"].map((skill) => (
165-
<span
166-
key={skill}
167-
className="rounded-full bg-zinc-100 px-4 py-2 text-sm font-medium text-zinc-800 border border-zinc-200 shadow-sm dark:bg-zinc-100 dark:text-zinc-800 dark:border-zinc-200"
168-
>
169-
{skill}
170-
</span>
165+
<SkillTag key={skill}>{skill}</SkillTag>
171166
))}
172167
</div>
173168
</div>
@@ -183,12 +178,7 @@ export default function Home() {
183178
"React",
184179
"iris-coq",
185180
].map((skill) => (
186-
<span
187-
key={skill}
188-
className="rounded-full bg-zinc-200 px-4 py-2 text-sm font-medium text-zinc-800 border border-zinc-300 shadow-sm dark:bg-zinc-200 dark:text-zinc-800 dark:border-zinc-300"
189-
>
190-
{skill}
191-
</span>
181+
<SkillTag key={skill} variant="secondary">{skill}</SkillTag>
192182
))}
193183
</div>
194184
</div>
@@ -198,12 +188,7 @@ export default function Home() {
198188
</div>
199189

200190
{/* Mobile-only footer */}
201-
<div className="block md:hidden mt-8 mb-2 text-center text-[10px] text-zinc-400">
202-
<p>© 2025 Yizhuo Liang</p>
203-
<p className="mt-1">
204-
Welcome to fork my <a href="https://github.com/yizhuoliang/yizhuoliang.github.io" className="hover:text-zinc-600 transition-colors">theme</a>!
205-
</p>
206-
</div>
191+
<Footer className="block md:hidden mt-8 mb-2" />
207192
</div>
208193
</main>
209194
)

Diff for: components/expandable-section.tsx

-59
This file was deleted.

0 commit comments

Comments
 (0)