前言

在极客时间中看到第454期|没有输出的学习与消遣无异一文觉得挺不错。里面提到

首先,不管是做事还是学习,都要做生产者。在他看来,技术人大都很忙碌,忙于工作,甚至忙于学习,但人们在做事情的时候其实有两种角色:生产者和消费者。以学习为例,学习本身其实是一种消费,每天忙着去读书,看起来是在学习,但是学完以后你的生活和工作因此改变了吗?或者说有产出和输出吗?如果没有,每天的日子还是老样子,工作和生活也没有改变,那这样的学习其实和玩一会手机、看一会抖音,在本质上并没有太大的区别。

因此我们不管是工作还是学习,一定需要及时输出。博客是一个不错的输出方式,既可以用于自己记录,也可以让有兴趣的人看到,或者还可以对自己的输出进行一些指正。

静态博客是个不错的方式,我们可以将其托管在 Github/Gitee 这样的平台上(Gitee 已经不行了,本文将 Gitee 相关内容已移除),免去自己买服务器搭建博客的过程。静态博客中 Hexo/Hugo 都是不错的选择。Hugo 使用 golang 编写,处理速度会比较快。

Hugo 博客创建流程

本地安装

参考官方文档,mac 下我们可以直接采用

1
brew install hugo 

验证是否安装成功

1
2
➜  guixian-blog git:(master) ✗ hugo version
hugo v0.134.3+extended darwin/arm64 BuildDate=2024-09-19T14:28:20Z VendorInfo=brew

创建一个博客

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
➜  Dev hugo new site guixian-blog
Congratulations! Your new Hugo site is created in /Users/chenguixian/Desktop/Dev/guixian-blog.

Just a few more steps and you're ready to go:

1. Download a theme into the same-named folder.
   Choose a theme from https://themes.gohugo.io/ or
   create your own with the "hugo new theme <THEMENAME>" command.
2. Perhaps you want to add some content. You can add single files
   with "hugo new <SECTIONNAME>/<FILENAME>.<FORMAT>".
3. Start the built-in live server via "hugo server".

Visit https://gohugo.io/ for quickstart guide and full documentation.

安装主题

默认是没有任何主题的,可以参考主题仓库选择自己喜欢的主题。这款移植自 hexo-theme-even 的主题 even不错,但是这个 theme 模板最近没有维护了,导致最新版本的 hugo 无法使用。我自己本地维护了一份,修改了模板中的部分变量,从而可以在最新版本的 hugo 中进行生产静态文件。

1
git clone https://github.com/guixian001/hugo-theme-even-v2 themes/even

在主题的 [exampleSite]https://github.com/guixian001/hugo-theme-even-v2/tree/master/exampleSite) 目录下有一个 config.toml 文件,将这个 config.toml 文件复制到你的站点目录下,根据自己的需求更改即可。

创建 markdown

1
hugo new post/test.md

随意输入一些内容,这样就完成了。

本地预览

1
hugo server -D

-D选项表示将处于草稿状态(draft:true)的post 也进行构建预览。

1
-D, --buildDrafts                include content marked as draft

托管在 Github

可以使用两个 git repo,一个保存源文件,一个保存构建生成 html 之后的 public 文件。

GitHub pages

在 Github 新建 guixian-blog。

然后在本地初始话 git,并且添加远端地址。

1
2
git init
git remote add origin xx/guixian-blog.git

子模块管理 public 文件

在 Github 新建一个 repo,专门用来存静态文件,并且借助 GitHub 的 Pages 对外提供 Web 访问。

部署

在本地进行构建生成静态文件 hugo,生成的静态文件位于 public。进入 public 将静态文件 push 到远端即可。

Hugo 常用命令

记录几个常见的命令,以免很久不写之后每次都需要去找文档回顾用法。

  • hugo 直接输入 hugo,生成静态文件,生成的文件位于 public 目录中
  • hugo -D 生成的静态文件包含 draft 状态的文档
  • hugo new [path] 新的文章 比如 hugo new post/testdir/test.md 会在 content 目录下新增按照参数的文档
  • hugo server hugo 自带的一个 web 服务器,运行之后可以在 localhost:1313 端口进本地预览博客。

参考文档

其他不错的 hugo 教程