Featured image of post Hugo 如何关闭 tags 和 分类目录下生成的 index.xml 文件

Hugo 如何关闭 tags 和 分类目录下生成的 index.xml 文件

我发现 Google 索引有一些未编入索引的URL,但这些URL其实只是把 html 变成了 xml。实在没必要进行重复索引。所以要禁止这些 xml 文件的生成。查了一下文档。有了以下解决办法。

首先,我们要了解一下 Hugo 中的 Term 的概念:

  1. 基本定义
  • Term 是 Hugo 中分类系统(Taxonomy)的具体项目
  • 属于某个 Taxonomy(分类法)下的具体值
  1. 举例说明
1
2
3
4
5
6
7
taxonomies:
  - category (分类法/taxonomy)
    - tech (项目/term)
    - life (项目/term)
  - tag (分类法/taxonomy)
    - golang (项目/term)
    - hugo (项目/term)
  1. 目录结构示例
1
2
3
4
5
6
7
8
9
content/
├── posts/
│   └── first-post.md  # 文章前置参数包含 tags: ["hugo", "tech"]
├── categories/        # taxonomy
│   ├── tech/         # term
│   └── life/         # term
└── tags/             # taxonomy
    ├── hugo/         # term
    └── golang/       # term
  1. URL 结构
  • /categories/ - taxonomy 页面
  • /categories/tech/ - term 页面
  • /tags/ - taxonomy 页面
  • /tags/hugo/ - term 页面

我们可以看到在term所影响的目录下,都生成了 index.htmlindex.xml 文件。我们要把 index.xml 文件去掉,需要修改 Hugo 的配置文件,增加以下部分, outputs最左侧不用留空格,是最顶级属性:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
outputs:
  home:
    - HTML
    - RSS
  section:
    - HTML
  taxonomy:
    - HTML
  term:
    - HTML

我们看到,这里主要是将 term 的输出,只保留了 HTML,这样就不会生成很多 xml 文件了。

删除 public 目录,重新执行 hugohugo server,可以看到,之前的 tags 目录下的所有tag子目录下只有 index.html了。

Licensed under CC BY-NC-SA 4.0