目录结构
Halo 2.0 的主题基本目录结构如下:
~/halo2-dev/themes/my-theme
my-theme
├── templates/
│ ├── assets/
│ │ ├── css/
│ │ │ └── style.css
│ │ └── js/
│ │ └── main.js
│ ├── layout.html
│ ├── index.html
│ ├── post.html
│ ├── page.html
│ ├── tag.html
│ ├── tags.html
│ ├── category.html
│ ├── categories.html
│ ├── archives.html
│ └── author.html
├── screenshot.png
├── i18n/ # 可选的国际化消息
│ ├── default.properties
│ └── zh_CN.properties
├── theme.yaml
├── settings.yaml
├── annotation-setting.yaml # 可选的主题附带资源
└── ui-plugin/ # 可选的 Console / UC UI 扩展
├── package.json
├── src/
│ └── index.ts
└── dist/ # Halo 只读取此构建目录
详细说明:
/templates/- 主题模板目录,存放主题模板文件,所有模板都需要放在这个目录。关于模板的详细说明,请查阅 模板编写。/templates/assets/- 主题静态资源目录,存放主题的静态资源文件,目前静态资源文件只能放在这个目录,引用方式请查阅 静态资源。/templates/layout.html- 可选的页面布局契约模板,从 Halo 2.26.0 开始可用于让插件前台页面复用当前主题的页面外壳。详细文档请查阅 页面布局契约。/screenshot.png- 可选的主题预览图文件(引入版本:2.25.0),支持screenshot.png、screenshot.jpeg、screenshot.jpg和screenshot.webp。Halo 会按此顺序识别第一个可读文件,用于 Console 主题预览,并通过Theme.status.screenshot暴露访问地址。/i18n/- 可选的主题国际化消息目录,详细文档请查阅国际化。/theme.yaml- 主题配置文件,配置主题的基本信息,如主题名称、版本、作者等。详细文档请查阅 配置文件。/settings.yaml- 主题设置定义文件,配置主题的设置项表单。详细文档请查阅 设置选项。- 主题根目录中的其他
.yaml或.yml文件 - 可选的主题附带资源,只会加载 Halo 允许的资源类型,详细文档请查阅主题附带资源。 /ui-plugin/- 可选的 Console / UC UI 扩展项目。Halo 只读取其中的dist构建目录,详细文档请查阅 UI 扩展。
使用 Vite 等构建工具的主题通常还包含 src 和 public,并由构建命令生成 templates。这类项目应修改源码而不是生成目录,详细约定请参考使用 Vite 开发主题。