# 主题开发 您可以根据此文档开发自己喜欢的OneNav主题。 ## 目录结构 OneNav主题位于站点根目录下的`/templates`目录,或者是`/data/templates`,逻辑为: 1. 优先读取`/templates`目录下的主题 2. 如果未读取到`/templates`目录下的主题,则尝试从`/data/templates`读取 ## 主题目录命名规范 1. 主题目录不能包含特殊字符,比如`-/.*!@#$%^&`等 2. 目录名称不能包含空格 ## 创建一个主题 在`/templates`下创建一个目录,比如`HelloWorld`,里面至少需要存在2个文件,分别是: * `index.php` - 主题首页文件 * `info.json` - 主题描述等信息 ### info.json配置信息 info.jsonn内容包含: ```json { "name":"Hello World", "description":"Hello World", "homepage":"https://www.xiaoz.me", "version":"1.0.0", "update":"2022/04/13", "author":"xiaoz", "screenshot":"https://img.rss.ink/imgs/2022/03/42ed3ef2c4a50f6d.png" } ``` 字段含义如下: * name:主题名称 * description:主题描述 * homepage:作者主页 * version:主题版本 * update:主题更新时间 * author:主题作者 * screenshot:主题截图 这个时候回到OneNav后台 - 系统设置 - 主题设置,可以看到刚刚创建好的`HelloWorld`主题,不过当前没有实际作用,因为`index.php`还没有任何内容。  ### 内置变量 您在`index.php`中可以使用以下变量,注意需要通过PHP开始符和结束符包裹,比如`` * `$site['title']`:站点标题 * `$site['logo']`:站点logo * `$site['subtitle']`:站点副标题 * `$site['keywords']`:站点关键词 * `$site['description']`:站点描述 * `$site['custom_header']`:自定义header * `$template`:主题文件夹名称,比如`HelloWorld` ### index.php 接下来我们试着在`index.php`添加内容,这个文件可以直接使用上面提到的内置变量。试着将上面的变量添加到`index.php`,内容如下: ```php