Hugo

代码语法高亮

在技术文档、教程或任何包含代码示例的博客文章中,清晰的代码语法高亮是提升可读性的关键。Hugo 内置了对代码语法高亮的支持,通常通过 Chroma 代码语法高亮器实现。

启用语法高亮

大多数 Hugo 主题默认启用了语法高亮。如果你的主题没有,或者你想自定义,通常有以下几种方式:

  1. 全局启用(在 config.toml 中):

    [params]
      highlight = true
    
  2. 主题配置: 检查你所使用主题的文档,它可能提供了特定的配置选项来启用或禁用语法高亮。

Markdown 中的代码块

Hugo 支持标准的 Markdown 代码块语法:

  • 围栏代码块 (Fenced Code Blocks): 使用三个反引号(```)来包裹代码块。你可以在开头的反引号后指定语言,以获得正确的语法高亮。

    ```go
    package main
    
    import "fmt"
    
    func main() {
        fmt.Println("Hello, Hugo!")
    }
    
    
    ```markdown
    ```python
    def greet(name):
        print(f"Hello, {name}!")
    
    greet("World")
    
  • 缩进代码块 (Indented Code Blocks): 将代码块的每一行缩进四个空格。这种方式通常不如围栏代码块灵活,并且指定语言高亮的功能有限。

        package main
    
        import "fmt"
    
        func main() {
            fmt.Println("Hello, Hugo!")
        }
    

支持的语言

Chroma 支持大量的编程语言。你可以在 Hugo 的文档或 Chroma 的官方文档中找到支持的语言列表。如果你的主题支持,通常会有一个 chromastyles.Go 文件,其中定义了可用的样式。

基础内容元素

在 Hugo 中创建内容文件是一项直观的过程,主要依赖于 Markdown 语法。每个内容文件都包含一个 TOML 格式的 frontmatter(也称为头部信息)和一个主体内容部分。Frontmatter 包含了文章的元数据,如标题、发布日期、分类、标签等,这些信息对于搜索引擎优化(SEO)和网站的组织结构至关重要。

Frontmatter 详解

Frontmatter 位于文件的最开始,由三个 +++ 分隔符包围。以下是一些常用的 frontmatter 键值对:

  • title: 文章的标题。
  • description: 文章的简短描述,常用于 SEO。
  • date: 文章的发布日期,格式为 YYYY-MM-DD
  • author: 文章的作者。
  • categories: 文章所属的分类,可以是一个列表。
  • tags: 文章的标签,可以是一个列表,方便用户搜索和关联内容。
  • draft: 布尔值,true 表示草稿,false 表示已发布。

Markdown 内容主体

Frontmatter 之后是文章的主体内容,完全使用 Markdown 语法编写。

标题

Markdown 支持六级标题,使用 # 符号表示,# 的数量代表标题的级别。

# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题

段落

段落之间用一个或多个空行分隔。

这是第一个段落。

这是第二个段落。

列表

Markdown 支持无序列表和有序列表。

无序列表

使用 *-+ 来创建无序列表。