安装 Hugo
环境有 go 可以直接安装
代码语言:bash复制go install github.com/gohugoio/hugo@latest
mac 可以用 brew
安装
brew install hugo
ubuntu 用 apt 安装,但是版本不是最新的
代码语言:bash复制sudo apt install hugo
或者直接下载编译好的可执行文件:https://github.com/gohugoio/hugo/releases
安装好后可以查看版本
代码语言:bash复制hugo version
hugo --help
创建项目
根据 Hugo QuickStart 教程,创建一个项目
代码语言:bash复制hugo new site ${site_name}
cd ${site_name}
如果还没有创建 git 项目,可以 init 一个
代码语言:bash复制git init
修改为一个比较简约的主题
代码语言:bash复制git submodule add https://github.com/LukasJoswiak/etch.git themes/etch
echo "theme = 'etch'" >> hugo.toml
添加内容
如果单纯新增内容,可以用 hugo create content
命令,会在 content
文件夹新建文章
hugo new content posts/my-first-post.md
然后打开编辑器撰写文章即可
由于我有之前的文章,需要在已有文章加上 hugo 的 header
代码语言:plain复制
title = '用 Hugo 快速搭建个人博客'
date = 2024-01-25T10:58:18 08:00
draft = false
并且每次新建文章时指定目录
代码语言:bash复制hugo new content -c ${source_dir} posts/my-first-post.md
调试
通过 hugo server 命令启动服务,动态展示内容
代码语言:bash复制# serve and test
hugo server
# serve with theme
hugo server -t ${theme}
# serve with draft
hugo server -D
部署
hugo
命令会编译创建 public 文件夹,将 public 文件夹推送到腾讯云服务器,然后在 nginx 中将加入该路径的路由就完成了发布
location / {
root ${hugo_project}/public;
}
由于我不想移动原来文件的路径,这里写了个脚本完成发布
代码语言:bash复制# 复制文章目录到项目
rm -rf ${source_dir}/* && cp -r ${local_dir}/* ${source_dir}
# 替换图片路径
find "${source_dir}" -type f -name "*.md" -exec sed -i '' "s#${local_dir}#https://${SITE_HOST}/blogs#g" {} ;
# 编译并推送到服务器
hugo && rsync -avz --delete public/ ${SITE_USER}@${SITE_HOST}:${SITE_PROJECT_DIR}