Skip to content
A port of ghostwriter theme to Hugo.
Branch: master
Clone or download
Pull request Compare This branch is 114 commits ahead, 28 commits behind roryg:master.
Juraj Bubniak
Latest commit 5f9c05c Jan 18, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
images Add images for hugo themes showcase. Nov 30, 2015
static Use css to style reading time. Jan 19, 2019
.gitignore update LICENSE Apr 26, 2015
webpack.config.js Update to webpack 3. Jun 24, 2017
yarn.lock Update js packages. Jan 19, 2019


Enhanced port of the Ghost "ghostwriter" theme to the Hugo site generator.


Inside the folder of your Hugo site run:

$ mkdir themes
$ cd themes
$ git clone

For more information read the official setup guide of Hugo.


After installing the theme you need to install javascript dependencies. You can use npm or yarn to install them from package.json. We are using webpack to build and package styles. In order to develop with realtime reloading in the browser you can use this powerful combo:

hugo server
yarn run watch

To update theme styles edit the styles/style.scss file. You can then either use the watch command or run build to compile the styles:

yarn run build

Example config.toml

To customize your theme you can use following params:

baseurl = ""
title = "mytitle"
theme = "ghostwriter"
languageCode = "en-us"
copyright = "My Name"
googleAnalytics = "XXX"
disqusShortname = "XXX"


    disable = true

    anonymizeIP = true
    respectDoNotTrack = true
    useSessionStorage = false

    name = "My Name"
    profile = ""

    tag = "tags"

    intro = true
    headline = "My headline"
    description = "My description"
    github = ""
    gitlab = ""
    linkedin = ""
    gplus = ""
    twitter = ""
    stackoverflow = ""
    email = ""
    opengraph = true
    shareTwitter = true
    shareFacebook = true
    shareGooglePlus = true
    shareLinkedIn = false
    dateFormat = "Mon, Jan 2, 2006"
    highlightJsUrl = ""
    highlightJsLocalUrl = ""
    exponeaJsUrl = ""
    exponeaTarget = ""
    exponeaToken = ""
    exponeaTrackVisits = false
    readingTime = true
    readingTimeText = "Estimated reading time:"

    post = "/:year/:month/:day/:filename/"

    name = "Blog"
    url = "/"
    weight = 1

    name = "Projects"
    url = "/project/"
    weight = 2

    name = "Contact"
    url = "/page/contact/"
    weight = 3

    name = "About"
    url = "/page/about/"
    weight = 4

You can also inject arbitrary HTML into <head> simply by overriding the extra-in-head.html partial, which is meant for that purpose.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.