This commit is contained in:
164
README.md
164
README.md
@ -1 +1,163 @@
|
||||
# Personal Site
|
||||
# Personal Website
|
||||
|
||||
My personal website built with Astro and Preact!
|
||||
|
||||
## Features
|
||||
|
||||
- **Resume Management**
|
||||
- **Blog Posts**
|
||||
- **Projects**
|
||||
- **Talks & Presentations**
|
||||
- **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`:
|
||||
|
||||
```typescript
|
||||
export const resumeConfig: ResumeConfig = {
|
||||
tomlFile: "/files/resume.toml",
|
||||
sections: {
|
||||
summary: {
|
||||
title: "Professional Summary",
|
||||
enabled: true,
|
||||
},
|
||||
experience: {
|
||||
title: "Work Experience",
|
||||
enabled: true,
|
||||
},
|
||||
awards: {
|
||||
title: "Awards & Recognition",
|
||||
enabled: true,
|
||||
},
|
||||
// ... other sections
|
||||
},
|
||||
};
|
||||
```
|
||||
|
||||
### Resume Data Format (TOML)
|
||||
|
||||
Create a `resume.toml` file in the `public/files/` directory:
|
||||
|
||||
```toml
|
||||
[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"
|
||||
```
|
||||
|
||||
### Section Field Details
|
||||
|
||||
#### Skills Section
|
||||
- `level`: Integer from 1-5 representing proficiency level
|
||||
- Displays as progress bars with visual indicators
|
||||
|
||||
#### Experience Section
|
||||
- `description`: Array of strings for bullet points
|
||||
- `url`: Optional company website link
|
||||
|
||||
#### Education Section
|
||||
- `details`: Optional array of additional information (coursework, achievements, etc.)
|
||||
|
||||
#### Awards Section
|
||||
- `description`: Optional additional details about the award
|
||||
|
||||
#### Profiles Section
|
||||
- `network`: Used for icon selection (GitHub, LinkedIn, etc.)
|
||||
- Icons automatically selected based on network name
|
||||
|
||||
## Usage
|
||||
|
||||
1. **Configure Resume**: Edit `src/config/data.ts` to enable/disable sections
|
||||
2. **Add Resume Data**: Create `public/files/resume.toml` with your information
|
||||
3. **View Resume**: Navigate to `/resume` on your site
|
||||
4. **Generate PDF**: Click "Generate PDF Resume" button for downloadable PDF
|
||||
|
||||
## Development
|
||||
|
||||
```bash
|
||||
# Install dependencies
|
||||
npm install
|
||||
|
||||
# Start development server
|
||||
npm run dev
|
||||
|
||||
# Build for production
|
||||
npm run build
|
||||
```
|
||||
|
||||
## Resume PDF Generation
|
||||
|
||||
The system automatically generates PDFs using Puppeteer with:
|
||||
- Optimized layout for A4 paper
|
||||
- Print-friendly styling
|
||||
- Consistent formatting across sections
|
||||
- Proper page breaks and margins
|
||||
|
Reference in New Issue
Block a user