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

or

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

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

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

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

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

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

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

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/* .

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

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

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

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

Step 6: Preview your site#

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

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

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

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

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/
  • 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
  • Delete the repo from your temporary directory again:
1$ rm -rf /tmp/hugo-theme-bootstrap/

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

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

Step 5: Preview your site#

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

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

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

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