Troubleshooting

v2.1

Common issues and solutions for Jekyll and theme problems

This guide covers common issues you might encounter and how to resolve them.

Build Errors

Gemfile Lock Conflict

Error:

Could not find gem 'jekyll (~> 4.3)' in any of the gem sources

Solution: Delete Gemfile.lock and reinstall:

rm Gemfile.lock
bundle install

Plugin Not Found

Error:

Unknown tag 'include components/...'

Solution: Ensure all plugins are in your Gemfile:

group :jekyll_plugins do
  gem "jekyll-feed"
  gem "jekyll-seo-tag"
  gem "jekyll-sitemap"
  gem "jekyll-paginate-v2"
end

Then run:

bundle install

Liquid Syntax Error

Error:

Liquid syntax error: Unknown tag 'raw'

Solution: This usually means you’re using Liquid tags in a context where they’re not supported. Wrap code examples in raw/endraw tags to prevent Liquid processing.

YAML Front Matter Error

Error:

YAML Exception: mapping values are not allowed here

Solution: Check your front matter for:

  • Missing colons
  • Incorrect indentation
  • Special characters not in quotes
# Wrong
title: My Post: A Guide

# Correct
title: "My Post: A Guide"

GitHub Pages Issues

Site Not Building

Symptoms:

  • Push completes but site doesn’t update
  • No build error in GitHub Actions

Solutions:

  1. Check GitHub Pages settings:
    • Go to Settings > Pages
    • Verify source branch is correct
  2. Check for build restrictions:
    • Go to Settings > Actions > General
    • Ensure Actions are allowed
  3. View build logs:
    • Go to Actions tab
    • Click on the latest workflow run

404 on All Pages

Cause: Incorrect baseurl configuration

Solution:

# For username.github.io/repo-name
url: "https://username.github.io"
baseurl: "/repo-name"

# For custom domain
url: "https://example.com"
baseurl: ""

Assets Not Loading

Symptoms:

  • CSS/JS files return 404
  • Images not displaying

Solution: Use relative_url filter for all assets:

<link href="{{ '/assets/css/style.css' | relative_url }}" rel="stylesheet">
<img src="{{ '/assets/images/logo.png' | relative_url }}" alt="Logo">

Remote Theme Not Working

Error:

Build Error: could not read file

Solutions:

  1. Check the remote theme syntax:
    remote_theme: E-Segments/minima-plus
    
  2. Add the remote theme plugin:
    plugins:
      - jekyll-remote-theme
    
  3. Verify the theme repository exists and is public

Search Not Working

Search Returns No Results

Causes:

  • Search index not generated
  • JavaScript error

Solutions:

  1. Verify search.json exists:
    • Visit yoursite.com/assets/search.json
    • Check it contains your content
  2. Check browser console for errors:
    • Press F12 > Console tab
    • Look for red error messages
  3. Ensure search is enabled:
    theme_config:
      features:
     search: true
    

Search Index Too Large

Symptom: Search loads slowly or fails

Solution: Limit content indexed in assets/search.json:

{% for post in site.posts limit: 100 %}
  <!-- Index only recent posts -->
{% endfor %}

Lunr.js Not Loading

Error:

ReferenceError: lunr is not defined

Solution: Check that Lunr.js CDN is accessible. If blocked, download and serve locally:

<script src="/minima-plus/assets/js/lunr.min.js"></script>

Dark Mode Issues

Dark Mode Not Toggling

Causes:

  • JavaScript error
  • localStorage blocked

Solutions:

  1. Check browser console for errors

  2. Clear localStorage:
    localStorage.removeItem('theme');
    
  3. Verify dark mode is enabled:
    theme_config:
      features:
     dark_mode: true
    

Flash of Wrong Theme

Symptom: Page briefly shows light mode before switching to dark

Solution: Add this script to <head> before CSS:

<script>
  if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
    document.documentElement.classList.add('dark');
  }
</script>

Styles Not Changing

Cause: CSS not using Tailwind dark mode classes

Solution: Use dark: prefix for dark mode styles:

.my-element {
  background: white;
}

.dark .my-element {
  background: #1e293b;
}

Changelog Not Loading

GitHub API Rate Limit

Error:

API rate limit exceeded

Solutions:

  1. Wait: Rate limit resets hourly

  2. Cache locally: Download releases once:
    curl -s https://api.github.com/repos/owner/repo/releases > _data/releases.json
    
  3. Use GitHub token (for higher limits): Add to GitHub Actions workflow:
    env:
      GITHUB_TOKEN: $
    

No Releases Showing

Causes:

  • Repository has no releases
  • github_repo not configured

Solution:

# _config.yml
github_repo: "username/repo"

Create releases on GitHub:

  1. Go to your repository
  2. Click “Releases” > “Create a new release”
  3. Add version tag and release notes

Markdown Not Rendering

Symptom: Release notes show raw markdown

Solution: The theme uses marked.js to render markdown. Verify it’s loading:

<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>

Pagination Problems

Pagination Not Working

Causes:

  • Plugin not installed
  • Wrong front matter

Solutions:

  1. Install the plugin:
    gem "jekyll-paginate-v2"
    
  2. Configure in _config.yml:
    pagination:
      enabled: true
      per_page: 6
    
  3. Add to page front matter:
    ---
    layout: blog
    pagination:
      enabled: true
    ---
    

All Posts on One Page

Cause: Using site.posts instead of paginator.posts

Solution:

{% for post in paginator.posts %}
  <!-- Post content -->
{% endfor %}

Wrong Post Count

Cause: Drafts included in count

Solution: Run without drafts:

bundle exec jekyll serve

To include drafts:

bundle exec jekyll serve --drafts

Component Issues

Component Not Rendering

Causes:

  • Wrong include path
  • Missing parameters

Solution: Check the include path matches exactly:

{% include components/card.html title="Test" %}

Not:

{% include card.html %}

Styles Missing

Cause: CSS not loaded or component outside prose

Solution: Wrap components properly:

<div class="not-prose">
  {% include components/card.html %}
</div>

JavaScript Not Running

Cause: Script loaded before DOM ready

Solution: Ensure scripts run after DOM loads:

document.addEventListener('DOMContentLoaded', function() {
  // Component initialization
});

Performance Issues

Slow Build Time

Solutions:

  1. Exclude unnecessary files:
    exclude:
      - node_modules/
      - vendor/
      - .git/
      - "*.md"
    
  2. Use incremental builds:
    bundle exec jekyll serve --incremental
    
  3. Limit collection size:
    collections:
      docs:
     output: true
     limit: 50  # In development
    

Large Page Size

Solutions:

  1. Optimize images:
    • Use WebP format
    • Compress with tools like TinyPNG
    • Use responsive images
  2. Lazy load images:
    <img src="image.jpg" loading="lazy" alt="Description">
    
  3. Minimize CSS/JS:
    sass:
      style: compressed
    

Getting More Help

If your issue isn’t covered here:

  1. Search existing issues: GitHub Issues

  2. Check Jekyll documentation: Jekyll Docs

  3. Ask the community: Jekyll Talk Forum

  4. Open a new issue: Include:

    • Error message
    • Jekyll version (jekyll -v)
    • Ruby version (ruby -v)
    • Relevant config/code

Quick Reference

Issue Quick Fix
Build fails rm Gemfile.lock && bundle install
404 errors Check baseurl in _config.yml
Search broken Verify /assets/search.json exists
Dark mode stuck localStorage.removeItem('theme')
Changelog empty Add github_repo to config
Pagination off Add jekyll-paginate-v2 plugin