开发组件
如果你已经构建了一个 Hugo 主题组件,并希望贡献给 Hugo FixIt 社区,请与我们分享。
简介
Hugo 提供了对主题组件的高级支持。
自从 Hugo 0.42 版本以来,项目可以将主题配置为所需的任意数量的主题组件的组合:
|  |  | 
甚至可以嵌套这个设置,并且让主题组件本身在其自己的 hugo.toml 文件中包含主题组件(主题继承)。
上面的 hugo.toml 文件中的主题定义示例创建了一个具有 3 个主题组件的主题,优先顺序为从左到右。
对于任何给定的文件、数据条目等,Hugo 会首先查找项目中的内容,然后是 base-theme、my-shortcodes,最后是 my-components。
Hugo 使用两种不同的算法来合并文件系统,取决于文件类型:
- 对于 i18n和data文件,Hugo 通过使用文件中的翻译 ID 和数据键进行深度合并。
- 对于 static、layouts(模板)和archetypes文件,这些是在文件级别上合并的。因此会选择最左边的文件。
上面的 theme 定义中使用的名称必须与 /your-site/themes 目录中的文件夹名称匹配,例如 /your-site/themes/my-shortcodes。
还要注意,作为主题的一部分的组件可以有其自己的配置文件,例如 hugo.toml。目前存在一些限制,即主题组件可以进行的配置:
- params(全局和每种语言)
- menu(全局和每种语言)
- outputformats和- mediatypes
这里也适用相同的规则:具有相同 ID 的最左边的参数/菜单等将获胜。上述内容中还存在一些隐藏的和实验性的命名空间支持,Hugo 将努力在未来改进,但鼓励主题作者创建自己的命名空间,以避免命名冲突。
要了解 Hugo 主题组件以及如何使用它们,请访问 https://gohugo.io/hugo-modules/theme-components/。
案例展示
访问 此页面 浏览由 Hugo FixIt 社区创建的主题组件合集。
开发教程
前往 如何开发一个 Hugo 主题组件 页面查看详情。
如果你对组件有了一定的认知,并打算开启一个新的组件开发之旅,不妨试试用下面这个 GitHub 模板仓库创建你的组件骨架。
API 参考
前往 API 参考 页面获取更多信息。
 支付宝
支付宝 微信
微信