Create GitHub or GitLab hosted website
GitHub, GitLab, Bitbucket and similar services allow free, fast static websites under usage limits. Netlify is recommended for use with any static site generator (SSG). GitHub Pages is Jekyll only. GitLab Pages may be used with any SSG.
GitHub Pages is noticeably easier to use than GitLab or Bitbucket Pages. GitLab runners are slow and build quota can run out before month’s end. Most should start with GitHub Pages for websites of any size. While we generally recommned Hugo over Jekyll, here’s how to setup a Jekyll website.
The Minimal Mistakes Jekyll template is one of numerous quick-loading Jekyll templates. Forget about AMP, get lightning-fast mobile browsing Google PageSpeed scores with Jekyll and Minimal Mistakes. This procedure is based on Linux (including Windows Subsystem for Linux).
apt install ruby-dev libssl-dev gem update --system
Configure Ruby Gem install without sudo and install Gem bundler (without sudo):
gem install jekyll bundler
Download and extract latest Minimal Mistakes release. Install needed Gems:
mv minimal-mistakes username.github.io cd username.github.io bundle install
username is your GitLab or GitHub username.
On GitHub/GitLab, create a new blank repository
username.github.io (for GitLab,
_config.yml, change the following lines to fit your needs: title, name, description, url, repository
Connect your new website to GitLab/GitHub (swapping
github as appropriate)
git init git add . git commit -am init git remote add origin https://github.invalid/username/username.github.io git push
Future edits will follow the usual
git commit -am foo git push
Now your page should be live at
See Github Pages
for custom domains and advanced configs.
_posts with filenames starting with date appear on the site.
Subfolders under _posts are transparently processed.
This is useful to organize posts by year for example, without affecting URL formatting.
appears to the public with URL:
Enable search icon in
_config.yml with key:
This enables site-wide Lunr instant search as the user types. The search icon is at the upper right corner of the toolbar on top of every page/post. It’s much better/faster than Google-based search of your site! This instant as-you-type search scales well for sites with thousands of pages.
Edit static navigation buttons in
To improve default formatting, copy/paste into
_config.yml these lines (anywhere in file):
defaults: - scope: path: "" values: layout: "single" toc: true author_profile: false read_time: false comments: true share: true related: true include: ["_pages"]
To configure the banner, add to
index.html header (between three dashes) the lines:
header: overlay_color: "#000" overlay_filter: "0.5" overlay_image: /images/header.jpg excerpt: "text overlaid on banner image"
Remove the author image by:
Remove category from permalinks: in case you later decide a page category should change, without screwing up your search engine results, in
Control the number of posts per archive page in
paginate: 10 # amount of posts to show
Reference: Jekyll install reference