参考相关文档,在本地部署 Halo2.0,主题目录在 ~/halo-next
下。
本地启动需要添加配置 -e SPRING_THYMELEAF_CACHE=FALSE
这样可以关闭缓存,就可以实时刷新主题了。
-e SPRING_PROFILES_ACTIVE=dev
则可以打开 swagger-ui。
后台地址:http://localhost:8090/console
文档地址:http://localhost:8090/swagger-ui.html
docker run \
-it -d \
--name halo-next \
-p 8090:8090 \
-v ~/halo-next:/root/halo-next \
-e HALO_EXTERNAL_URL=http://localhost:8090/ \
-e HALO_SECURITY_INITIALIZER_SUPERADMINPASSWORD=P@88w0rd \
-e SPRING_THYMELEAF_CACHE=FALSE \
-e SPRING_PROFILES_ACTIVE=dev \
halohub/halo-dev:2.0.0-alpha.1
windows 电脑下cmd无法识别 \ ,所以需要在wsl2窗口下执行
下载halo-theme-hao主题
压缩为 zip 包,然后在 halo console 控制台上传主题,此时可以在 halo 的主题路径下看到刚才上传的主题,名称为 theme-hao
。
halo 的主题路径:
- mac 默认在 ~/halo-next/theme
- windows 默认在 wsl2 中
可以通过 IDEA 或者 vscode 直接打开主题文件夹,进行操作开发,这里会实时生效。
windows系统推荐使用vscode打开,因为IDEA目前对于wsl2的支持并不好
- 直接在主题目录(~/halo-next/)下,执行 mkdir -p theme/theme-hao
windows系统目录是在 wsl2 里面的 /home/用户/halo-next
- git pull 代码。此时打开 console 控制台是看不到这个主题的,(halo
后面会添加扫描主题功能)
windows系统推荐使用ssh的方式连接github,然后再拉取代码
- 通过 http 接口,将 theme.yaml 的配置提交,接口可以参考 swagger-ui
也可以直接通过swagger来执行对应的接口
- 可以参考 http/theme.http 内的脚本
通过以上过程,在修改前端代码时,已经可以实时看到效果,但是当修改了 settings.yaml 配置后,发现在前端并不能直接通过 thymeleaf 获取到字段值,这里就需要调用接口修改 console 后台的配置。
参考 http/settings.http 文件
- 在 console 后台获取到 cookie
- 调用删除 settings 接口
- 将新的配置放在 yaml 转 json,然后调用 post 接口
可以参考相关主题的用法
Halo 官方默认主题:https://github.com/halo-sigs/theme-default
Hexo-Butterfly 主题:https://github.com/jerryc127/hexo-theme-butterfly