Some checks failed
Docker Deploy / build-and-push (push) Has been cancelled
3.7 KiB
3.7 KiB
Personal Website
My personal website built with Astro and Preact!
Features
- Resume Management
- Blog Posts
- Projects
- Talks
- Terminal View
Resume Configuration
The resume system supports multiple sections that can be enabled, disabled, and customized.
Available Resume Sections
Section | Required Fields |
---|---|
basics | name , email , profiles |
summary | content |
experience | company , position , location , date , description |
education | institution , degree , field , date |
skills | name , level (1-5) |
volunteer | organization , position , date |
awards | title , organization , date |
profiles | network , username , url |
Section Configuration
Each section can be configured in src/config/data.ts
:
export const resumeConfig: ResumeConfig = {
tomlFile: "/files/resume.toml",
layout: {
leftColumn: ["experience", "volunteer", "awards"],
rightColumn: ["skills", "education"],
},
sections: {
summary: {
title: "Professional Summary",
enabled: true,
},
experience: {
title: "Work Experience",
enabled: true,
},
awards: {
title: "Awards & Recognition",
enabled: true,
},
// ... other sections
},
};
Layout Configuration
The resume layout is fully customizable. You can control which sections appear in which column and their order:
layout: {
leftColumn: ["experience", "volunteer", "awards"],
rightColumn: ["skills", "education"],
}
Available sections for layout:
experience
- Work experienceeducation
- Educational backgroundskills
- Technical and professional skillsvolunteer
- Volunteer workawards
- Awards and recognition
Layout Rules:
- Sections can be placed in either column
- Order within each column is determined by array order
- Missing sections are automatically excluded
- The
summary
section always appears at the top (full width) - The
profiles
section appears in the header area
Example Layouts:
Skills-focused layout:
layout: {
leftColumn: ["skills", "education"],
rightColumn: ["experience", "awards", "volunteer"],
}
Experience-heavy layout:
layout: {
leftColumn: ["experience"],
rightColumn: ["skills", "education", "volunteer", "awards"],
}
Resume Data Format (TOML)
Create a resume.toml
file in the public/files/
directory:
[basics]
name = "Your Name"
email = "your.email@example.com"
[[basics.profiles]]
network = "GitHub"
username = "yourusername"
url = "https://github.com/yourusername"
[[basics.profiles]]
network = "LinkedIn"
username = "yourname"
url = "https://linkedin.com/in/yourname"
[summary]
content = "Your professional summary here..."
[[experience]]
company = "Company Name"
position = "Job Title"
location = "City, State"
date = "2020 - Present"
description = [
"Achievement or responsibility 1",
"Achievement or responsibility 2"
]
url = "https://company.com"
[[education]]
institution = "University Name"
degree = "Bachelor of Science"
field = "Computer Science"
date = "2016 - 2020"
details = [
"Relevant coursework or achievements"
]
[[skills]]
name = "JavaScript"
level = 4
[[skills]]
name = "Python"
level = 5
[[volunteer]]
organization = "Organization Name"
position = "Volunteer Position"
date = "2019 - Present"
[[awards]]
title = "Award Title"
organization = "Awarding Organization"
date = "2023"
description = "Brief description of the award"
Development
# Install dependencies
pnpm i
# Start development server
pnpm dev
# Build for production
pnpm build