Before Start
It’s been a long time since I wrote a blog post last time. That’s because I often reinstall my system on computer, and every time I install and configure the blog of hexo on my computer is a troublesome thing. But recently, I discovered hugo, a simple and easy-to-use blog system, which can keep me away from hexo, which is slow and troublesome to configure and install. It has a great experience to use and I happened to change a blog theme, so I decided to use hugo to build my new blog. This article briefly introduces how to install and use hugo.
Install
You may need
- golang
- git
- text editor you love
You must needn’t
- nodejs
- npm

Install hugo
Install hugo is very simple. Take fedora system as an example, simply run this command:
sudo dnf install hugo
Create Site Directory
Create your site directory with this command:
hugo new site blog
Change to work directory:
cd blog
Use git for version control:
git init
Install Theme
Pick up your favorite theme, clone it into ./themes directory directly.
git clone https://github.com/adityatelange/hugo-PaperMod themes/PaperMod --depth=1
Use
--depth=1to ignore the commit history.
Of course, you can download a zip file and unzip it.
If you wants to make version control more convenient and update more easily, use this command to add submodule:
git submodule add https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod
Clone submodules when reclone repo:
git submodule update --init --recursive
Update theme:
git submodule update --remote --merge
Config
hugo support many config file format. The yaml file is more readable, so in the next article we will use yaml.
Different from hexo, you have only one config file, just follow you theme’s doc and edit config file.
Apply Theme
theme: "PaperMod"
Edit Theme Config
Different thems has different way to config, please follow your theme’s doc.
Follow config for reference:
baseURL: "https://aimerneige.com/"
languageCode: "en-us"
title: "AimerNeige's Blog"
theme: "PaperMod"
enableRobotsTXT: true
buildDrafts: false
buildFuture: false
buildExpired: false
defaultContentLanguage: en
defaultContentLanguageInSubdir: true
languages:
en:
languageName: "English"
weight: 1
menu:
main:
- name: About
url: about/
weight: 5
- name: Friends
url: friends/
weight: 6
- name: Post
url: post/
weight: 7
- name: Archive
url: archives/
weight: 8
- name: Tags
url: tags/
weight: 9
- name: Categories
url: categories/
weight: 10
- name: Search
url: search/
weight: 11
zh:
languageName: "中文"
weight: 2
menu:
main:
- name: 关于
url: about/
weight: 5
- name: 朋友
url: friends/
weight: 6
- name: 文章
url: post/
weight: 7
- name: 归档
url: archives/
weight: 8
- name: 标签
url: tags/
weight: 9
- name: 分类
url: categories/
weight: 10
- name: 搜索
url: search/
weight: 11
params:
profileMode:
enabled: true
title: "Aimer Neige"
subtitle: "技术宅拯救世界"
imageUrl: "https://avatars.githubusercontent.com/u/51701792?v=4"
imageTitle: "avatar.jpeg"
imageWidth: 140
imageHeight: 140
params:
env: production
keywords: [Blog, OpenSource, Coding, Golang, Programming]
author: "Aimer Neige"
defaultTheme: auto
disableThemeToggle: false
ShowToc: true
TocOpen: false
ShowBreadCrumbs: true
ShowReadingTime: false
ShowPostNavLinks: true
ShowShareButtons: false
ShowCodeCopyButtons: true
displayFullLangName: true
editPost:
URL: "https://github.com/aimerneige/blog/content"
Text: "Suggest Changes"
appendFilePath: true
homeInfoParams:
Title: "Aimer Neige"
Content: "Tech Otakus Save The World"
profileMode:
enabled: true
title: "Aimer Neige"
subtitle: "Tech Otakus Save The World"
imageUrl: "https://avatars.githubusercontent.com/u/51701792?v=4"
imageTitle: "avatar.jpeg"
imageWidth: 140
imageHeight: 140
socialIcons:
- name: github
url: "https://github.com/AimerNeige"
- name: twitter
url: "https://twitter.com/NeigeAimer"
- name: steam
url: "https://steamcommunity.com/id/AimerNeige"
- name: Telegram
url: "https://t.me/AimerNeige"
- name: KoFi
url: "https://ko-fi.com/aimerneige"
- name: RsS
url: "index.xml"
taxonomies:
category: categories
tag: tags
series: series
outputs:
home:
- HTML
- RSS
- JSON
Migrate
Copy your markdown file to new site directory and edit config.
Test
Use this command to run a local test server:
hugo serve -D
Deploy
Generate static file with this command:
hugo
Then push it to github:
cd public
git add -A
git commit -m "commit message"
git push