前言
去年海外VPS上使用hexo+butterfly构建博客系统,体验还不错,文档、主题资源都很全。但hexo是nodejs开发,因为我对nodejs一窍不通当时搭建时倒腾了半天。所以这次重建博客系统我计划使用hugo。Hugo是由Go语言实现的静态网站生成器,因为是golang开发编译速度很快且hugo只有一个执行程序很简洁。
博客系统安装
博客搭建基于centos7系统,以下是我使用hugo-theme-stack主题调整修改的模板。有需要可直接食用,不用过多优化配置。
# 升级libstdc++
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
wget http://mirror.ghettoforge.org/distributions/gf/el/7/gf/x86_64/gf-release-7-12.gf.el7.noarch.rpm
rpm -Uvh gf-release-7-12.gf.el7.noarch.rpm
yum install gcc10-libstdc++
rpm -ql gcc10-libstdc++.x86_64
cp /opt/gcc-10.2.1/usr/lib64/libstdc++.so.6.0.28 /usr/lib64/
cd /usr/lib64
mv libstdc++.so.6 libstdc++.so.6.20240422
ln -s libstdc++.so.6.0.28 libstdc++.so.6
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
# 安装git
yum install git
# 安装hugo命令(一定要安装extended版本)
wget https://github.com/gohugoio/hugo/releases/download/v0.125.5/hugo_extended_0.125.5_linux-amd64.tar.gz
tar -zxvf hugo_extended_0.125.5_linux-amd64.tar.gz
mkdir -p ~/bin && mv hugo ~/bin
hugo version
# 解压博客模板(见附件hugo-theme-stack主题并部分修改)
mkdir -p ~/www
tar -zxvf site.20240501.tar.gz -C www
# 部署
cd site
hugo #生成静态页面,执行命令后会生成public目录,该目录就是所有网站内容
#nginx.conf相关配置
user xiaoming;#注意nginx权限
server {
if ($request_method !~* GET|POST) {
return 403;
}
listen 80;
server_name www.demo.com; #80端口自动跳转443
rewrite ^(.*)$ https://${server_name}$1 permanent;
}
server {
if ($request_method !~* GET|POST) {
return 403;
}
listen 443 ssl;
ssl_certificate /home/xiaoming/etc/www.demo.crt; #网站证书
ssl_certificate_key /home/xiaoming/etc/www.demo.key; #网站私钥
access_log /home/xiaoming/log/nginx/service.log main;
charset utf-8;
location / {
root /home/xiaoming/www/site/public; #hugo生成静态网站路径
index index.html index.htm;
}
}
文件结构
── site
├── archetypes #文章内容模板
├── assets #存放图标、图片、js(ts)脚本文件,css(scss)样式文件;
├── content #文章、页面、分类页面等文件
│ ├── categories #分类页面目录。
│ ├── page #归档、友链、关于之类页面的目录。
│ └── post #存放博客文件的目录。
├── layouts #网页布局文件
├── public #hugo编译后的网站文件夹;
├── resources
├── static #全局图片等静态文件
│ └── img
│ └── file
└── themes
日常写作
- 创建文章
- 单文件模式,一个文件就是一片内容(优点是简洁,一篇文章对应一个md文件。缺点就是附件难管理,只能放在全局静态资源下site/static/img,引用时
![图名](/img/image.png)
)
hugo new post/xxxx.md
- 文件夹模式,一个目录就是一片内容(与单文件模式相反,但是文章附件可以和内容放在一起方便后期维护管理,引用时直接用图片名就可以
![图名](image.png)
)
hugo new post/xxxx/index.md
- 修改md文件draft: false
- 执行hugo重新生成public内容
参考
Centos更新lib库[踩坑记录]
第三夏尔-博客建站
(3)Stack主题的自定义
hugo stack 主题美化
基于 Hugo 的网站搭建日志 01