Hugo语法

命令

详细内容请查看官方文档手册:

Commands | Hugo官方文档 (opendocs.io)

命令 简解
⭐hugo hugo 用于构建您的网站
⭐hugo convert 将您的内容转换为不同的格式
hugo convert toJSON 将前置内容转换为JSON格式
⭐hugo deploy 将您的网站部署到云服务提供商
⭐hugo env 打印Hugo版本和环境信息
hugo gen 一系列有用的生成器集合
hugo gen chromastyles 生成用于 Chroma 代码高亮的 CSS 样式表
hugo gen doc 生成Hugo CLI的Markdown文档
hugo gen man 生成Hugo CLI的man页
⭐hugo import 从其他网站生成器导入你的网站
⭐hugo import jekyll 从Jekyll导入到Hugo
⭐hugo list 列出各种类型的内容
⭐hugo list all 列出所有文章
⭐hugo list drafts 列出所有草稿
hugo list expired 列出已过期的所有文章
hugo list future 列出所有未来日期的文章
hugo mod Hugo模块的各种辅助工具
⭐hugo mod clean 删除当前项目的Hugo模块缓存
⭐hugo mod get 解决当前 Hugo 项目的依赖关系
⭐hugo mod init 将此项目初始化为Hugo模块
hugo mod npm 各种npm助手
hugo mod npm pack 实验性功能:为您的项目准备并编写一个复合的 package.json 文件
hugo mod tidy 删除 go.mod 和 go.sum 中未使用的条目
hugo mod vendor 将所有模块依赖项打包到 _vendor 目录中
hugo mod verify 验证依赖项
⭐hugo new 创建站点的新内容
⭐hugo new content 为您的网站创建新内容
⭐hugo new site 创建新站点(框架)
⭐hugo new theme 创建一个名为[name]的新主题(模板)
⭐hugo server 高性能的网页服务器
hugo server trust 将本地 CA 安装到系统的信任存储中
hugo convert toTOML 将前置信息转换为 TOML 格式
⭐hugo version 打印Hugo版本和环境信息
hugo completion zsh 生成用于zsh shell的自动补全脚本
hugo completion powershell 为powershell生成自动补全脚本
⭐hugo mod graph 打印模块依赖图
⭐hugo config 打印站点配置
⭐hugo config mounts 打印已配置的文件挂载
hugo completion 为指定的shell生成自动完成脚本
hugo completion fish 生成fish shell的自动补全脚本
hugo convert toyaml 将前置内容转换为YAML格式
⭐hugo completion bash 生成bash shell的自动完成脚本

前置格式

来源:前置格式 | Hugo官方文档 (opendocs.io)

Hugo允许您在内容文件中使用yaml、toml或json来添加前置格式。

前置格式允许您将元数据附加到[内容类型]的实例中-即嵌入在内容文件中,并且是Hugo赋予其强大功能的众多特性之一。

文章的开头里的前置格式编写将影响接下来整篇文章的环境配置

前置格式格式

Hugo支持四种前置格式格式,每种格式都有其自己的标识标记。

  • TOML

    标识符为开放和关闭的 +++

  • YAML

    标识符为开放和关闭的 ---

  • JSON

    由单个由{}括起来的JSON对象组成,后跟一个新行。

  • ORG

    Org模式关键字组,格式为 #+KEY: VALUE 。任何不以#+开头的行都会结束前置格式部分。 关键字值可以是字符串(#+KEY: VALUE)或以空格分隔的字符串列表(#+KEY[]: VALUE_1 VALUE_2)。

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
categories:
- Development
- VIM
date: "2012-04-06"
description: spf13-vim是适用于Vim的跨平台vim插件和资源分发。
slug: spf13-vim-3-0-release-and-new-website
tags:
- .vimrc
- plugins
- spf13-vim
- vim
title: spf13-vim 3.0版本发布和新网站

前置格式变量

预定义

Hugo有一些预定义的变量。请参阅页面变量了解如何在模板中调用这些预定义变量的方法。

  • aliases

    一个包含一个或多个别名(例如已重命名内容的旧发布路径)的数组,这些别名将在输出目录结构中创建。有关详细信息,请参阅别名

  • audio

    与页面相关的音频文件路径数组;opengraph 内部模板使用它来填充 og:audio

  • cascade

    一组前置格式键的映射,其值会传递给页面的子页,除非被自身或更近的祖先级别的cascade覆盖。有关详细信息,请参阅前置格式级联

  • date

    分配给此页面的日期时间。通常从前置格式的date字段获取此值,但此行为是可配置的。

  • description

    内容的描述。

  • draft

    如果为true,则只有在向hugo命令传递了--buildDrafts标志时,内容才会被呈现。

  • expiryDate

    内容不再由Hugo发布的日期时间;过期内容只有在向hugo命令传递了--buildExpired标志时才会呈现。

  • headless

    如果为true,则将叶子包设置为无头

  • images

    与页面相关的图像文件路径数组;用于内部模板,如_internal/twitter_cards.html

  • isCJKLanguage

    如果为true,Hugo将明确将内容视为CJK语言;在CJK语言中.Summary.WordCount都能正确工作。

  • keywords

    内容的元关键字。

  • layout

    当渲染内容时,Hugo应从查找顺序中选择的布局。如果在前置格式中未指定type,Hugo将在与内容部分对应的布局目录中查找相同名称的布局。请参阅内容类型

  • lastmod

    内容最后修改的日期时间。

  • linkTitle

    用于创建到内容的链接;如果设置了,Hugo默认使用title前的linkTitle

  • markup

    实验性; 指定 "rst" 以获取reStructuredText(需要 rst2html)或 "md"(默认)以获取Markdown。

  • outputs

    允许您指定特定于内容的输出格式。请参阅输出格式

  • publishDate

    如果发布日期在未来,只有在向hugo命令传递了--buildFuture标志时才会呈现内容。

  • resources

    用于配置页面包资源。请参阅页面资源

  • series

    此页面所属系列的数组,作为series 分类法的子集;被opengraph内部模板用于填充 og:see_also

  • slug

    覆盖URL路径的最后一段。不适用于部分页面。有关详细信息,请参阅URL管理

  • summary

    .Summary页面变量中提供文章摘要时使用的文本;有关详细信息,请参阅内容摘要部分。

  • title

    内容的标题。

  • type

    内容的类型;如果未在前置格式中指定,此值将自动从目录(即[部分])中派生。

  • url

    覆盖整个URL路径。适用于常规页面和部分页面。有关详细信息,请参阅URL管理

  • videos

    与页面相关的视频文件路径数组;opengraph 内部模板使用它来填充 og:video

  • weight

    用于对内容排序。较低的权重会更优先显示。如果设置了权重,则权重应为非零,因为0会被解释为未设置的权重。

  • 索引的复数形式的字段名称。请参阅上述前置格式示例中的tagscategories请注意,用户定义的分类法的复数形式不能与任何预定义的前置格式变量相同。

如果既不存在slug也不存在url,且在站点配置文件中未以其他方式配置永久链接,Hugo将使用内容文件的文件名创建输出URL。有关Hugo路径的说明,请参阅内容组织 ,有关自定义Hugo默认行为的方法,请参阅URL管理

用户定义的

您可以将字段任意添加到前置格式中,以满足您的需求。这些用户定义的键值对被放置在单个.Params变量中,用于在模板中使用。

include_tocshow_comments 可以通过 .Params.include_toc.Params.show_comments 使用。有关在模板中使用Hugo的页面级和站点级变量的更多信息,请参阅[变量]章节。

示例

1
2
include_toc: true
show_comments: false

前置格式级联

只要在保留的cascade前置格式键下方定义,任何节点或部分都可以将一组前置格式值传递给其子代。

针对特定页面

cascade块可以是一个带有可选_target关键字的片段,允许多个cascade值针对不同的页面集进行定位。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
cascade:
- _target:
    kind: page
    lang: en
    path: /blog/**
  background: yosemite.jpg
- _target:
    kind: section
  background: goldenbridge.jpg
title: Blog

可用于 _target 的关键字:

  • path

    Glob模式,用于匹配/content下方的内容路径。期望的是类Unix的斜杠。匹配支持双星号,因此可以匹配像/blog/*/**这样的模式,以匹配三级及以下的内容。

  • kind

    匹配页面的类型的Glob模式,例如{home,section}

  • lang

    匹配页面的语言的Glob模式,例如{en,sv}

  • environment

    匹配构建环境的Glob模式,例如{production,development}

上述的任何一个都可以省略。

示例

content/blog/_index.md

1
2
3
cascade:
  banner: images/typewriter.jpg
title: Blog

有了上面的示例,当调用.Params.banner时,Blog部分页面及其子页面将返回images/typewriter.jpg,除非:

  • 该子页面设置了自己的banner
  • 或更近的祖先节点设置了自己的cascade.banner值。
最后更新于 Sep 27, 2024 00:39 CST