Hugo 是用 Go 实现的博客工具,采用 Markdown 进行文章编辑,自动生成静态站点文件,支持丰富的主题配置,也可以通过 js 嵌入像是评论系统等插件。Hugo大大加快了网页生成的速度,而且在源文件处修改的内容可以实时地显示在网页上。
安装
brew install hugo
生成博客
找一个合适的目录,输入hugo new site "博客文件夹名字"
,便可以生成一个用于存放博客的文件夹。
hugo new site Blog
cd Blog
安装主题
我用的stack主题,大家根据自己的喜好选择。
git submodule add https://github.com/CaiJimmy/hugo-theme-stack.git themes/hugo-theme-stack
配置文件
将themes/hugo-theme-stack/exampleSite
文件夹下的config.yaml
、content
、.gitignore
文件复制到博客根目录,并删除config.toml
。
将themes/hugo-theme-stack/archetypes
文件夹复制到博客根目录,这里面是博文模版,可以根据自己的情况自定义修改里面的内容。
生成博文
在博客根目录执行hugo new post/xxxx.md
,这时候就会在文件夹 content/post
形成你要的markdown文件,打开进行编辑即可。
hugo new post/blog-test.md
渲染查看效果
在博客文件夹中执行hugo server
,然后打开http://localhost:1313/来查看效果。
注意,markdown文件中的front matter
部分有一个draft
参数代表是否是草稿,是否渲染草稿需要执行不同命令:
# 不会渲染草稿文件
hugo server
# 将草稿文件也进行渲染
hugo server -D
博客美化
修改语言
修改config.yaml
里面的对应字段:
languageCode: zh-CN
DefaultContentLanguage: zh-cn
hasCJKLanguage: true
如果不需要多语言切换功能,languages
里面只留zh-cn
,把其它语言全删掉。
更换头像
将自己的头像图片avatar.png
放在assets/img/
目录即可。
使博文支持html内容
将config.yaml
里的unsafe
配置项改为true
markup:
goldmark:
renderer:
## Set to true if you have HTML content inside Markdown
unsafe: true
博文图片防盗链
如果有一些博文用到的外部图片加了防盗链,就会加载失败。可以在这些博文里加入<meta name="referrer" content="no-referrer"/>
代码来解决。
或者将这段代码放到layout/partials/head/custom.html
里,这样就是对所有博文生效的。
永久链接permalink
Hugo可以通过博文里front matter
的slug
来实现永久链接,如果没有设置或者是为空时,将使用title
代替slug
。
每一次都手动添加slug实在是不方便,可以在默认模板\archetypes\default.md
里设置自动生成:
slug: {{ substr (md5 (printf "%s%s" .Date (replace .TranslationBaseName "-" " " | title))) 4 8 }}
其它
还有很多其它的配置可以查看官方文档,根据自己需要修改。