安装 hugo
|
|
此时,运行 hugo server,访问 http://localhost:1313,应该能看到一个漂亮的 Stack 主题演示站了。
报错:
原因:
日志里有一行: Watching for config changes in .../hugo.toml
但是之前从主题里复制过来的是 hugo.yaml。 Hugo 会优先读取默认生成的 hugo.toml(它是空的),从而忽略复制过来的 hugo.yaml(它是配置好的)。 这会导致网站打开后是一片空白或者排版混乱。
解决:rm hugo.toml
重新启动 hugo server:
浏览器效果:
部署 Waline 评论系统 (服务端)
需要先搞定评论系统的后端,拿到那个 Server URL。然后使用 Vercel + LeanCloud (国际版) 的方案,免费且无需备案。
注册/登录 LeanCloud 国际版
- 访问 LeanCloud 国际版 (不需要手机号实名,邮箱即可)。
- 创建一个应用,名字叫
waline-blog。 - 进入应用 -> Settings (设置) -> App Keys (应用凭证)。
- 记下这三个值:
App ID,App Key,Master Key。
一键部署到 Vercel
- 点击这个 Waline 一键部署链接 (这是 Waline 官方提供的模板)。
- 登录 GitHub 授权 Vercel。
- 在 Create Git Repository 页面,直接点 Create。
- 关键步骤:Configure Project (配置环境变量)
- 在部署页面会让你填 Environment Variables。
- 填入刚才在 LeanCloud 获取的三个值:
LEAN_ID: 对应 App IDLEAN_KEY: 对应 App KeyLEAN_MASTER_KEY: 对应 Master Key
- 点击 Deploy。等待几分钟。
获取 Server URL
- 部署完成后,点击 Go to Dashboard。
- 在 Vercel 给你的项目分配的域名中,找到类似
waline-xxxxx.vercel.app的地址。 - 复制这个地址,这就是你的
serverURL。
配置 Hugo 并上传到 GitHub
回到本地代码。
修改 hugo.yaml 配置 Waline
打开根目录下的 hugo.yaml,找到 params.comments 部分,修改如下:
|
|
同时,记得修改最顶部的 baseURL(先空着或者填个临时的,等下 Cloudflare 分配了域名再回来改,不改也没大问题,Cloudflare 会处理)。
推送到 GitHub
在 GitHub 上新建一个 Public 仓库(比如叫 my-tech-blog)。
|
|
Cloudflare Pages 部署 (前端)
最后一步,把 GitHub 上的静态页面通过 Cloudflare 发布到互联网。
- 登录 Cloudflare Dashboard。
- 左侧菜单选择 Workers & Pages -> Create application -> Connect to Github。
- 查看 GitHub 账号右上角有个绿点表示认证成功,点击底部的 Get started。
- 构建配置 (Build settings) - 关键!
- Project name: 随便填(这将决定默认域名,如
myblog-demo.pages.dev)。 - Production branch:
main - Framework preset (框架预设): 选择 Hugo。
- Build command: 默认应该是
hugo(如果它没自动填,就手填hugo)。 - Build output directory:
public
- Project name: 随便填(这将决定默认域名,如
- 点击 Save and Deploy。
Cloudflare 会自动拉取代码、安装 Hugo、构建网站。几秒钟后,你会看到一个绿色的 Success。点击分配给的 xxx-blog.pages.dev 域名,博客就上线了!
最后的验证与日常使用
- 验证评论: 打开博客任意一篇文章,拉到底部,看看 Waline 评论框是否出现,试着发一条评论。如果不显示,检查一下 Vercel 那个链接是否能直接访问,或者 F12 看控制台有没有报错。
- 日常写文章流程:
- 本地终端:
hugo new post/my-first-tech-article.md - 在
content/post/目录下找到文件进行写作。 - 注意: 记得把文件头部的
draft: true改为draft: false,否则发布后看不到。 写完后提交:
- 本地终端:
|
|
- Cloudflare 感知到 GitHub 有更新,会自动触发构建,几十秒后线上就更新了。
Markdown 头部配置
Hugo 的 Markdown 头部配置(学名叫 Front Matter )确实有很多参数,但不需要全部都记住。
基础必填项(最常用的)
这些是每篇文章必须有的,控制文章的基本显示。
|
|
分类与标签(用于组织文章)
Stack 主题会在侧边栏和文章卡片上显示这些信息。
|
|
Stack 主题特别优化的参数(推荐)
主题 hugo-theme-stack 对以下参数有很好的支持,建议用上,会让博客看起来更精致:
|
|
进阶控制(偶尔用到)
|
|
文章头生成技巧:VS Code 代码片段 / Hugo 命令
VS Code 代码片段自动生成文章头
直接利用 VS Code 的“用户代码片段”功能,需要自己先手动建好一个空的 .md 文件,然后 Ctrl + Shift + P 敲入 header 按 Tab 键生成文件头。
操作方法:
- VS Code 中点击左下角齿轮 -> 用户代码片段 (User Snippets)。
- 搜索
markdown,选择markdown.json。 - 把下面的 JSON 粘贴进去:
|
|
注意!如果装了预览插件发现输入 header 后没有提示自动生成,点击“Edit in VSCode”。
slug (URL 尾缀) 的命名规范:(对以后博客的 SEO - 搜索引擎收录比较重要)
slug: "英文-关键词-全小写-用横杠连接"
配置默认文章骨架模板使用 hugo 命令生成文章头
嫌麻烦的话也可以直接使用 hugo new post/“xxxxx.md"直接生成文章,要加上文章发布时间、更新时间等信息,修改默认的模板配置即可:archetypes/default.md(如果没有就去主题目录 themes/hugo-theme-stack/archetypes/ 下复制)
|
|
这样每次进入博客目录和虚拟环境下后,创建新的文章只需要敲击 hugo 命令回车即可,不需要在 vscode 里呼出命令面板再选择 json 脚本生成文章头。
总结
这套方案:
- 域名: Cloudflare 送的
.pages.dev(无需备案,海外访问极快)。 - 服务器: Cloudflare (前端) + Vercel (后端)。
- 数据库: LeanCloud (国际版)。
- 费用: 全程 $0。