我正在寻找使用静态站点生成器来构建一些即将推出的网站,并且正在与 Jekyll 和 Hugo 进行交流。这些网站将采用自定义 Bootstrap 风格设计,而不是任何预建主题。在弄乱了这两个之后,我喜欢使用 Hugo 的外观。
无论如何,在浏览他们的文档时我遇到了一个问题。我是否需要为每个网站创建一个“主题”,或者我可以将所有内容保留在全局 /layouts、/static、/archetypes 等文件夹中吗?
我并不打算将这些设计打包为可重用的主题,当我尝试记住 Hugo 将这些模板文件优先于其他模板文件的顺序时,这似乎是不必要的卷积,将事物嵌套得更深。
Hugo 不附带默认主题,因此您必须编写自己的主题或使用预构建的主题。 Hugo 文档列出了检查模板文件的优先级,以确定如何呈现内容。
位于全局
layouts
文件夹中的模板优先于 themes/<theme name>/layouts
中的模板。
因此,基于此,您实际上可以将模板文件仅放在全局
layouts
文件夹中。
您不需要创建或拥有主题。您可以拥有一个功能齐全的网站,根本不需要
theme
目录。
考虑以下网站结构,独立且没有主题。
hugosite.example.com
├── archetypes
│ └── default.md
├── assets
│ ├── scss
│ │ ├── _style.scss
│ │ └── _example.scss
│ └── js
│ └── main.js
├── config
│ └── _default
│ ├── hugo.toml
│ └── params.toml
├── content
│ └── _index.md
└── layouts
├── _default
│ ├── baseof.html
│ └── index.html
└── partials
└── shortcodes
如果存在
theme
目录,则站点目录中的任何文件(如上所示)将优先于主题文件。例如,项目目录中的archetypes/default.md
将优先于themes/theme-name/archetypes/default.md
。
如果您想从其他存储库加载一些小组件而没有完整的主题,您还应该考虑 Hugo 模块。