__ __
/\ \/\ \
\ \ \_\ \ __ __ __ ___
\ \ _ \/\ \/\ \ /'_ `\ / __`\
\ \ \ \ \ \ \_\ \/\ \L\ \/\ \L\ \
\ \_\ \_\ \____/\ \____ \ \____/
\/_/\/_/\/___/ \/___L\ \/___/
/\____/
\_/__/
Hugo 是一个静态站点生成器,如果想搭建一个简单的博客,专注于写作或者做笔记,那么我们只需要提供一个创作好的 markdown 文件,将它放在 hugo 指定的文件夹下,再用相应的命令启动服务,访问网页的链接即可。
Cloudflare pages 能让我们放置一个静态网站,可以在上面部署一个 hugo 博客,官方给出了教程:Deploy a Hugo site
前置条件
- github 账号
- cloudflare 账号
在 windows 下安装 hugo
我用了 scoop 来安装hugo,scoop 是一个开源的 windows 软件包管理器
以管理员身份打开 PowerShell,运行以下两条命令来安装scoop:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex
安装 hugo:
scoop install hugo
查看 hugo 的版本:
hugo version
创建 github 仓库
创建一个空的 github 仓库,可以是私有仓库,在仓库的页面会提示你创建或者上传文件,不需要增加文件,直接复制旁边的仓库链接,将仓库克隆到本地
git clone https://xxxxxxxxx your_dir_name
替换其中的 https 链接,其中 your_dir_name 是你自己的文件夹名称。
初始化 hugo 站点,
cd your_dir_name
hugo new site . --force
这时候文件夹下就会多出一些文件。
新建文章
执行
hugo new posts/hello-world.md
会在content文件夹里的posts文件夹多出一个 markdown 文件,可以对该文件进行编辑。
修改主题(网站样式)
hugo 内置了一个主题,更多主题可以在 themes 里搜索。
如果要使用其他主题,选定了一个主题后,例如对于主题 diary, 执行
git submodule add https://github.com/amazingrise/hugo-theme-diary themes/diary
此时themes文件夹会增加相应的主题文件。在根目录的config.toml文件的开头那里增加theme = "diary"即可。
配置文件config.toml控制着静态网站的渲染和行为,其他的一些设置有:默认语言、标题等
baseurl = "/"
DefaultContentLanguage = "zh"
languageCode = "zh-cn"
title = "A Hugo Site"
copyright = "Copyright © 2023 😅."
theme = "diary"
paginate = 5
最后,把上面的修改推送到 github 仓库,
git add .
git commit -m "update"
git push
部署到 cloudflare pages
在 cloudflare pages 页面新建项目,cloudflare 的界面里有中文的语言选项。
选择connect to git,选择刚才创建的仓库。
接下来设置项目的名称,注意下面会显示类似xxx.pages.dev的域名,这是静态页面的域名。
在构建设置里项目类型选为Hugo,将构建命令设置为hugo -b $CF_PAGES_URL。
点击下面级环境变量设置,添加两个环境变量:
-
CF_PAGES_URL,对应的值为https://xxx.pages.dev/,也就是前面显示的那个域名,也可以用自己的域名,这时候要记得在项目页面绑定域名。 -
HUGO_VERSION,对应的值为0.111.3,这是为了设置 hugo 的版本号, 不设置的话 cloudflare 可能使用一个较老的 hugo,使得有一些 hugo 主题使用不了。
绑定域名
在 pages 项目首页里,选 custom domains绑定自己的域名。
最后修改于 2023-04-12