bilingual-jekyll-resume-theme
A flexible Jekyll theme for creating clean, data-driven, bilingual (English & Arabic) resume/CV websites. Created and maintained by Khaldoon Mutahar. See the latest version on the Releases page. Inspired by and originally forked from Joel Glovierβs resume template. Joelβs version was a basic English-only theme with limited customization (e.g., no section reordering); this project has since evolved into a fully separate theme authored by Khaldoon.
Features
-
Bilingual support: Separate layouts for English (
resume-en.html) and Arabic (resume-ar.html) with full RTL support - Data-driven architecture: All resume content stored in YAML files, supporting multiple data paths and versioning
- 12 resume sections: Experience, Education, Certifications, Courses, Volunteering, Projects, Skills, Recognition, Associations, Languages, Links, Interests
- Print-friendly: Optimized for PDF generation and printing
- SEO ready: Built-in support for multilingual SEO, sitemap, and feed generation
-
Arabic month support: Arabic date formatting included out of the box (
_data/ar/months.yml)
Quick Start
Installation
- Add to your Jekyll site's
Gemfile:
gem "bilingual-jekyll-resume-theme"- Add to your
_config.yml:
theme: bilingual-jekyll-resume-theme- Install dependencies:
bundle installBasic Setup
-
Copy sample configuration: Use
docs/_data/_config.sample.ymlas a starting point for your_config.yml -
Copy sample data files:
- English data: Copy files from
docs/_data/en/to your_data/en/directory (includesheader.ymlfor the intro paragraph) - Arabic data: Copy files from
docs/_data/ar/to your_data/ar/directory (includesheader.ymlfor the Arabic intro paragraph)
- English data: Copy files from
-
Create resume pages: Create pages using the
resume-enandresume-arlayouts:
---
layout: resume-en
permalink: /resume/en/
lang: en
t_id: resume
---- Run the development server:
bundle exec jekyll serveVisit http://localhost:4000 to see your resume!
Documentation
This theme is fully documented. Choose the guide that fits your needs:
π Configuration Guide
Complete guide to _config.yml settings. Learn how to configure sections, contact info, social links, analytics, and more. Start here for beginners.
π Data Structure Guide
Detailed documentation of all 12 data file types (experience, education, skills, etc.) with examples. Learn how to structure your YAML files and what fields are required vs optional.
π¨ Layouts Guide
Deep dive into how layouts work, how data flows through them, and how to create custom layouts. Useful for advanced customization.
π§© Includes Guide
Understanding the theme's include system, how sections render, and how to add new sections or customize existing ones.
π¨ SASS/SCSS Guide
Complete guide to the theme's styling system, how to customize colors/fonts, and how to override styles without forking the theme.
Project Structure
bilingual-jekyll-resume-theme/
βββ _layouts/ # HTML templates (default, resume-en, resume-ar, profile)
βββ _includes/ # Reusable components (sections, headers, analytics)
βββ _sass/ # SCSS stylesheets (RTL support, print styles)
βββ _data/ # Theme data (includes ar/months.yml)
βββ assets/ # CSS, images, favicons
βββ docs/ # Documentation and sample files
βββ _data/ # Sample data files (copy to your site's _data/)
βββ *.md # Documentation guides
Key Concepts
Data Paths
Recommended approach (for beginners): Use language-specific folders. The theme supports separate data paths for English and Arabic:
active_resume_path_en: "en" # Uses _data/en/* (recommended)
active_resume_path_ar: "ar" # Uses _data/ar/* (recommended)This is the recommended approach even if you're only using one language, as it keeps your data organized and makes it easy to add more languages later. Advanced users: You can place files directly in _data/ (root) by setting these to empty strings, but this is not recommended for beginners.
See the Configuration Guide for details.
Sample Files
The theme includes sample data files in docs/_data/en/ and docs/_data/ar/ that you can copy to your site. These files contain:
- Commented examples for all 12 section types
- Required vs optional field explanations
- Multiple examples per section
Arabic Month Support
The theme includes _data/ar/months.yml with Arabic month names already configured. You don't need to create this file manuallyβit's included in the theme.
Development
To develop this theme locally:
# Install dependencies
bundle install
# Run development server
bundle exec jekyll serve
# Build the gem
gem build bilingual-jekyll-resume-theme.gemspecFor more details, see WARP.md or the Development section below.
Requirements
- Jekyll 4.4+ (specified in
bilingual-jekyll-resume-theme.gemspec) - Required plugins (automatically included):
jekyll-feedjekyll-seo-tagjekyll-sitemapjekyll-redirect-from
Contributing
Bug reports and pull requests are welcome on GitHub. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
License
The theme is available as open source under the terms of the MIT License.
Support
- π Check the documentation guides for detailed information
- π Report issues on GitHub Issues
- π‘ See project_overview.md for a high-level architecture overview
Created by Khaldoon Mutahar | Version 0.4.0 | MIT License