在本地搭建主题开发环境

7 阅读

概览

主题开发需要在本地运行一个 Halo 实例,以便实时预览模板修改效果。本文介绍两种方式,推荐使用 Docker Compose,无需配置 Java 开发环境。

关键配置:无论使用哪种方式,都需要关闭 Thymeleaf 模板缓存,否则修改模板文件后需要重启服务才能看到变化。

方式一:运行 Halo 源码

参考 在本地运行 Halo 完成源码的克隆和启动,在此基础上需要额外修改 dev Profile 的配置文件,添加以下配置以关闭模板缓存:

spring:
  thymeleaf:
    cache: false

Halo 运行后,主题目录位于工作目录下的 themes 子目录,将主题项目放在此目录下即可被 Halo 识别:

  • macOS / Linux~/halo2-dev/themes/

  • Windows:在当前用户目录(如 C:\Users\<用户名>)下找到 halo2-dev\themes\ 文件夹

方式二:使用 Docker Compose(推荐)

无需配置 Java 环境,只需安装 Docker,通过 Docker Compose 在本地启动一个专用于主题开发的 Halo 实例。

安装 Docker

创建目录

mkdir ~/halo-theme-dev && cd ~/halo-theme-dev

创建 docker-compose.yaml

version: "3"

services:
  halo:
    image: registry.fit2cloud.com/halo/halo-pro:2.23
    restart: on-failure:3
    volumes:
      - ./halo2:/root/.halo2
    ports:
      - "8090:8090"
    command:
      - --halo.external-url=http://localhost:8090/
      - --spring.thymeleaf.cache=false

其中 --spring.thymeleaf.cache=false 是关键参数,关闭模板缓存后,修改主题模板文件只需刷新浏览器即可看到效果,无需重启容器。

启动服务

docker compose up -d

放置主题文件

Halo 启动后,主题目录位于挂载的工作目录下的 themes 子目录,即 ~/halo-theme-dev/halo2/themes/。将主题项目放在此目录下即可被 Halo 识别:

# 进入主题目录
cd ~/halo-theme-dev/halo2/themes

# 将主题放在此目录下,例如克隆一个主题项目
git clone https://github.com/your-org/your-theme

下一步

环境搭建完成后,就可以开始正式的主题开发了,可以参阅详细的文档:主题开发


评论