There's a lot of open issues
A long-lived project that still receives updates
A flexible Jekyll theme for creating a clean, data-driven, bilingual (English & Arabic) resume.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies
 Project Readme

bilingual-jekyll-resume-theme

Latest release Gem Version

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

  1. Add to your Jekyll site's Gemfile:
gem "bilingual-jekyll-resume-theme"
  1. Add to your _config.yml:
theme: bilingual-jekyll-resume-theme
  1. Install dependencies:
bundle install

Basic Setup

  1. Copy sample configuration: Use docs/_data/_config.sample.yml as a starting point for your _config.yml

  2. Copy sample data files:

    • English data: Copy files from docs/_data/en/ to your _data/en/ directory (includes header.yml for the intro paragraph)
    • Arabic data: Copy files from docs/_data/ar/ to your _data/ar/ directory (includes header.yml for the Arabic intro paragraph)
  3. Create resume pages: Create pages using the resume-en and resume-ar layouts:

---
layout: resume-en
permalink: /resume/en/
lang: en
t_id: resume
---
  1. Run the development server:
bundle exec jekyll serve

Visit http://localhost:4000 to see your resume!

Documentation

This theme is fully documented. Choose the guide that fits your needs:

Complete guide to _config.yml settings. Learn how to configure sections, contact info, social links, analytics, and more. Start here for beginners.

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.gemspec

For 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-feed
    • jekyll-seo-tag
    • jekyll-sitemap
    • jekyll-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


Created by Khaldoon Mutahar | Version 0.4.0 | MIT License