Setup a github blog
Updated: ${mdate}$
Initial setup
This site is, obviously, hosted on github.
Github can be used to host a web site, but it is a bit daunting for a beginner.
Github uses the Jekyll system for it’s site and I at first thought it necessary to install and understand Jekyll. But this is not necessary.
After setting up a repository with the special name “
After that, just add your blog posts and github automatically detects changes and rebuilds the site.
I would advise using a normal web browser to do the initial set up. Afterwards, posts can be added using the Github android app on a phone or tablet or a normal web browser.
Step 0 Create a Git account
Your blogsite will be available at
Step 1 Create a repository for your site
The clearest guide I have found to set up the repository for the site is at the official github site quickstart.
However, that sets up a page based site, not a blog. We need to change the theme and set up the initial file structure. bryansplace.github.io |- _config.yml |- index.md |- README.md |- about.md _ _posts |- 2026-06-01-first-post.md
Blog posts will go in a sub-folder called _posts. The index.md contains the ‘home’ page. The about.md is the typical info about you. The README.md doesn’t go into the blog site but is visible to anyone visiting the github source repository.
Step 2 File _config.yml
The configuration in the _config.yml files needs to be changed; instead of using minimal theme which sets up a pages based site, use the minima theme which is for a blog site with posts.
There are also two changes I make to the minima theme. 1) Hide the default rss site feed link which I don’t want, and 2) Add the possibility to incude a table of contents to long posts.
Here is a modified _config.yml file
# _config.yml
theme: minima
title: Bryan's Place
description: >
My blog. This description will go into the footer on each page.
The above will give you a bare bones site
minima: hide_site_feed_link: true
header_pages: - about.md
plugins:
- jekyll-toc ```
Step 3 index.md
The index.md file is the home page and can be something like
---
layout: home
title: Welcome to Bryan's Place!
permalink: / # This ensures it's the root URL
---
Hello!
This is in the index.md file
The — marks and what is in-between is called frontmatter; I’ll come to that below.
Different Jekyll themes can do different things and might require different frontmatter.
Step 4 about.md
I’m not a great fan of aboutme information, but I’ve left it in for completeness
---
layout: page
title: About me....
permalink: /about/
---
Whatever you want blah blah blah.....
Step 5 First post
Post file names must start with a date in the format YYYY-MM-DD followed by a name with no spaces. The date can be overidden in the front matter
In the _posts directory, the 2025-06-01-first-post.md file contains something like
---
layout: post
title: "First Post"
date: 2025-06-01
---
Welcome to my first post
Note: The required filename format for posts is YEAR-MONTH-DAY-title.md where YEAR_MONTH_DAY is in YYYY-MM-DD format and title has no spaces.
View site
Once the above files are setup, you can use your browser to go to yourusername.github.io and see the initial setup.
Tidy up
The initial set up is….well…very initial. A few changes are necessary to make the blog presentable.
Jekyll is not required. Jekyll would be nice as changes can be previewed before ‘pushing’ changes to your public site.
Changes can be made either by logging into github or by using the github android app on a tablet or phone.
To improve the look a little, we can add a title and description by updating the _config.yml file. We’ll also add an add-in to improve search engine scanning, and a feature to enable a table of contents generation for long posts.
theme: minima
plugins:
- jekyll-seo-tag
title: My Minima Blog
author: Your Name
description: A blog based on Minima, with ToC and no RSS
markdown: kramdown
kramdown:
input: GFM
toc_levels: 1..3
`
## Zettel notes
I looked at various applications to create markdown notes and eventually settled on [Zettel notes](https://www.zettelnotes.com).
I set up a Github repository that is synced with [Bryansplace.github.io]( https://github.com/bryansplace/bryansplace.github.io.git). This repository has to be in the apps internal storage.
I have a Notes repository for misc and draft notes.
## Front Matter
This is the metadata stuff that goes at the top of the page. I think it varies depending on which system (Jekyll) and which Theme.
For the Jekyll Minima theme, the essential front matter fields are layout, title, date (for posts), and categories or tags. Optional fields like excerpt, author, published, and permalink offer additional control and customization. The theme also supports SEO-related fields such as description and image for better social media integration.
For a blog post, I think the following should be defined in a template
published: true or false layout: post or page title: whatever date: overrides date from the name categories: tags: — ```