Hugo | 初次搭建记录

Posted on Oct 12, 2022

前期准备

安装 Hugo

  • 打开 Github 中的 Hugo 库,下载最新的版本,本次下载:hugo_extended_0.99.1_Windows-64bit.zip
  • 因为一些主题需要进行 SCSS/SASS 构建,所以推荐下载 extended 版本,普通版本可能会报错:you need the extended version to build SCSS/SASS
  • 配置环境变量
    • 在 控制面板 -> 系统 -> 高级系统设置 -> 高级 中找到环境变量
    • 用户变量中找到 Path 变量,点击编辑,在弹出的窗口中选择新建,输入 Hugo.exe 文件的文件夹路径(不要包括 Hugo.exe 本身)
    • 测试配置是否成功:在 E:\ 空白处右键,点击 Git Bash Here ,在命令行中输入 hugo version ,若返回 Hugo 版本号信息,说明配置成功

安装 Git

Git 下载、安装程序,按默认选项安装即可

设置

在开始菜单找到 Git Bash ,打开输入:

git config --global user.name "Your Name"
git config --global user.email "email@example.com"

配置 SSH

SSH 密钥用来链接本地和 Git 服务器,它成对生成,分别是” 公钥 “和” 私钥 “,我们将其中的” 公钥 “保存到 Git 仓库后,就可以在电脑上向这个 Git 仓库提交代码。

生成 SSH

在 Git Bash Here 里输入:

ssh-keygen -t rsa -C"注册 github 账号时使用的邮箱"

按照系统提示指定密钥位置、是否需要密码,懒得设置可以直接回车,显示如下结果说明 SSH 生成成功:

Your identification has veen saved in id_rsa
Your public key has been saved in id_rsa.pub
连接 SSH

C:/Users/用户名/.ssh/ 路径找到公钥 id_rsa.pub ,右键用记事本打开,复制全部内容到 Github 账号 -> Settings -> SSH and GPG keys ,新建一个 SSH 密钥,把公钥粘贴保存 测试 SSH 连接是否完成,在 Git Bash Here 输入:

ssh -T git@github.com

如果返回:

Hi username!YOu've successfully authenticated,but GitHub does not provide shell access.

说明 SSH 连接成功

创建 Github 仓库

注意仓库名要和 GitHub 用户名一致,比如你是 xiaohong,那么你要输入 xiaohong.github.io ,最终仓库的完整名是 xiaohong/xiaohong.github.io

安装 VSCode

Visual Studio Code (简称 VS Code / VSC) 是一款免费开源的现代化轻量级代码编辑器

官方下载地址 选择相应的版本下载,按照默认选项安装,安装汉化插件 Chinese (Simplified) Language Pack for Visual Studio Code

安装 Typora(可选)

Typora 是一款轻型 MarkDown 编辑器,其实 VSCode 安装 md 插件后也能胜任它的工作,但是我们就让专业的 Typora 做专业的事吧

在官网 releases 页面购买,或点击 Dev/Beta Released -> 下拉到底端 old macOS beta/old Windows/Linux beta 下载 beta 版

⚠️ 建议在偏好设置里,设置插入图片时复制到指定路径(./xx/),这样复制的图片就会自动保存在当前文件夹下的xx文件夹里,方便后续管理与转移。

开始建站

新建 Hugo 网站

  • 新建一个文件夹用来存放 Hugo 网站的文件,例如:H:/HugoWebsite
  • 在 HugoWebsite 文件夹内空白处点击右键,选择 Git Bush Here ,执行以下命令,新建一个 Hugo 网站
hugo new site blog # blog是网站文件夹名

选择 Hugo 主题

在 github.com 搜索 hugo theme ,或在 Hugo Themes 选择你喜欢的主题。此处以 cactus 举例

⚠️ 推荐将主题仓库 fork 到自己的账号,使用 git submodule 方式进行仓库连接,这样方便后续对主题的修改进行单独维护(否则

cd blog
git init
git submodule add https://github.com/monkeyWzr/hugo-theme-cactus themes/hugo-theme-cactus

⚠️ git clone 命令也可以,就是修改可能会和原主题冲突,不方便版本管理和后续更新,在文件夹 blog 空白处右键点击 Git Bush Here

# 进入 themes 目录,如果没有这个文件夹用 mkdir -p themes 自行创建
cd themes

# 下载主题到 cactus 文件夹下
git clone git@github.com:monkeyWzr/hugo-theme-cactus.git

配置主题

备份 blog 文件夹里的 config.toml 文件,用 blog/themes/hugo-theme-cactus/exampleSite/ 下的 config.toml 覆盖 blog 文件夹下的 config.toml ,然后打开 config.toml 修改配置

必要的修改

# 修改 URL 为你的 GitHub 仓库名称
baseURL = "https://username.github.io"

# 这里必须和 themes 文件夹里的主题文件夹名称一致,所以把主题文件名从 hugo-theme-cactus 修改为 cactus
theme = "cactus"

本地预览

新建文章

在网站文件根目录:E:\HugoWebsite\blog 下执行:

hugo new post/first_article.md

到 blog/content/post 里打开并编辑文章内容,保存

启动 Hugo server

hugo server -D

打开网址 http://localhost:1313/ 进行预览,在 config.toml 里调整页面效果

部署到 GitHub

进入 E:\HugoWebsite\blog\public 目录,初始化 Git 库

# 进入 public 文件夹
cd public
# 初始化
git init
# 将 git 本地库关联至远程库
git remote add origin git@github.com:username/username.github.io.git
# 提交修改
git commit -m "firstarticle"
# 查看当前修改状态
git status
# 添加所有修改过的文件
git add .
# 提交到本地库,"add first-post"是本次提交内容的说明信息
git commit -m"add first-post"
# 提交到远程库
git push origin main

✨ 曾经 github 的默认分支是 master,时间比较久的教程「提交到远程库」这一步都是git push origin master ,这里要注意

日常使用博客要知道的

Front Matter

什么是 Front Matter

是指 .md 文件最上面的这一部分内容


title: tags

date: 2019-08-13 09:39:50

type: tags

layout: tag


Front Matter 内容

参数描述
title标题,默认与文件名一致
date默认为文件创建日期
slug指定文章网址
update文件更新日期
lastmod文章最后更新日期
description文章描述,会被抓去做SEO放在HTML的header中
categories分类(不适用于分页)
tags标签(不适用于分页)
hidden是否隐藏文章,值为 true 时输入正确网址就可以查看
draft是否为草稿,值为 true 时 Hugo 不编译这个文件
layout指定文章使用的模板,不指定的话会使用 根目录/_config.toml 中的默认配置 default_layout:post
comments开启文章评论功能,默认为 true
permalink覆盖文章网址
coverImage设置文章封面图片
metaAlignment设置文章title的位置
coverMeta文章title放在封面图片中央还是外面
coverSize封面图片大小

如果需要添加 Hugo 创建的 .md 文件自带的 Front Matter 模板没有的参数,可以编辑 archetypes 文件夹下的 default.md 文件

更多请参考Hugo|Front Matter

如何新建或修改博文

# 在根目录:E:/HugoWebsite/blog 下新建文章或编辑文章
hugo new post/title.md
# 本地预览,http://localhost:1313/
hugo server -D
# 构建 Hugo 网站
hugo
# 切换到目录:E:/HugoWebsite/blog/public
cd public
# 提交修改到本地库
git add .
git commit -m"commit info"
# 把内容拉下来以rebase方式合并
git pull --rebase
# 将修改推到远程库
git push -u origin main

如何删除文章

# 在目录 E:/HugoWebsite/blog/content/post 和 E:/HugoWebsite/blog/public 找到对应文章删除
# 其中public下文件不删除不会影响显示,只是文件就会一直存在,除.git删错了也不要紧,hugo命令会重建
# 本地预览,http://localhost:1313/
hugo server -D
# 构建 Hugo 网站
hugo

# 切换到目录:E:/HugoWebsite/blog/public
# 提交修改到本地库
git add .
git commit -m"commit info"
# 把内容拉下来以rebase方式合并
git pull --rebase
# 将修改推到远程库
git push -u origin main

装修没有止境

评论系统用 cactus,原装!可爱!

(202210:换了主题所以不再补充了)

报错和解决方法

相关参考

感谢前人的耕耘和分享,希望本文也能给你带来一些帮助 ❤️

Github Pages + Hugo 搭建个人博客

Hugo | 一起动手搭建个人博客吧

记录一下如何用 Hugo 和 Github Page 建立简单的博客 Blog

Hugo 从入门到会用

小白如何低成本建立个人网站或作品集(详细教程)

使用 Hugo 和 GitHub 搭建博客

***

front-matter 使用详解

hugo 建站全指南 | 我的第一个博客网站

在静态网站上包含评论的各种方法

***

為你自己學Git|怎麼有時候推不上去

Git 把本地仓库与 GitHub 远程仓库关联进行同步

将 Git 默认分支从 master 修改为 main