Hugo建站-基础教程
1 准备
Hugo提供全平台(Windows,Linux,macOS),安装最新版本:(far fa-file-archive fa-fw): Hugo (>0.62.0)
2 安装
按照以下步骤初始化新网站
2.1 创建项目
使用new命令创建新网站:
|
|
2.2 安装主题
克隆DoIt主题仓库到themes目录:
|
|
或者,初始化项目为git仓库,并且把主题仓库作为子模块导入:
|
|
2.3 基础配置
2.4 创建文章
通过以下命令创建一篇新文章:
|
|
在配置文件中添加newContentEditor = 'vim',创建新文章后能自动在vim中打开该文档进行编辑
2.5 本地启动网站
使用以下命令启动网站:
|
|
在浏览器中打开地址http://localhost:1313/可以实时预览。
hugo serve 时, 当文件内容更改时, 页面会随着更改自动刷新.由于本主题使用了 Hugo 中的 .Scratch 来实现一些特性,
非常建议你为 hugo server 命令添加 --disableFastRender 参数来实时预览你正在编辑的文章页面.
|
|
2.6 构建网站
一切就绪时,运行以下命令:
|
|
会生成一个public目录,其中包含网站所需的所有静态文件,可将其部署在任何Web服务器上。
3 配置目录
除了使用单个配置文件外,还可以使用configDir目录维护组织和环境特定的变量。
|
|
- 每个文件代表一个配置根对象,如
Params,Menu,Languages等 - 每个目录包含一组文件,这些文件包含特定的环境设置。
- 可以对文件进行本地化以使其成为特定语言的配置文件。
在运行hugo -environment staging命令时,Hugo将使用config/_default和staging合并后的配置。
4 内容组织
以下是方便管理和生成文章的目录结构建议:
- 保持博客文章存放在
content/posts目录, 例如:content/posts/我的第一篇文章.md - 保持简单的静态页面存放在
content目录, 例如:content/about.md - 本地资源组织
有三种方法来引用图片和音乐等本地资源:
- 使用页面包中的页面资源.
你可以使用适用于
Resources.GetMatch的值或者直接使用相对于当前页面目录的文件路径来引用页面资源. - 将本地资源放在 assets 目录中, 默认路径是
/assets. 引用资源的文件路径是相对于 assets 目录的. - 将本地资源放在 static 目录中, 默认路径是
/static. 引用资源的文件路径是相对于 static 目录的.
引用的优先级符合以上的顺序.
在这个主题中的很多地方可以使用上面的本地资源引用,
例如 链接, 图片, image shortcode, music shortcode 和前置参数中的部分参数.
页面资源或者 assets 目录中的图片处理会在未来的版本中得到支持. 非常酷的功能! :(far fa-grin-squint fa-fw):
5 数学公式
Hugo目前使用goldmark作为默认的Markdown引擎。配合mathjax可以输出漂亮的数学公式。
由于Markdown和LaTeX对下划线_及转义符号\的处理差异,在调用mathjax渲染
公式时会出错。有几种方法可以解决。
- 手动添加转义符号
\,使得goldmark解析过后,符合TeX语法。 - 添加
shortcode,避免公式部分被goldmark解析,直接调用mathjax处理。 - 使用
goldmark-matjax插件,避免手动修改文件内容,缺点是需要自行编译。
|
|
修改文件markup/goldmark/convert.go
|
|
最后编译
|
|
接下来有两种方案调用JS脚本进行公式渲染。
在配置文件params.toml中添加mathjax的全局控制开关
|
|
若要开启数学公式支持,则在前置参数中添加mathjax: true。
最后修改模板文件assets.html导入JS脚本
|
|
采用的load-mathjax.js内容为
|
|
优点:在于无需修改模板文件assets.html,load-mathjax.js可根据内容是否包含
数学公式自动加载JS脚本进行渲染,也无需在前置参数中添加mathjax: true进行声明。
缺点:确实自动加载了JS脚本,但仍需额外刷新一次网页才会渲染公式 (若解决此Bug,则会切换到此方案)。
在配置文件中找到page.library.js,添加如下内容
|
|
这里用的load-mathjax.js与方案一差别在于套了一层if进行数学环境的判断。
|
|
5.1 行内公式
默认的行内公式分割符为$/$和\\(/\\)
|
|
效果如下:
$ c = \pm\sqrt{a^2 + b^2} $ 和 \( f(x)=\int_{-\infty}^{\infty} \hat{f}(\xi) e^{2 \pi i \xi x} d \xi \)
5.2 公式块
默认的公式块分割符为$$/$$和\\[/\\]
|
|
效果如下:
$$ c = \pm\sqrt{a^2 + b^2} $$\[ f(x)=\int_{-\infty}^{\infty} \hat{f}(\xi) e^{2 \pi i \xi x} d \xi \]
6 添加文章打赏
DoIt主题自带打赏功能,为使用微信和支付宝二维码打赏,需对主题进行一些改动。修改主要涉及三个文件:sponsor.html,_custom.scss和params.zh-cn.toml。
考虑到英文页面的兼容性,需额外修改国际化文件i18n/zh-CN.toml。
6.1 配置文件添加相关变量
在/config/_default/params.zh-cn.toml中找到sponsor,并作如下改动
|
|
英文页面修改对应的params.en.toml。
6.2 修改模板文件
将/theme/DoIt/layouts/partials/single/sponsor.html拷贝到站点对应目录下,并作相应修改
|
|
6.3 调整CSS样式
CSS样式参考自雨临Lewis,
采用悬浮样式,需修改/assets/css/_custom.scss。
|
|
6.4 国际化文件添加翻译内容
将/theme/DoIt/i18n/zh-CN.toml拷贝至/i18n/zh-CN.toml,打开并添加如下内容
|
|
7 添加鼠标点击特效
DoIt主题支持自定义JavaScript脚本,在配置文件中设置脚本路径
|
|
自定义脚本custom.js存放在站点目录/assets/js下,在其中添加如下内容
|
|
8 切换页面时网页标题个性化
为实现离开页面时,标题显示喔唷,崩溃啦!,回来时恢复原来标题的个性化效果,在custom.js中添加如下内容
|
|
相关内容
如果你觉得这篇文章对你有所帮助,欢迎赞赏~
