通过编程方式安装主题

如果您想通过 app.yml 安装主题,请使用以下格式:

run:
  - exec: echo "开始自定义命令"

  - file:
      path: /tmp/mythemes.yml
      contents: |
        discourse-gifs:
          url: https://github.com/discourse/discourse-gifs.git
          add_to_all_themes: true

  - exec:
      cd: $home
      cmd: su discourse -c 'bundle exec rake themes:install < /tmp/mythemes.yml'

  - exec: echo "结束自定义命令"

YAML 格式选项

YAML 文件支持简短格式(仅 URL)和带有额外选项的长格式:

# 简短格式 - 仅 URL
theme_name: https://github.com/example/theme.git

# 长格式 - 带选项
theme_name:
  url: https://github.com/example/theme_name.git
  branch: "main"
  private_key: ""
  default: false
  add_to_all_themes: false
  skip_update: false
选项 描述
url (必填) Git 仓库 URL
branch 要使用的 Git 分支(默认为仓库的默认分支)
private_key 私有仓库的 SSH 私钥
default 设置为默认主题(布尔值)
add_to_all_themes 仅适用于组件——安装到所有主题中(布尔值)
skip_update 如果主题已安装则跳过更新(布尔值)

从归档文件安装

您还可以从本地的 .zip.tar.gz 归档文件安装主题:

THEME_ARCHIVE=/path/to/theme.zip bundle exec rake themes:install:archive

设置 UPDATE_COMPONENTS=0 可跳过更新包含的组件。

12 个赞

哦,我很高兴这是可能的……我一直在寻找一种方法来跨多站点实例加载主题,这可能是最简单的方法。谢谢!

2 个赞

如果您还在寻找一种通过 zip 文件从本地设备导入主题的程序化方法:

export THEME_ARCHIVE=<文件绝对路径>
bundle exec rake themes:install:archive

或者

THEME_ARCHIVE=<文件绝对路径> bundle exec rake themes:install:archive

是您的解决方案。

6 个赞

(tar.gz也适用)

2 个赞