HUGO 项目配置
HUGO 项目初始化后 会在项目根目录生成 ./config.toml 的配置文件
HUGO 项目支持 config.toml, config.yaml, config.json 三种格式
基本配置
1{ // config.json
2 // 域名路径
3 "baseURL": "http://example.org/",
4 // 网站的标题
5 "title": "",
6 // 版权声明
7 "copyright": "",
8 // 是否将相对路径转为绝对路径
9 "canonifyURLs": false,
10 // 编译时,从静态目录中删除找不到的目标文件。
11 "cleanDestinationDir": false,
12 //禁用网址/路径转换为小写。
13 "disablePathToLower": false,
14 //禁用浏览器窗口的自动实时重新加载。
15 "disableLiveReload": false,
16 //禁用指定种类的所有页面。此列表中允许的值:
17 //“page”、“home”、“section”、“taxonomy”、“term”、“RSS”、“sitemap”、“robotsTXT”、“404”。
18 "disableKinds": [],
19 //默认情况下,Hugo将仅在主页的HTML头部注入一个生成器元标签。你可以关闭它,
20 //但如果你不这样做,我们将不胜感激,因为这是观看雨果人气上升的好方法。
21 "disableHugoGeneratorInject": false,
22 //将禁用别名重定向的生成。请注意,即使设置了禁用别名,别名本身也会保留在页面上。
23 //其动机是能够使用自定义输出格式在.htaccess、Netlify _redirects文件或类似文件中生成301重定向。
24 "disableAliases": false,
25 // 默认的内容语言指示器
26 "defaultContentLanguage": "en",
27 // 在子目录中呈现默认内容语言,例如content/en/。然后,站点根/将重定向到/en/。
28 "defaultContentLanguageInSubdir": false,
29 //启用。每个页面的GitInfo对象(如果Hugo网站由Git版本控制)。然后,这将使用该内容文件的最后一个git提交日期更新每个页面的Lastmod参数。
30 "enableGitInfo": false,
31}
项目目录配置
1{ // config.json
2 ...
3 // 读取页面文件的目录
4 "contentDir": "content",
5 // 读取数据文件的目录
6 "dataDir": "data",
7 // 读取资源文件的目录 通过 resources.Get 获取该目录下的资源
8 "assetDir": "assets",
9 // 读取 markdown 的扉页配置模版目录
10 "archetypeDir": "archetypes",
11 // 编译后生成站点的目录
12 "publishDir": "public",
13 // 读取主题的目录
14 "themesDir": "themes"
15 ...
16}
编译配置
1{ // config.json
2 // 是否编译草稿页面
3 "buildDrafts": false,
4 // 是否编译过期页面
5 "buildExpired": false,
6 // 是否编译未发布页面
7 "buildFuture": false,
8}
配置模块化
HUGO 会根据不同的运行环境加载对应的配置项
没有创建运行环境配置项会加载默认的配置项
./config/_default/config.json 默认的配置
./config/development/config.json 开发环境的配置项
./config/production/config.json 生成环境的配置项
还可以将 ../config.json 文件中的配置集合拆分到单个文件 例如菜单可以拆分 ../menu.json
配置菜单模块
1// menu.json
2{ // 读取菜单:
3 "main":[
4 {
5 // 唯一标识
6 "identifier":"",
7 // 菜单名称
8 "name":"",
9 //
10 "url": "",
11 // 打开页面的 a 标签
12 "pre":"",
13 // 对页面路径的引用
14 "pageRef": "",
15 // 菜单权重 对菜单项按权重进行升序排序
16 "weight": 1,
17 // 父级菜单的唯一标识
18 "parent": "",
19 // 子菜单
20 "children":[],
21 // ?
22 "post": "",
23 // 附加参数
24 "params":{
25 ...
26 }
27 }
28 ]
29}
<!-- 获取菜单配置 -->
{{ .Site.Menus.main }}
Markup 配置
1// /config/_default/markup.json
2{
3 //Markdown 默认的渲染器
4 "defaultMarkdownHandler": "goldmark",
5 "goldmark": {
6 //扩展配置
7 "extensions": {
8 "strikethrough": true, //是否启用删除线扩展
9 "definitionList": true, //是否启用自定义列表
10 "linkify": true, //链接转换扩展,会将纯文本中的 URL 和邮箱转换为链接
11 "table": true, //是否启用表格扩展
12
13 },
14 //解析器配置
15 "parser": {
16 "wrapStandAloneImageWithinParagraph": true
17 },
18 //渲染器配置
19 "renderer": {
20 "hardWraps": true,
21 "unsafe": true, //是否启用不安全的 HTML 渲染,开启后可以解析 html 标签并渲染
22 "xhtml": true
23 }
24 },
25 //单篇页面的标题目录配置
26 "tableOfContents": {
27 "startLevel": 1, //从标题级别1(h1)开始渲染目录。
28 "endLevel": 3, //从标题级别3(h3)结束渲染目录。
29 "ordered": true //是否生成有序列表。
30 },
31 //代码语法高亮配置
32 "highlight": {
33 "codeFences": true, //是否启用代码块的 Markdown 语法
34 "style": "doom-one2", //高亮样式: 提供多种高亮样式可进行配置
35 "noClasses":true, //是否禁用 CSS 类名
36 "guessSyntax": false, //是否自动猜测代码块的语言
37 "lineNos": true, //是否显示行号
38 "lineNoStart": 1, //行号开始数值
39 "lineNumbersInTable": false, //每一行是否在单行内不换行展示
40 "hl_Lines": "2 4 6-8", //高亮显示行数,第2行和第四行进行高亮显示
41 "hl_inline": false,//是否启用内联代码高亮显示,启用后代码块被 ` ` 包裹,失去原有的段落格式
42 "noHl": true,//是否开启禁用高亮显示
43 "anchorLineNos": false,//是否为每一行生成唯一的链接
44 "lineAnchors": "",
45 "tabWidth": 4 //指定制表符的宽度
46 }
47}