用 Hugo 快速搭建个人博客

2024-01-25 11:48:28 浏览数 (1)

安装 Hugo

环境有 go 可以直接安装

代码语言:bash复制
go install github.com/gohugoio/hugo@latest

mac 可以用 brew 安装

代码语言:bash复制
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 文件夹新建文章

代码语言:bash复制
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 中将加入该路径的路由就完成了发布

代码语言:plain复制
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}

0 人点赞