Step 1: Setting Up the RepositoryPermalink
Step 1.1: Create a GitHub RepositoryPermalink
Go to GitHub and set up a new repository with the format username.github.io
(e.g., mattlifetech.github.io
).
Step 1.2: Clone the Repository to Your PCPermalink
On your PC, download and install GitHub Desktop. Open GitHub Desktop and clone your newly created repository (username.github.io
).
Step 1.3: Create a GemfilePermalink
Inside the cloned repository folder (username.github.io
), create a file named Gemfile.
Open the Gemfile with Notepad and paste the following content:
source "https://rubygems.org"
gem "github-pages", group: :jekyll_plugins
gem "jekyll-include-cache", group: :jekyll_plugins
Then, run the following command in the terminal (Command Prompt, PowerShell, or Git Bash) inside the username.github.io
directory:
bundle install
File structure to expect:Permalink
|-- .git
|-- assets # Manual create
|-- css
|-- main.scss # Thumbnail setting for post
|-- images # Stores images used on websites
|-- CNAME # (If using a custom domain)
|-- Gemfile # File copy/ created for first powershell command run
|-- Gemfile.lock # Auto created
|-- index.html # Manual create/ copy + entries_layout: grid
|-- _config.yml # Manual create/ copy & start edit
|-- _data
|-- navigation.yml # Top of page category setting
|-- ui-text.yml # UI text customization
|-- _includes
|-- archive-single.html # Template for archive (categories) pages
|-- head.html # HTML head section & browser tab logo link
|-- _pages
|-- about.md # About page
|-- home.md # Custom home page + entries_layout: grid
|-- year-archive.md # Yearly archive page
|-- _posts
|-- 2025-02-21-template.md # Example post to create
|-- _site # Auto created & refresh
|-- assets
|-- css
|-- images # Auto create = DONT NOT put website image here
Step 1.4: Download _config.yml
from Minimal Mistakes ThemePermalink
Go to the Minimal Mistakes GitHub repository and download the _config.yml
file.
Place this file inside your username.github.io
directory.
Step 2: Setting Up the Minimal Mistakes ThemePermalink
Step 2.1: Modify _config.yml
Permalink
Make sure _config.yml
includes:
remote_theme: "mmistakes/minimal-mistakes@4.26.2"
plugins:
- jekyll-include-cache
Step 2.2: Add Category and Tag Archive PagesPermalink
Create two new files in the root folder:
categories.md
---
layout: archive
title: "Categories"
permalink: /categories/
author_profile: true
---
tags.md
---
layout: archive
title: "Tags"
permalink: /tags/
author_profile: true
---
Step 2.3: Enable Liquid Archive Method in _config.yml
Permalink
Ensure these lines exist in _config.yml
:
category_archive:
type: liquid
path: /categories/
tag_archive:
type: liquid
path: /tags/
Step 2.4: Set Up NavigationPermalink
Modify _data/navigation.yml
to include category and tag pages:
main:
- title: "Home"
url: /
- title: "Categories"
url: /categories/
- title: "Tags"
url: /tags/
- title: "About"
url: /about/
Step 2.5: Create a Home Page for Grid LayoutPermalink
Create _pages/home.md
and add:
---
layout: home
title: "Welcome to My Blog"
permalink: /
author_profile: true
header:
overlay_image: /assets/images/header.webp
caption: "Welcome to My Blog"
entries_layout: grid
---
Step 2.6: Create an index.html
File for Grid LayoutPermalink
Create index.html
in the root directory:
---
layout: home
title: "Welcome to My Site"
author_profile: true
entries_layout: grid
---
Step 2.7: Add Styling for Post Thumbnails & Grid LayoutPermalink
Create or modify assets/css/main.scss
:
.post-description {
font-size: 1.2rem;
color: #666;
font-style: italic;
margin-top: -10px;
margin-bottom: 20px;
}
.post-thumbnail {
width: 100%;
height: auto;
max-height: 150px;
object-fit: cover;
border-radius: 8px;
}
.archive {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 20px;
}
.archive__item-teaser img {
width: 100%;
height: auto;
max-height: 150px;
object-fit: cover;
border-radius: 8px;
}
Step 2.8: Create a Sample PostPermalink
Inside _posts/
, create a sample Markdown file 2025-02-21-sample-post.md
:
---
title: "My First Blog Post"
layout: single
excerpt: "This is a sample post using the Minimal Mistakes theme."
date: 2025-02-21
header:
overlay_image: /assets/images/sample-header.webp
teaser: /assets/images/sample-thumbnail.webp
categories: [Blog]
tags: [Sample, Jekyll]
---
Welcome to my first blog post!
Important - “teaser: ” is the thumbnail picturePermalink
Step 3: Test the Site LocallyPermalink
Before pushing changes, test your site locally by running:
bundle exec jekyll serve
Visit http://localhost:4000
in your browser to check if everything works as expected.
Step 4: Push Changes to GitHubPermalink
Once all the files are in place and the site is working locally, use GitHub Desktop to commit your changes and push them to GitHub.
Your website should now be live at https://username.github.io
!
GitHub Repo in case you need to download the filesPermalink
https://github.com/mattlifetech/mmistakegithub
CreditsPermalink
This guide is based on the Minimal Mistakes Jekyll theme by Michael Rose. Special thanks to the open-source community for maintaining this great theme.