This article refers to the modern, up-to-date installation method of installing the theme locally as Hugo module. It describes how to install, upgrade the theme, and write new articles.

Proxy (optional)

If you’re located at China mainland without VPN, the Hugo module download may fail.

There are two proxies for this: GOPROXY.CN and GOPROXY.IO .

1$  go env -w GOPROXY=https://goproxy.cn,direct
shell

or

1$ go env -w GOPROXY=https://goproxy.io,direct
shell

Installation

Install a new site from scratch

Step 1: Create skeleton site

  • Create and enter new site:
1$ hugo new site my-new-blog
2$ cd my-new-blog
shell

Step 2: Turn your new site into a Hugo module:

1$ hugo mod init github.com/me/my-new-blog
shell

Step 3: Declare hugo-theme-bootstrap module as a site dependency:

1$ hugo mod get github.com/razonyang/hugo-theme-bootstrap
shell

Step 4 (optional): Copy example site content into your site

  • Clone the hugo-theme-bootstrap repo into a temporary directory:
1$ git clone https://github.com/razonyang/hugo-theme-bootstrap /tmp/hugo-theme-bootstrap
shell

If you’re using Windows, use git clone https://github.com/razonyang/hugo-theme-bootstrap %temp%\hugo-theme-bootstrap instead.

  • Copy example site content:
1$ cp -a /tmp/hugo-theme-bootstrap/exampleSite/* .
shell

If you’re using Windows, use xcopy %TEMP%\hugo-theme-bootstrap\exampleSite /E instead.

  • Remove your file config.toml
1rm config.toml
shell
  • Delete the repo from your temporary directory again:
1$ rm -rf /tmp/hugo-theme-bootstrap
shell

At the top of your config/_default/config.toml, switch the uncommented theme:

1# theme = "hugo-theme-bootstrap" # install via git submodule
2theme = "github.com/razonyang/hugo-theme-bootstrap" # install via hugo module
toml

Step 5: Pull in dependencies via npm

  • Use node package manager npm to pull in dependencies for this theme:
1$ hugo mod npm pack
2$ npm install
shell

Step 6: Preview your site

  • Start hugo’s built-in webserver to preview your website:
1$ hugo server
shell

Install on an existing site

Step 1: Turn your existing site into a Hugo module:

1$ cd my-blog
2$ hugo mod init github.com/me/my-blog
shell

Step 2: Declare hugo-theme-bootstrap module as a site dependency:

1$ hugo mod get github.com/razonyang/hugo-theme-bootstrap
shell

Step 3 (optional): Copy example site content into your site

  • Clone the hugo-theme-bootstrap repo into a temporary directory:
1$ git clone https://github.com/razonyang/hugo-theme-bootstrap /tmp/
shell
  • Copy example site configuration and content into your site:
 1$ mkdir config
 2$ cp -a /tmp/hugo-theme-bootstrap/exampleSite/config/* ./config
 3$ cp -r /tmp/hugo-theme-bootstrap/exampleSite/content/about/ \
 4  /tmp/hugo-theme-bootstrap/exampleSite/content/archives/ \
 5  /tmp/hugo-theme-bootstrap/exampleSite/content/categories/ \
 6  /tmp/hugo-theme-bootstrap/exampleSite/content/contact/ \
 7  /tmp/hugo-theme-bootstrap/exampleSite/content/offline/ \
 8  /tmp/hugo-theme-bootstrap/exampleSite/content/search/ \
 9  /tmp/hugo-theme-bootstrap/exampleSite/content/series/ \
10  /tmp/hugo-theme-bootstrap/exampleSite/content/tags/ \
11  ./content
shell
  • Delete the repo from your temporary directory again:
1$ rm -rf /tmp/hugo-theme-bootstrap/
shell

At the top of your config/_default/config.toml, switch the uncommented theme:

1# theme = "hugo-theme-bootstrap" # install via git submodule
2theme = "github.com/razonyang/hugo-theme-bootstrap" # install via hugo module
toml

Step 4: Pull in dependencies via npm

  • Use node package manager npm to pull in dependencies for this theme:
1$ hugo mod npm pack
2$ npm install
shell

Step 5: Preview your site

  • Start hugo’s built-in webserver to preview your website:
1$ hugo server
shell

Theme Upgrade

  • Invoke hugo’s module get subcommand with the update flag:
1$ cd my-blog
2$ hugo mod get -u github.com/razonyang/hugo-theme-bootstrap
shell

Hugo will automatically pull in the latest theme version.

If you want to set your module to a certain version inside the hugo-theme-bootstrap theme repo, simply specific the name of the tag representing this version when updating your theme.

Latest version: Releases .

1$ hugo mod get -u github.com/razonyang/hugo-theme-bootstrap@version
shell

Instead of a version tag, you can also specify a commit hash inside the repo (here: de4a40f) when updating your theme:

1$ hugo mod get -u github.com/razonyang/hugo-theme-bootstrap@de4a40f
shell