部署依赖
本地需要 hugo、git、ipfs-desktop等前置依赖工具,本教程适用于 Windows 系统,macOS、Linux 同理。
hugo
hugo安装见此文章 hugo – 无需数据库支持快速的开源静态网站生成神器,建议安装 Hugo 扩展版。
git
官网下载 Git - Downloading Package (git-scm.com) 后,安装即可。
或使用 winget 工具,如果没有,可先安装 winget 工具,然后在 CLI 或 Powershell 中输入:
winget install --id Git.Git -e --source winget
ipfs-desktop
官方 下载页 下载 IPFS-Desktop-Setup-0.xx.0.exe 文件后安装运行即可。
创建 hugo 博客
建议使用 Git Bash 或 WSL 创建,以下以 Git 为示例。
使用 git 打开你选定的博客目录文件,开始创建。
-
新建 newsite 文件目录,作为博客的项目目录
hugo new site newsite
-
进入 newsite 根目录
cd newsite
-
在当前目录中初始化一个空的 Git 存储库
git init
-
设定博客主题
-
克隆添加主题
git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke
-
修改主题配置
echo "theme = 'ananke'" >> hugo.toml
-
hugo 配置文件在根目录下的 hugo.toml
,更多免费主题请查看 https://themes.gohugo.io/
创建博客内容
添加新页面
hugo new content content/posts/my-first-post.md
表示已在 content/posts
目录中创建了新文件
使用支持markdown的编辑器打开后,将看到以下内容:
+++
title = 'My First Post'
date = 2024-01-14T07:07:07+01:00
draft = true
+++
可看到 draft
值为 true
。默认情况下,Hugo 在您构建站点时不会发布草稿内容。
博客正文添加到下方即可,例如:
+++
title = 'My First Post'
date = 2024-01-14T07:07:07+01:00
draft = true
+++
## 第一篇文章
这是我的第一篇hugo博客文章。
启动 hugo 服务
启动 Hugo 查看开发调试服务器,服务器地址为 http://localhost:1313/
。
hugo server
可使用 Ctrl + C
停止 Hugo 的开发服务器。
如需包含,可以在启动服务器时,使用 hugo server -D
或 hugo server --buildDrafts
,表示启动草稿可用。
此时打开开发调试服务器地址 http://localhost:1313/
即可看到博客页面已成功创建启动。
配置博客
使用编辑器,打开项目根目录中的站点配置文件 hugo.toml
,修改为:
baseURL = ""
languageCode = 'zh-cn'
title = '新的hugo博客'
theme = 'ananke'
将上面 baseURL
留空,languageCode
修改为你的语言和区域,title
修改为你的站点标题。
发布博客
hugo
当发布站点时,Hugo 会在项目根目录的 public
目录中创建整个静态站点。包括 HTML 文件以及图像、CSS 文件和 JavaScript 文件等资源。
上传到 ipfs-desktop
打开 ipfs-desktop,将 public
根目录文件夹上传到 ipfs-desktop 你选定的位置,进入 ipfs 设置,找到创建IPNS发布密钥,点击生成,命名为 newsite。
生成的密钥为 k51 开头的一个字符串,再返回 ipfs 文件,选择 public 文件夹后,点击发布至IPNS,选择刚创建的 newsite 密钥或手动输入此密钥,点击发布。
发布成功后,会弹出对应的已发布链接,本站密钥为 k51qzi5uqu5dgihzvuk5odnzl59r5ip1w676gq2h0favahwh2d851vfv3n57c0。
将密钥替换掉下列位置,即为你的独立域名:
- (IPNS发布密钥).ipns.dweb.link
- (IPNS发布密钥).ipfs2.eth.limo
- (IPNS发布密钥).eth.sucks
如:https://k51qzi5uqu5dgihzvuk5odnzl59r5ip1w676gq2h0favahwh2d851vfv3n57c0.eth.sucks/
每次修改博客内容,创建新的页面后,均需再一次发布hugo,上传到ipfs,再发布一次IPNS,可用同一个密钥重复发布博客。