SexyJekyll Theme
A modern, feature-rich Jekyll theme designed for professional blogs and personal websites. Built with accessibility, performance, and user experience in mind.
Features
Design & User Experience
- Modern Design: Clean, minimalist aesthetic
- Fully Responsive: Mobile-first design that works on all devices
- Reading Progress: Visual indicator showing article reading progress
- Print Styles: Optimized layouts for printing
Content & Navigation
- Advanced Search: Instant client-side search with keyword highlighting
- Related Posts: Smart post recommendations based on categories and tags
- Categories: Category-based filtering and organization
- Pagination: Customizable post pagination
SEO & Social
- SEO Optimized: Meta tags, Open Graph, Twitter Cards
- Structured Data: JSON-LD schema for better search engine understanding
- RSS Feed: Automatic feed generation
- Sitemap: Auto-generated sitemap for search engines
Accessibility
- WCAG 2.1 Level AA: Comprehensive accessibility support
- Skip to Content: Keyboard navigation helpers
- Semantic HTML: Proper HTML5 landmarks and structure
- ARIA Labels: Screen reader friendly
- Reduced Motion: Respects user motion preferences
- High Contrast: Excellent color contrast ratios
Performance
- Responsive Images: WebP format with multiple sizes
- Lazy Loading: Images load as needed
- Optimized CSS/JS: Minified and efficient code
- Fast Load Times: Optimized for performance
Developer Features
- Syntax Highlighting: Code blocks with line numbers (Rouge)
- Reading Time: Automatic reading time estimation
- Multi-language: Full i18n system supporting English, Italian, German, French, and Spanish
-
Customizable: Easy configuration via
_config.yml - Well Documented: Comprehensive documentation included
AI & LLM Features
- llms.txt Support: Automatic generation of AI-friendly content summaries
-
Per-Post llms.txt: Each blog post generates its own dedicated llms.txt file at
/blog/YYYY/MM/DD/post-slug/llms.txt - Site-level llms.txt: Main llms.txt file at root with site overview and content structure
- Structured Content: Clean, semantic HTML5 markup optimized for AI crawlers
- JSON-LD Schema: Rich structured data for better content understanding
- AI Crawler Friendly: Welcoming approach to AI indexing with clear instructions
Installation
As a Ruby Gem (Recommended)
Add this line to your Jekyll site's Gemfile:
gem "sexyjekyll-theme"And add this line to your Jekyll site's _config.yml:
theme: sexyjekyll-themeThen execute:
bundle installRemote Theme (GitHub Pages)
If you're using GitHub Pages, add this to your _config.yml:
remote_theme: amargiovanni/sexyjekyll-themeManual Installation
- Download or clone this repository
- Copy the files to your Jekyll site
- Update your
_config.ymlwith the theme settings
Quick Start
-
Install the theme using one of the methods above
-
Configure your
_config.yml:
# Site settings
title: Your Name
email: your.email@example.com
description: Your site description
baseurl: ""
url: "https://yoursite.com"
lang: en # Options: en, it, de, fr, es
# Author information
author:
name: Your Name
email: your.email@example.com
linkedin: https://www.linkedin.com/in/yourprofile/
bluesky: https://bsky.app/profile/yourhandle
# Navigation logo
nav_logo:
type: text # 'text' or 'image'
text: YN # Your initials or text
# image: /assets/img/logo.png # Or path to logo image
# alt: Your Logo
# Hero section
hero:
name: Your Name
role: Your Role
subtitle: Your Company or Tagline
tagline: Your personal tagline
description: A brief description about you
# Blog section
blog:
title: Blog
description: Your blog description
# Contact section
contact:
title: Get In Touch
description: Contact page description
links:
- name: Email
url: mailto:your.email@example.com
type: email
- name: LinkedIn
url: https://www.linkedin.com/in/yourprofile/
type: linkedin-
Create your first post in
_posts/:
---
layout: post
title: "Your First Post"
subtitle: "Optional subtitle"
date: 2025-11-01
categories: blog tech
---
Your post content here...- Run Jekyll:
bundle exec jekyll serveVisit http://localhost:4000 to see your site!
Configuration
Available Layouts
-
default- Base layout for all pages -
home- Homepage with hero section -
blog- Blog listing page -
post- Individual blog post -
about- About page -
contact- Contact page with social links -
category- Category-specific post listing -
404- Custom 404 error page
Plugins
The theme uses these Jekyll plugins:
Standard Plugins:
-
jekyll-feed- RSS feed generation -
jekyll-seo-tag- SEO meta tags -
jekyll-paginate- Post pagination -
jekyll-sitemap- Sitemap generation -
liquid_reading_time- Reading time estimation -
jekyll_picture_tag- Responsive images
Custom Plugins:
-
llms_txt_generator- Automatically generates llms.txt files for each blog post and creates AI-friendly content summaries -
auto_related_posts- Intelligent post recommendation system based on categories, tags, and content similarity using TF-IDF-like algorithm -
category_generator- Automatically creates dedicated pages for each category with filtered post listings -
localized_date- Liquid filter for formatting dates according to the selected language (e.g., "15 January 2025" in English, "15 gennaio 2025" in Italian)
Customization
Colors and Styles
Edit css/style.css to customize colors, fonts, and styles.
Social Links
Configure social links in _config.yml under contact.links. Supported types:
- email, linkedin, bluesky, twitter, github, instagram, facebook
- youtube, mastodon, telegram, whatsapp, medium, reddit
- discord, tiktok, twitch, slack
Documentation
Detailed documentation is available in the following files:
- I18N.md - Internationalization system and language support
- ACCESSIBILITY.md - Accessibility features and testing
- SEARCH.md - Search functionality
- READING_PROGRESS.md - Reading progress indicator
- STRUCTURED_DATA.md - SEO structured data
- SOCIAL_SHARE.md - How to add social sharing (optional)
- COMMENTS.md - How to add comments (optional)
- CHANGELOG.md - Version history
- PUBLISHING.md - Guide to publish your theme
Available in Multiple Languages
- 🇬🇧 README.md - English
- 🇮🇹 README.it.md - Italian
- 🇩🇪 README.de.md - German
- 🇫🇷 README.fr.md - French
- 🇪🇸 README.es.md - Spanish
Browser Support
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- Mobile browsers (iOS Safari, Chrome Mobile)
Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Support
If you encounter any issues or have questions:
- Open an issue on GitHub
- Check the documentation
License
This project is licensed under the MIT License - see the LICENSE file for details.
Credits
Created by Andrea Margiovanni
Acknowledgments
- Built with Jekyll
- Syntax highlighting by Rouge
- Icons and design inspiration from modern web design trends
If you find this theme useful, please consider giving it a star on GitHub!
