A clean Jekyll template for academics and researchers. Features structured templates for CV, publications, and talks.
- Ruby (2.7+)
- Bundler gem
- Git
-
Fork or clone this repository
-
Navigate to the project directory
-
Update the relevant files with your personal information (see below)
-
Install dependencies:
bundle install
-
Start the development server:
bundle exec jekyll serve -
Visit
http://localhost:4000/to see your site
Update the main configuration file with your information:
# Site settings
title: "Your Name"
description: >
Your professional description here.
baseurl: "" # Leave empty for root domain, or add subpath like "/repo-name"
url: "https://yourusername.github.io" # the base hostname & protocol for your site
# Social media usernames (without @ symbol)
github_username: "your-github-username"
orcid_id: "0000-0000-0000-0000"
linkedin_username: "your-linkedin-username"
email_user: "youremailusername"
email_domain: "example.com"
# Credit :)
credit-title: "Paul Gondolf"
credit-url: "https://paul-the-wizord.github.io"Of course you should also update the cv.md, index.md, projects.md and talks.md with your own information.
Don't forget to personalize these visual elements:
- Profile Image: Replace the default profile image in
/assets/images/profile.pngwith your own professional photo - Favicon: Create and add a favicon (the small icon in browser tabs) - you can use your initials, a professional headshot, or a symbol related to your field. Place favicon files in
/assets/images/and add the appropriate<link>tags to your layout's<head>section
In the robots.txt you should change the link to the Sitemap and also set your privacy settings.
User-agent: *
Allow: /
Sitemap: https://yourusername.github.io/sitemap.xmlThe CV template supports structured data for education, employment, and teaching experience:
---
layout: cv
title: "Curriculum Vitae"
permalink: /cv/
last_updated: "January 2026"
description: "Brief description of your background"
education:
- date: "2025"
degree: "PhD in Your Field"
institution: "University Name"
institution_url: "https://university.edu/"
location: "City, Country"
details:
- label: "Graduation"
text: "Month Year"
- label: "Dissertation"
text: "Your dissertation title"
url: "https://link-to-dissertation.com"
- label: "Research Focus"
text: "Your research area"
- label: "Extracurricular"
text: "List of programs, workshops, seminars (collapsible)"
- label: "Curriculum"
text: "List of relevant courses and their topics (collapsible)"
employment:
- date: "present"
title: "Job Title"
institution: "Institution Name"
institution_url: "https://institution.edu/"
location: "City, Country"
details:
- label: "Period"
text: "MM.YYYY - present"
- label: "Funding"
text: "Grant information (optional)"
teaching:
- "Course Title 1 (Years, Institution)"
- "Course Title 2 (Years, Institution)"
---The projects template displays code projects and research papers in a combined layout:
---
layout: projects
title: "Projects"
permalink: /projects/
last_updated: "January 2026"
description: "A selection of public coding projects and research publications"
numerical_simulations:
- url: "https://github.com/yourusername/project1"
preview_title: "Project Title"
preview_image: "/assets/images/project-preview.png"
- url: "https://zenodo.org/records/12345"
preview_title: "Another Project"
preview_image: "/assets/images/project2-preview.png"
papers:
- title: "Your Paper Title"
paper_type: published # or 'preprint'
journal: "Journal Name" # for published papers
status: "Submitted to Journal" # for preprints
year: 2025
authors:
- name: "Coauthor Name"
- name: "Your Name"
highlight: true # Highlights your name in bold
abstract: "Your paper abstract here..."
links:
- text: "arXiv:2512.04066"
url: "https://arxiv.org/abs/2512.04066"
- text: "PDF"
url: "https://arxiv.org/pdf/2512.04066"
---The talks page supports flexible metadata with optional links and YouTube video embeds:
---
layout: talks
title: "Talks"
permalink: /talks/
last_updated: "January 2026"
description: "Conference presentations, seminars, and invited talks"
talks:
- title: "Your Talk Title"
meta:
# Mix plain text and objects with optional URLs
- text: "Conference Name" # Object with optional URL
url: "https://conference.com"
- "City, Country" # Plain text string
- "01.2026" # Date in MM.YYYY format
- "|" # Pipe separator groups metadata (renders as ' | ')
- text: "Seminar Name"
url: "https://seminar.com"
- "Cambridge"
- "12.2025"
description: "Your talk abstract or summary..."
youtube_id: "XnyQFTr7pqE" # Optional: YouTube video ID for embedding
links: # Optional: additional links for slides, etc.
- text: "Slides"
url: "https://example.com/slides.pdf"
---Metadata Rendering Details:
- Items are separated by
•bullet points by default - Special item
"|"renders as | to separate groups - Objects with
urlfield render as clickable links (opens in new tab) - Plain strings render as text
- YouTube videos embed responsively below the talk description
Modify CSS variables in assets/css/style.css:
:root {
--color-primary: #B8724D; /* Your brand color */
--color-primary-dark: #9A5F42; /* Darker variant */
--content-max-width: 700px; /* Content width */
--sidebar-width: 320px; /* Sidebar width */
}- Create a new layout in
_layouts/ - Add corresponding styles to
style.css - Create the markdown file with appropriate front matter
Your Jekyll site should be organized as follows:
your-academic-website/
├── _config.yml # Site configuration
├── _layouts/ # HTML templates for different page types
│ ├── default.html # Main template (sidebar, navigation, footer)
│ ├── cv.html # CV page template
│ ├── projects.html # Projects/research page template
│ ├── talks.html # Talks page template
│ └── home.html # Homepage template
├── _posts/ # (Disabled - kept for reference)
├── _pages/ # Pages (.md files)
│ ├── index.md # Homepage
│ ├── cv.md # CV page
│ ├── projects.md # Projects & research page
│ ├── talks.md # Talks page
│ └── 404.md # 404 error page
├── assets/ # Static files
│ ├── css/
│ │ └── style.css # Main stylesheet with CSS variables
│ ├── images/ # Images for profile, projects, etc.
│ │ ├── profile.jpg # Profile picture
│ │ └── project-preview.png
│ └── files/ # PDFs and downloadable files
├── robots.txt # Search engine instructions
├── Gemfile # Ruby dependencies
└── README.md # Repository documentation
Key Directories:
_layouts/: HTML templates for different page types_pages/: Markdown files for main pagesassets/: Static files (CSS, images, PDFs)
- Push your repository to GitHub
- Go to Settings > Pages
- Select "Deploy from a branch"
- Choose "main" branch and "/ (root)" folder
- Your site will be available at
https://username.github.io/repository-name
To serve your site at yourusername.github.io instead of yourusername.github.io/repository-name:
-
Rename your repository to
yourusername.github.io(must match your GitHub username exactly) -
Update your
_config.yml:baseurl: "" # Leave empty for root domain url: "https://yourusername.github.io"
-
Update your
robots.txt:Sitemap: https://yourusername.github.io/sitemap.xml
Note: You can only have one username.github.io repository per GitHub account.
- Build errors: Check
_config.ymlsyntax and front matter formatting - Styling issues: Verify CSS file paths and variable names
- Math not rendering: Ensure MathJax configuration is correct in
default.html - Images not loading: Check file paths and case sensitivity
For more help, refer to the Jekyll documentation.
Push to GitHub and enable Pages in repository settings. Your site will be available at https://yourusername.github.io/repository-name.
For more help, refer to the Jekyll documentation.
This Jekyll academic website template was originally created by Paul Gondolf and is distributed under a dual license:
- Template Code: MIT License - free to use, modify, and distribute
- Personal Content: Copyright protected - requires permission
This project uses a dual licensing approach:
- Template & Code: Licensed under the MIT License - see LICENSE-CODE
- Personal Content: All rights reserved - see LICENSE-CONTENT
The Jekyll template, layouts, and styling may be freely used. Personal content (CV, research info, photos) requires permission.