A simple, config-driven academic website template that generates HTML from JSON configuration.
π’ Important Update (v1.1.0): If you've already forked this template, please check the CHANGELOG.md for migration instructions. This update reorganizes file structure and adds new configuration options.
- Single config file controls all content (no HTML editing needed)
- Automatic generation via GitHub Actions
- Clean academic design with responsive layout
- Blog system with Markdown support
- Publication management with automatic formatting
- Easy maintenance - just edit JSON and push
- Go to this repository
- Click the "Fork" button in the top right
- Choose your GitHub account as the destination
- In your forked repository, go to Settings
- Scroll down to "Repository name"
- Change it to
yourusername.github.io(replace with your actual GitHub username) - Click "Rename"
- Still in Settings, scroll down to "Pages"
- Under "Source", select "Deploy from a branch"
- Choose "master" branch and "/ (root)" folder
- Click "Save"
Your website will be available at https://yourusername.github.io
You need to clone the repository to your local computer so you can edit the config.json file and add your content. If you prefer, you can also edit files directly on GitHub, but using a local editor is more convenient.
git clone https://github.com/yourusername/yourusername.github.io.git
cd yourusername.github.ioconfig.json and update the following sections:
Update the seo section with your information:
"seo": {
"website_url": "https://yourusername.github.io", // β Change to your URL
"github_pages_url": "https://yourusername.github.io", // β Change to your URL
"website_name": "Your Name - Academic Homepage", // β Change to your name
"website_description": "Your research description", // β Change to your description
"keywords": ["your", "research", "keywords"], // β Update keywords
"author": {
"name": "Your Name", // β Change to your name
"email": "your.email@university.edu", // β Change to your email
"google_scholar_id": "YOUR_SCHOLAR_ID", // β Change to your Scholar ID
"github": "yourusername", // β Change to your GitHub username
"twitter": "yourusername" // β Change to your Twitter (or remove)
},
"organization": {
"name": "Your University", // β Change to your affiliation
"url": "https://yourusername.github.io" // β Change to your URL
}
}Update the visitor_map section:
"visitor_map": {
"enabled": true, // Set to false if you don't want visitor map
"provider": "clustrmaps",
"domain_id": "YOUR_CLUSTRMAPS_ID", // β Get your own ID from clustrmaps.com
"color": "ffffff",
"width": "a"
}Note:
- If you don't want a visitor map, set
"enabled": false - To get your own ClustrMaps ID: visit clustrmaps.com, sign up, create a map, and copy the
domain_idfrom the embed code
Update the personal section:
"personal": {
"name": "Your Name", // β Change
"email": "your.email@university.edu", // β Change
"cv_link": "files/your-cv.pdf", // β Change to your CV file
"profile_image": "images/your-photo.jpg", // β Change to your photo
"links": [
// β Update all your social links
]
}You need to replace the favicon files with your own logo. Here are the methods:
If you have a logo image at images/pagelogo_round.png:
python scripts/generate_favicons.pyThis will automatically generate all required favicon files:
favicon.icofavicon-16x16.pngfavicon-32x32.pngapple-touch-icon.png
-
Favicon.io (https://favicon.io/)
- Upload your logo image
- Download the generated favicon package
- Extract and place files in the root directory
-
RealFaviconGenerator (https://realfavicongenerator.net/)
- More comprehensive favicon generation
- Handles all device types and sizes
If you have image editing software:
- favicon-32x32.png: Resize your logo to 32x32 pixels, save as PNG
- favicon-16x16.png: Resize your logo to 16x16 pixels, save as PNG
- apple-touch-icon.png: Resize your logo to 180x180 pixels, save as PNG
- favicon.ico: Convert your 32x32 PNG to ICO format using an online converter
Required Files:
favicon.ico(32x32px, ICO format)favicon-16x16.png(16x16px, PNG)favicon-32x32.png(32x32px, PNG)apple-touch-icon.png(180x180px, PNG)
All files should be placed in the root directory of your website.
Add your papers in the publications section:
"publications": {
"2024": [
{
"title": "Your Paper Title",
"authors": ["Your Name", "Collaborator 1", "Collaborator 2"],
"venue": "CVPR 2024",
"venue_type": "conference",
"image": "teaser/your-paper.jpg",
"featured": true,
"links": [
{"name": "Paper", "url": "https://arxiv.org/abs/...", "icon": "ai ai-arxiv"},
{"name": "Code", "url": "https://github.com/...", "icon": "fab fa-github"}
]
}
]
}Add recent news:
"news": [
{
"date": "Dec 2024",
"content": "Paper accepted to <strong>CVPR 2024</strong>!",
"category": "papers"
}
]Update your background:
"experience": [
{
"position": "Research Intern",
"company": "Company Name",
"period": "Summer 2024",
"description": "Brief description...",
"logo": "images/company-logo.jpg"
}
],
"education": [
{
"degree": "PhD in Computer Science",
"institution": "Your University",
"period": "2024 - Present",
"details": "Focus: Computer Vision and AI"
}
]- Profile photo: Add your photo as
images/your-photo.jpg - Paper teasers: Add teaser images to
teaser/directory - Company logos: Add logos to
images/directory - CV: Add your CV to
files/directory
git add config.json
git add images/ # if you added new images
git add favicon* apple-touch-icon.png # if you added favicons
git commit -m "Update personal information and configuration"
git pushThat's it! GitHub Actions will automatically build and deploy your site in 1-2 minutes.
Create .md files in blog/ directory:
---
title: "Your Blog Post Title"
date: "2024-01-01"
description: "Brief description"
tags: ["Research", "AI"]
image: "teaser/preprint.jpg"
---
# Your Blog Post
Write your content here in Markdown...Push the file to GitHub - the blog will update automatically.
To preview changes locally before pushing:
# Build website locally
python scripts/build_local.py
# Start local server
python scripts/local_server.py
# Visit http://localhost:8000"papers": For publication news"career": For job/position updates"projects": For project announcements
"conference": Blue badge (published papers)"under-review": Gray badge (under review)"preprint": Orange badge (preprints)
For Publications:
| Usage | Icon Code | Color Code |
|---|---|---|
| Paper (arXiv) | "ai ai-arxiv" |
#b91c1c |
| Code | "fab fa-github" |
#333 |
| Dataset | "fas fa-database" |
#28a745 |
| Video (YouTube) | "fab fa-youtube" |
#ff0000 |
| Video (Bilibili) | "fas fa-tv" |
#fb7299 |
| Homepage | "fas fa-home" |
#2563eb |
| Blog | "fas fa-blog" |
#2563eb |
| Zhihu (Documentation) | "fas fa-book-open" |
#007bff |
For Social Links:
| Usage | Icon Code | Color Code |
|---|---|---|
"fas fa-envelope" |
#dc3545 |
|
| Google Scholar | "fas fa-graduation-cap" |
#4285f4 |
| GitHub | "fab fa-github" |
#333 |
"fab fa-twitter" |
#1da1f2 |
|
"fab fa-linkedin" |
#1666C5 |
|
| Zhihu | "fas fa-book" |
#0084ff |
Example:
"links": [
{
"name": "Paper",
"url": "https://arxiv.org/abs/2204.01018",
"icon": "ai ai-arxiv"
},
{
"name": "Scholar",
"url": "https://scholar.google.com/citations?user=YOUR_ID",
"icon": "fas fa-graduation-cap",
"color": "#4285f4"
},
]- Make sure you pushed changes to
config.json - Check GitHub Actions tab for build errors
- Wait 1-2 minutes for deployment
- Ensure image files are committed and pushed
- Check file paths in
config.json - Use relative paths from website root
- Validate JSON syntax in
config.json - Check GitHub Actions logs for specific errors
- Ensure all required fields are present
- Check that
visitor_map.enabledis set totrue - Verify your ClustrMaps
domain_idis correct - Make sure you've signed up at clustrmaps.com and created a map
- Colors: Edit CSS variables in
assets/css/styles.css - Fonts: Change Google Fonts link in build scripts
- Layout: Modify scripts in
.github/scripts/
- Check Issues
- Review example
config.jsonfor reference - Check GitHub Actions logs for build errors
MIT License - free to use and modify!
Created by Sixun Dong - Independent Researcher
This template is designed to be simple and practical. Start with the basics and customize as needed.