文章元数据指定
Contents
问题原因
- 主题自带的 archetypes:许多 Hugo 主题(包括 FixIt)在其主题目录中包含了自己的 archetypes 模板。当你运行
hugo new时,Hugo 会优先使用主题中的 archetypes,而不是你项目根目录下的archetypes。
解决方案
方法一:覆盖主题的 archetypes
-
在项目中创建对应的 archetypes 文件:
- 在你的 Hugo 项目根目录下,找到或创建
archetypes目录。 - 在该目录中创建一个与主题 archetypes 同名的文件,例如
default.md。
- 在你的 Hugo 项目根目录下,找到或创建
-
复制并修改主题的 archetypes 文件:
- 从主题目录复制
default.md到你项目的archetypes目录:1cp themes/FixIt/archetypes/default.md archetypes/default.md - 编辑
archetypes/default.md,删除不需要的元数据,或者根据你的需求进行修改。例如:这样,你就可以控制生成的前置元数据,只保留你需要的字段。1 2 3 4 5+++ title: "{{ replace .Name "-" " " | title }}" date: {{ .Date }} draft: true +++
- 从主题目录复制
-
验证修改效果:
- 运行
hugo new命令创建新内容,检查生成的文件是否符合预期。
- 运行
方法二:指定使用自定义 archetypes
-
使用
--kind参数:- 当你运行
hugo new时,可以使用--kind参数指定使用的 archetype:1hugo new --kind default posts/my-new-post.md - 这将强制 Hugo 使用你项目中
archetypes/default.md。
- 当你运行
-
为特定内容类型创建 archetype:
- 如果你有不同的内容类型(如
posts、pages),可以在archetypes目录中创建对应的模板:1 2 3archetypes/ ├── default.md └── posts.md - 然后运行:
Hugo 会自动使用
1hugo new posts/my-new-post.mdarchetypes/posts.md。
- 如果你有不同的内容类型(如
方法三:禁用主题的 archetypes(不推荐)
-
修改配置文件:
- 在
config.toml中添加以下配置:1themeArchetypes = false - 注意:这将禁用所有主题的 archetypes,如果你的主题依赖特定的 archetypes,这可能会导致问题,因此不太推荐。
- 在
示例
假设主题的 archetypes/default.md 内容为:
|
|
你希望只保留 title 和 date,可以在项目的 archetypes/default.md 中修改为:
|
|
总结
- 主题中的 archetypes 会覆盖项目中的默认设置。为了解决这个问题,需要在项目中创建对应的 archetypes 文件。
- 在项目的
archetypes目录中创建或修改模板,确保 Hugo 使用你的自定义模板。 - 验证修改效果,确保生成的内容符合你的需求。
希望这些步骤能帮助你控制 hugo new 命令生成的文档配置。如果你有其他问题,请随时提问!