• We’ll be using yml/yaml format for all examples down below, I recommend using yml over toml as it is easier to read.
  • You can find any YML to TOML converters if necessary.


Follow Quick Start guide to setup hugo and create a new site.

Note: Use -f to select yml format

hugo new site <name of site> -f yml

Make sure you install latest version of hugo(>=0.74.0).

After you have created a new site, at Step 3 follow the steps:

Method 1

Inside the folder of your Hugo site, run:

git clone themes/PaperMod --depth=1

Note: You may use --branch v3.0 to end of above command if you want to stick to specific release.

Updating theme :

cd themes/PaperMod
git pull

Method 2

you can use as submodule with

git submodule add themes/PaperMod --depth=1
git submodule update --init --recursive # needed when you reclone your repo (submodules may not get cloned automatically)

Note: You may use --branch v4.0 to end of above command if you want to stick to specific release.

Updating theme :

git submodule update --remote --merge

Method 3

Or you can Download as Zip from Github Page and extract in your themes directory

Direct Links:

Finally …

Add in config.yml:

theme: "PaperMod"

Sample config.yml

Example Site Structure is present here: exampleSite

Use appropriately

baseURL: ""
title: ExampleSite
paginate: 5
theme: PaperMod

enableRobotsTXT: true
buildDrafts: false
buildFuture: false
buildExpired: false

googleAnalytics: UA-123-45

    disableXML: true
    minifyOutput: true

    env: production # to enable google analytics, opengraph, twitter-cards and schema.
    title: ExampleSite
    description: "ExampleSite description"
    author: Me
    # author: ["Me", "You"] # multiple authors
    images: ["<link or path of image for opengraph, twitter-cards>"]

    defaultTheme: auto # dark, light
    disableThemeToggle: false

    ShowReadingTime: true
    ShowShareButtons: true
    disableSpecial1stPost: false
    comments: false
    hidemeta: false
    showtoc: false
    tocopen: false

        # disableHLJS: true # to disable highlight.js
        # disableFingerprinting: true
        favicon: "<link / abs url>"
        favicon16x16: "<link / abs url>"
        favicon32x32: "<link / abs url>"
        apple_touch_icon: "<link / abs url>"
        safari_pinned_tab: "<link / abs url>"

        text: "Home"
        icon: /apple-touch-icon.png
        iconHeight: 35

    # profile-mode
        enabled: false # needs to be explicitly set
        title: ExampleSite
        subtitle: "This is subtitle"
        imageUrl: "<img location>"
        imageWidth: 120
        imageHeight: 120
        imageTitle: my image
            - name: Posts
              url: posts
            - name: Tags
              url: tags

    # home-info mode
        Title: "Hi there \U0001F44B"
        Content: Welcome to my blog

        - name: twitter
          url: ""
        - name: stackoverflow
          url: ""
        - name: github
          url: ""

            SiteVerificationTag: "XYZabc"

        hidden: true # hide everywhere but not in structured data
        hiddenInList: true # hide on list pages and home
        hiddenInSingle: true # hide on single page

    # for search
        isCaseSensitive: false
        shouldSort: true
        location: 0
        distance: 1000
        threshold: 0.4
        minMatchCharLength: 0
        keys: ["title", "permalink", "summary", "content"]
        - identifier: categories
          name: categories
          url: /categories/
          weight: 10
        - identifier: tags
          name: tags
          url: /tags/
          weight: 20
        - identifier: example
          weight: 30
# Read:
# pygmentsUseClasses: true
# markup:
#     highlight:
#         # anchorLineNos: true
#         codeFences: true
#         guessSyntax: true
#         lineNos: true
#         style: monokai


title: "My 1st post"
date: 2020-09-15T11:30:03+00:00
# weight: 1
# aliases: ["/first"]
tags: ["first"]
author: "Me"
# author: ["Me", "You"] # multiple authors
showToc: true
TocOpen: false
draft: false
hidemeta: false
comments: false
description: "Desc Text."
disableHLJS: true # to disable highlightjs
disableShare: false
disableHLJS: false
searchHidden: true
    image: "<image path/url>" # image path/url
    alt: "<alt text>" # alt text
    caption: "<text>" # display caption under cover
    relative: false # when using page bundles set this to true
    hidden: true # only hide on current single page


You can use it by creating archetypes/

hugo new --kind post <name>