A personal blog built with Jekyll and the Minimal Mistakes theme, hosted on GitHub Pages.
macOS:
brew install rubyUbuntu/Debian:
sudo apt-get install ruby-full build-essentialWindows: Download and install from RubyInstaller
gem install bundlerbundle install./run_local.shOr directly:
bundle exec jekyll serveOpen http://localhost:4000/blog in your browser.
The server watches for changes and auto-rebuilds. Press Ctrl+C to stop.
bundle exec jekyll buildOutput goes to the _site/ directory.
Posts live in the _posts/ directory and must follow this naming convention:
YYYY-MM-DD-title-of-post.md
---
layout: single
title: "Your Post Title"
date: 2026-01-04
categories: category1 category2
tags: tag1 tag2
---
Your content here. Write in Markdown.| Field | Required | Description |
|---|---|---|
layout |
Yes | Use single for blog posts |
title |
Yes | The post title (displayed as heading) |
date |
Yes | Publication date (YYYY-MM-DD) |
categories |
No | Space-separated categories |
tags |
No | Space-separated tags |
toc |
No | Set true to show table of contents |
toc_sticky |
No | Set true to make TOC sticky on scroll |
excerpt |
No | Custom excerpt for post previews |
# H1
## H2
### H3**bold**
*italic*
~~strikethrough~~
`inline code`[Link text](https://example.com)
```python
def hello():
print("Hello, world!")
```Code blocks don't wrap text - long lines require horizontal scrolling, which is poor UX. Break long commands across multiple lines using backslashes:
Bad (requires scrolling):
```bash
/some-command "very long argument that goes on and on and requires horizontal scrolling to read"
```Good (wraps naturally):
```bash
/some-command \
"very long argument that goes on and on" \
--flag value
```For long strings inside quotes, you can also break within the string:
```bash
/command \
"First part of a long string. \
Second part continues here."
```- Unordered item
- Another item
1. Ordered item
2. Another item> This is a blockquote| Header 1 | Header 2 |
|----------|----------|
| Cell 1 | Cell 2 |**Note:** This is a notice.
{: .notice}
**Warning:** This is a warning.
{: .notice--warning}
**Success:** This worked!
{: .notice--success}Minimal Mistakes includes several color skins. Change in _config.yml:
minimal_mistakes_skin: "dark" # "default", "air", "aqua", "contrast", "dark", "dirt", "neon", "mint", "plum", "sunrise"Create assets/css/main.scss to add custom styles:
---
---
@import "minimal-mistakes/skins/{{ site.minimal_mistakes_skin | default: 'default' }}";
@import "minimal-mistakes";
// Your custom styles here-
Find a theme at rubygems.org or jekyllthemes.io
-
Update
Gemfile:gem "jekyll-theme-name"
-
Update
_config.yml:theme: jekyll-theme-name
-
Run
bundle installand restart the server
Edit _config.yml to customize:
title: Your Blog Title
subtitle: Your tagline
description: A short description
author:
name: Your Name
bio: "A short bio"
location: "City, Country"
links:
- label: "Email"
icon: "fas fa-fw fa-envelope-square"
url: "mailto:you@example.com"
- label: "GitHub"
icon: "fab fa-fw fa-github"
url: "https://github.com/username"Note: Changes to _config.yml require a server restart.
Push to the main branch and GitHub Pages will automatically build and deploy.
The site will be available at: https://Looking4OffSwitch.github.io/blog