Hugo+Github Pages 搭建个人博客手记萌新向
0. 前言
记得在19年那段时间,在无意间了解到 Github Pages 可以托管静态页面作为个人博客站,于是开始兴致勃勃研究了一会,新鲜几天之后,搭建完毕,还绑了自己名字的域名,就扔在那了,一篇内容都没有写。随着时间的推移,Hexo 该怎么使用,用哪些 git 命令已经忘得一干二净了。
然而最近又有了维护一个自己博客的冲动,然而安装 Hexo 并没我记忆中的那么顺利,让我不得不放弃 Hexo 而选择其他工具,最终确定 Hugo(主要是喜欢 Hugo 的这个主题),所以本篇我就记录一下我利用 Hugo 搭建个人博客的过程
但是我这次先把内容先写一部分再开始着手做搭建,一是不想让这次博客又白白搭建,二是作为以后使用的备忘手记(记性不好),其中参考了网上一些大神的教程及脚本,想详细学习的话推荐去看他的教程
Berlin https://fengberlin.github.io/post/use-hugo-to-build-blog/
1. 介绍
原理:利用工具将写作内容(Markdown)生成 HTML 静态页,将静态页上传至 Github,利用 Github Pages 的页面链接进行访问
Markdown
是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,由于 Markdown 的轻量化、易读易写特性,并且对于图片,图表、数学式都有支持,许多网站都广泛使用 Markdown 来撰写帮助文档或是用于论坛上发表消息。Markdown 的优势是可以利用一些简单的语法实现排版功能,没有那么多排版、字体的设置,简介易用。弄这些的人基本应该会懂把,懂洞东懂,不懂去搜。
静态页博客生成工具
Hugo、Hexo、Jekyll、Gridea 是我所了解到比较常用的工具,当然,可能还有一些更热门更好用的工具只是我不知道而已
我只用过 Hexo 和 Hugo,之前用的是 Hexo,这次搭建用的是 Hugo,简要总结一下我对这俩工具的个人感受:
Hugo:
+社区环境很好
+生成网站速度超快
+更简单轻量,能够让人更专注于写作
+个人更喜欢 Hugo 的主题
-每次写完都要删除 public 文件夹
-扩展性稍差
Hexo:
+功能性、可扩展性强
+部署命令相对简洁
+也有很多不错的主题
-在配置 hexo 出现各种各样的问题(98.735%是我哪里没弄好)
其他的我也没使用过,想要了解的话去搜
Github Pages
https://pages.github.com/ 介绍就不说了,看看就知道了
2. 部署过程
注册 Github 并建立项目
注册不说了
登录 Github,新建 repository,名称为 <username>.github.io(必须),作为 Github Pages 的页面地址
例如 Github 的用户名是 zhang3,则新建的项目名称为: zhang3.github.io
再创建一个 repository,名称为 myhugo(任意),作为存放除了生成静态页以外的所有文件(例如 config.toml 配置文件等),这样即便本地原始文件清空了,或者更换设备时,都可以把源文件迁移过来(我之前用 hexo 的时候就没同步)
安装 git(已有请忽略)
首先安装 git
sudo apt-get install git -y
配置 Github 用户信息
git config –-global user.name username # username填写Github用户名
git config –-global user.email user@useremail.com # useremail填写Github用户名关联的邮箱地址
生成 ssh key 关联 Github
ssh-keygen -t rsa -C “your_email@youremail.com” #youremail填写Github用户名关联的邮箱地址
三下回车后,会在根目录生成一个.ssh的文件夹,
cat ~/.ssh/id_rsa.pub
复制公钥的内容,登录 Github,点击头像 -> Settings —> SSH and GPG keys —> New SSH key,把公钥的内容粘贴到 key 中,填好 title 并点击 Add SSH key 至此,关联完毕
测试是否关联成功
ssh git@github.com
若返回显示您的用户名即为关联成功
Hugo安装包下载
我用的系统是 Ubuntu,其他系统例如 MacOS、Win、其他发行版 Linux 系统除了获取 Hugo 的方式稍有不同之外,几乎没有差别
利用 apt-get 方式安装的 Hugo 版本比较旧,达不到很多主题所要求的最低标准,所以我们选择在 GitHub 上下载最新版本的安装包
Hugo 安装包下载地址 https://github.com/gohugoio/hugo/releases
安装 Hugo
执行命令
sudo dpkg -i <文件名.deb>
dpkg 软件包管理器,-i 安装
可能会报依赖关系的错误,执行命令修复安装
sudo apt-get install -f
-f : –fix-broken 的简写形式,修复依赖关系(depends)的命令
初始化 Hugo
先 cd 到想要创建博客文件夹的上一级,尔后执行
hugo new site myblog # myblog就是生成博客之后存放的文件夹
Hugo 会自动创建 myblog 文件夹并生成需要的文件
安装主题
https://themes.gohugo.io Hugo 官方汇总的主题列表,可以去看看,很多主题都有demo可以预览一下,主题的使用教程都比较详细
例如安装 Notepadium 主题 https://themes.gohugo.io/hugo-notepadium/
在 myblog 目录下,输入 git 命令,
git submodule add https://github.com/cntrump/hugo-notepadium.git themes/hugo-notepadium
git submodule add <仓库地址> <本地路径> :Git Submodule 允许一个 git 仓库,作为另一个 git 仓库的子目录
以后更新主题可以使用命令
git submodule update --remote --merge
因为主题中配置文件更易用,所以将主题目录中 exampleSite 的 config.toml 复制到 myblog 的目录下进行配置
mv config.toml config.toml.old
mv themes/hugo-notepadium/exampleSite/config.toml config.toml
具体配置请参考每个主题下的介绍内容或者去搜
创建一篇文章
hugo new post/firstblog.md
则会在content/目录内生成一个post文件夹,该文件夹就是用来存储你所创建编写的markdown文档
生成博客
hugo server -D
server 建立服务器 -D 生成静态页面文件(包括标记为草稿的内容)
输入后访问http://localhost:1313 即可在本地看到生成博客的页面效果
推送到 Github上(以下很多内容摘抄自Berlin的博客)
这里主要说推送到个人主页的方式
首先,需要把 public/ 目录删除
rm -rf public/
把 public/ 目录添加为 submodule
git init git submodule add git@github.com:XXX/xxx.github.io public # xxx是Github的username
此处有个坑就是本机 git 默认分支名是 master,而 Github 中默认分支名已改成了main,因此需要把本地分支名称改为main
git branch -m main
添加文件添加 .gitignore 文件,文件中写 public/,在同步到 myhugo 时会忽略 public 文件夹
vi .gitignore
public/
:wq 保存退出
将静态页上传到 用户名.github.io 的工作可以借助一个 deploy.sh 脚本来完成
#!/bin/bash
echo -e "\033[0;32mDeploying updates to GitHub...\033[0m"
# Build the project.
hugo # if using a theme, replace with `hugo -t <YOURTHEME>`
# Go To Public folder
cd public
# Add changes to git.
git add .
# Commit changes.
msg="rebuilding site `date`"
if [ $# -eq 1 ]
then msg="$1"
fi
git commit -m "$msg"
# Push source and build repos.
git push origin main
# Come Back up to the Project Root
cd ..
把以上命令保存为 .sh 文件,然后再运行以下命令,修改 deploy.sh 的权限
chmod +x deploy.sh
运行以下命令完成 push 整个博客的操作
./deploy.sh "Your optional commit message"
然后把 myblog 里的内容同步到 GitHub 上。同时要在 data、layouts、static 里面添加一个 .gitkeep 文件,以保持目录结构。记住一定要删掉你的主题目录里面的 .git 文件夹
git remote add origin git@github.com:github_user_name/your_repository.git # your_repository 即你存放你的博客源文件的仓库
git pull origin main
git add .
git commit -m "the message you want to write"
git push -u origin main # 第二次 push 可以不用加 -u
到这里就大功告成了,如果你要在另一台电脑上继续写博客,只要把 myhugo克隆下来,然后把里面“看得见”的东西拷贝到一个新的文件夹(即除了 .git 、.gitmodule 等),然后再重复刚才创建 git 子模块的那些步骤,当然你要准备 Hugo 环境。如果你想获取你的主题的最新更新,则在你的主题根目录下运行如下命令:
git init
git remote add origin https://github.com/author_name/your_theme_repo_name.git
git pull # or git pull origin main
3. 参考资料
使用Hugo搭建个人博客,by Berlin