使用Hugo 维护自己的博客
李二花 / 2019-05-16
分类: 博客 / 标签: 博客 / 字数: 1252
安装
在可以访问外网的情况下
mkdir $HOME/src
cd $HOME/src
git clone https://github.com/gohugoio/hugo.git
cd hugo
go install --tags extended
或者直接到 Hugo Releases 下载对应的操作系统版本的Hugo二进制文件(hugo或者hugo.exe),然后放到 path 下去,或者找一个地方保存,使用绝对路径执行。
在不可访问外网的情况下,推荐如下地址,下载对应的 bin 包,然后放到 PATH 里调用即可(我自己源码打的包)
MAC版 链接:https://pan.baidu.com/s/1J5S9JOjz3Wnlrm-t7uVpwQ 密码:o4bx
Linux 版 链接:https://pan.baidu.com/s/1fyVjrrBHFssZbc4rteJecA 密码:nwv8
注意一定要使用 extend 版本 比如:hugoextended0.81.0_macOS-64bit.tar.gz
创建自己的 blog
hugo new site quickstart(要创建的 blog 的文件夹名字)
cd quickstart;
git init; # 实现 git 版本控制
git submodule add https://github.com/alex-shpak/hugo-book themes/book
# 上面一句是获得 theme ,可以去 hugo-theme 挑选对应的主题,上面这个主题是 book 主题
如果不喜欢他提供这个字体和样式,可以下载 assets 包放到 quickstart/ 目录下
链接:https://pan.baidu.com/s/1LumeSQAri8gysHH-_Bykxw 密码:x72c
修改配置
完成上面的部分后,需要修改对应的配置文件,在根目录下的 config
+++
# 主机名 例如: http://spf13.com/
baseURL = "你自己的主机名或者域名"
# 语言编码(中文: zh-CN)
languageCode = "zh-CN"
# 默认的内容语言
defaultContentLanguage = "zh-CN"
# 设置使用的主题名称 (默认储存在 /themes/THEMENAME/)
theme = "book" # 特别注意修改这里为自己安装的 theme 主题的名字
# 自动检测是否包含中文/日文/韩文,该参数会影响摘要和字数统计功能,建议设置为true
hasCJKLanguage = false
# 若为 false,`Getting Started` 这样的英文标签将会被转换为 `getting-started`
preserveTaxonomyNames = true
# 分页
paginate = 10
paginatePath = "page"
# 启用 Emoji; see emoji-cheat-sheet.com
enableEmoji = false
# 创建robots.txt,建议设置为true
enableRobotsTXT = false
# 定义文章访问路径,详细见下文"URL管理" See "content-management/urls/"
permalinks = ""
+++
配置解释
- archetypes: 储存
.md
的模板文件,类似于hexo
的scaffolds
,该文件夹的优先级高于主题下的/archetypes
文件夹 - config.toml: 配置文件
- content: 储存网站的所有内容,类似于
hexo
的source
- data: 储存数据文件供模板调用,类似于
hexo
的source/_data
- layouts: 储存
.html
模板,该文件夹的优先级高于主题下的/layouts
文件夹 - static: 储存图片,css,js等静态文件,该目录下的文件会直接拷贝到
/public
,该文件夹的优先级高于主题下的/static
文件夹 - themes: 储存主题
- public: 执行
hugo
命令后,储存生成的静态文件
demo 测试
每个主题都配置了好多测试的文章,book 来说,测试的文章在 /themes/book/exampleSite
目录下的 content
里,我们可以直接复制这个 content 目录到 blog 的根目录下即可。
启动
完成以上步骤之后,就可以通过以下的命令启动一次服务,然后查看 1313 端口就会看到对应的 blog 文章了
hugo server -D
静态文件发布
使用以上的命令测试无误后,就可以使用 hugo
命令在根目录下执行,然后就得到一个 public 目录,发布到 S3 等即可。
具体功能
新建一个 post
hugo new posts/my-first-post.md
同样的,可以在 docs 里建新的文件
与 EMACS 整合
EMACS 有一个 Hugo package,我们可以直接使用
参考文章