Website Content Guide
This guide explains how to update and modify the content of Johannes Karge’s portfolio website.
Table of Contents
- Website Overview
- Quick Start
- Updating Personal Information
- Modifying Content Sections
- Adding New Content
- Testing Changes Locally
- Deploying to GitHub Pages
Website Overview
This is a Jekyll-based static website that uses YAML data files to manage content. The site automatically builds and deploys to GitHub Pages when you push changes to the repository.
Key Technologies
- Jekyll: Static site generator that converts Markdown and data files into HTML
- YAML: Human-readable data format used for content storage
- Liquid: Templating language used in Jekyll for dynamic content
- GitHub Pages: Free hosting service that automatically builds Jekyll sites
Directory Structure
johanneskarge.github.io/
├── _data/ # Content data files (YAML)
│ ├── profile.yml # Personal information
│ ├── experience.yml # Work experience
│ ├── education.yml # Educational background
│ ├── projects.yml # Research projects
│ ├── skills.yml # Technical skills
│ ├── certifications.yml # Professional certifications
│ └── memberships_volunteering.yml
├── _layouts/ # Page templates
│ └── default.html # Main layout template
├── assets/ # Static assets
│ ├── css/ # Stylesheets
│ └── images/ # Images and logos
├── _config.yml # Site configuration
└── index.md # Homepage content
Quick Start
To make changes to the website content, you only need to edit the YAML files in the _data/
directory. No HTML or programming knowledge is required for content updates.
Updating Personal Information
Basic Profile (_data/profile.yml)
Edit _data/profile.yml
to update:
- Name and title
- Location
- Email address
- LinkedIn profile URL
- PSE profile URL
- Professional summary
- Research interests
Example:
name: Johannes Karge
title: PhD Candidate at Paris School of Economics
location: Paris, Île-de-France, France
email: j.r.karge@gmail.com
linkedin: https://www.linkedin.com/in/johannes-karge
pse_profile: https://www.parisschoolofeconomics.eu/en/people/johannes-karge/
summary: |
Your professional summary here. Use the pipe (|) symbol
for multi-line text.
research_interests:
- Macroeconomics
- Financial Stability
- Banking
Site Configuration (_config.yml)
Update _config.yml
for:
- Website title
- Meta description
- Author name
- Contact email
- Site URL (when deploying)
Modifying Content Sections
Work Experience (_data/experience.yml)
Add or modify work experience entries:
- company: Company Name
title: Your Job Title
start_date: January 2024
end_date: Present # or specific date
location: City, State/Region, Country
description: |
Description of your role and responsibilities.
Can be multiple lines using the pipe symbol.
Education (_data/education.yml)
Update educational background:
- institution: University Name
degree: Degree Type (e.g., PhD, Master's)
field: Field of Study
start_date: September 2020
end_date: June 2024
duration: 4 years # Optional
description: Additional details about your studies # Optional
Projects & Research (_data/projects.yml)
Add research projects:
projects:
- title: Project Title
institution: Institution Name # Optional
type: Research Paper / Thesis / etc.
supervisor: Supervisor Name # Optional
start_date: January 2023
end_date: December 2023
duration: 1 year # Optional
description: Project description
skills: # Optional list of technologies/methods used
- Python
- Econometrics
- Data Analysis
Skills (_data/skills.yml)
Update technical and language skills:
top_skills:
- Data Analysis
- Economic Research
- Statistical Modeling
technical_skills:
- Python
- R
- Stata
- MATLAB
languages:
- language: English
proficiency: Native/Fluent
- language: French
proficiency: Professional
- language: German
proficiency: Intermediate
Certifications (_data/certifications.yml)
Add professional certifications:
certifications:
- title: Certification Name
issuer: Issuing Organization
date_issued: January 2024
credential_id: ABC123 # Optional
url: https://verify.certification.com/ABC123 # Optional
logo: /assets/images/certifications/logo.svg
color: "#0066CC" # Brand color for styling
skills: # Optional
- Related Skill 1
- Related Skill 2
Memberships & Volunteering (_data/memberships_volunteering.yml)
Update professional memberships and volunteer work:
memberships:
- organization: Organization Name
role: Member / Board Member / etc.
start_date: January 2023
end_date: Present
duration: 2 years # Optional
description: Description of involvement # Optional
volunteering:
- activity: Volunteer Activity
organization: Organization Name
start_date: June 2022
end_date: August 2022
duration: 3 months # Optional
description: Description of volunteer work # Optional
Adding New Content
Adding Images
- Place images in
assets/images/
directory - For certification logos:
assets/images/certifications/
- Reference in YAML files using relative paths:
logo: /assets/images/certifications/company-logo.svg
Creating New Data Categories
- Create a new YAML file in
_data/
directory - Add corresponding section in
index.md
using Liquid templating - Style the new section in
assets/css/style.scss
Example: Adding a Publications section
- Create
_data/publications.yml
:- title: Paper Title authors: J. Karge, Co-author journal: Journal Name year: 2024 url: https://link-to-paper.com
- Add to
index.md
: ```html
Publications
## Testing Changes Locally
### Prerequisites
- Ruby (version 2.5 or higher)
- Bundler gem
### Setup and Running
1. **Install Jekyll and dependencies:**
```bash
bundle install
- Run the local server:
bundle exec jekyll serve
-
View your site: Open browser and go to
http://localhost:4000
- Making changes:
- Edit YAML files in
_data/
- Save changes
- Browser will auto-refresh (if not, manually refresh)
- Edit YAML files in
Troubleshooting Local Development
- Port already in use: Use
bundle exec jekyll serve --port 4001
- Changes not showing: Clear browser cache or use incognito mode
- Build errors: Check YAML syntax (proper indentation is crucial)
Deploying to GitHub Pages
Automatic Deployment
The site automatically deploys when you push changes to the main
branch:
- Make your changes locally
- Commit changes:
git add . git commit -m "Update profile information"
- Push to GitHub:
git push origin main
- Wait for deployment:
- GitHub Actions will automatically build and deploy
- Takes 2-5 minutes typically
- Check Actions tab on GitHub for build status
Manual Deployment Check
- Go to repository Settings
- Navigate to Pages section
- Verify source is set to “Deploy from a branch”
- Branch should be
main
and folder should be/ (root)
Custom Domain (Optional)
To use a custom domain:
- Add a
CNAME
file in the root directory with your domain:www.yourdomain.com
- Configure DNS settings with your domain provider:
- Add CNAME record pointing to
[username].github.io
- Or add A records to GitHub’s IP addresses
- Add CNAME record pointing to
- Update
_config.yml
:url: "https://www.yourdomain.com"
Best Practices
Content Guidelines
- YAML Formatting:
- Use consistent indentation (2 spaces recommended)
- Quote strings containing special characters
- Use pipe
|
for multi-line text
- Dates:
- Use consistent format (e.g., “January 2024” or “Jan 2024”)
- Use “Present” for current positions
- Descriptions:
- Keep concise and professional
- Use bullet points for clarity (with
-
in YAML) - Highlight key achievements and skills
Version Control
- Commit frequently with descriptive messages
- Test locally before pushing to main
- Keep backups of important content changes
- Use branches for major redesigns:
git checkout -b new-feature # Make changes git push origin new-feature # Create pull request on GitHub
Performance Tips
- Optimize images:
- Use SVG for logos when possible
- Compress JPG/PNG files
- Keep images under 500KB
- Limit content:
- Show only recent/relevant experience
- Use pagination for long lists
- Archive old content separately
Common Issues and Solutions
Content Not Updating
Problem: Changes to YAML files don’t appear on the website
Solutions:
- Check YAML syntax (use online YAML validator)
- Ensure proper indentation
- Clear browser cache
- Check GitHub Actions for build errors
Build Failures
Problem: GitHub Pages build fails
Solutions:
- Check
_config.yml
for syntax errors - Verify all referenced files exist
- Check Gemfile.lock is not outdated
- Review error message in GitHub Actions tab
Styling Issues
Problem: Content appears unstyled or broken
Solutions:
- Check CSS file path in
_layouts/default.html
- Verify
assets/css/style.css
exists - Clear browser cache
- Check browser console for errors
Additional Resources
- Jekyll Documentation
- GitHub Pages Documentation
- YAML Syntax Guide
- Liquid Template Language
- Markdown Guide
Support
For issues specific to this website structure:
- Check this guide first
- Review GitHub Actions logs for build errors
- Test changes locally before pushing
- Create an issue in the repository if problems persist
Last updated: January 2025