My Ghost Headline theme fork with dark mode

This blog is powered by the free, open source Ghost blogging software.

Why I like the Headline theme

For my personal site I wanted a dark mode theme that would work well for writing about a range of unrelated topics. I also go for months without writing anything at all, so I wanted a front page that could feature more "durable" content instead of whatever happened to be the most recent.

Changes I made to the Headline theme

The Headline theme was designed with local newspapers in mind, but with a few tweaks it also works well for personal sites. Here are the changes I've made so far. This list may get out of date over time!

  • Since there’s only one author, author photos and bylines have been hidden.
  • “Reading time” was hidden
  • Allows admin to support Light, Dark or Auto in Settings
  • Auto mode sets the color scheme based on user preference
  • Titles on tag pages are “Title Case” instead of UPPERCASE.
  • “Latest” items on home page has been replaced with “Featured” items.
  • Less whitespace in the footer
  • Smaller “header” area
  • Narrower top bar
  • Custom archive page to list every post.

For details on how to turn a Ghost theme into dark mode see this:

How to turn a Ghost theme to dark mode
There are a lot of things I like about the Edge theme, but the black and grey on white color scheme didn’t work. Hack the theme or code injection?

Using my dark mode Headline theme

I have a the Github repo linked below for my fork, with more docs and instructions in the README there. This is a personal fork with no promises of how it will evolve over time. I recommend using it as inspiration for your own fork instead of using it directly!

Note: my changes are on the "markstos" branch, not the the "main" branch!

GitHub - markstos/Headline-markstos at markstos
A theme for Ghost highlighting multiple tags on the homepage - GitHub - markstos/Headline-markstos at markstos

How I maintain my Ghost theme fork

I use Git to maintain my fork. When I want to merge in new changes that have been made from the official theme, I use git rebase to replay my changes on top of the latest official theme and resolve any conflicts.

The last time I did this, there were conflicts in assets/built – assets that automatically created during a built step. To resolve that conflict, I deleted everything in the assets/built directory and then ran npx gulp build to re-build all the assets from my fork, I could then git add the changed files and proceed with the git rebase When there was a complaint about gulp missing, I used yarn add --dev gulp to add it.

Automatically deploying theme changes

Currently, I manually upload a new theme "zip" file after making changes. But it's possible have a Ghost blog be automatically updated as soon as theme changes are pushed to Github. This post has the details of setting up the automation:

How to Deploy Ghost Themes Using GitHub Actions
Making changes to the themes on a Ghost blog is a tedious process. This can be simplified with GitHub Actions.