テーマとテーマコンポーネントの構造

Discourse は、.tar.gz アーカイブやリモート Git リポジトリ(プライベートリポジトリを含む)からソースを取得できるネイティブテーマをサポートしています。

テーマの例はこちらです: GitHub - discourse/discourse-simple-theme: Sam's simple discourse theme · GitHub

Git リポジトリは毎日1回(1日1回)更新を確認するか、更新を確認 ボタンを使用して確認できます。変更が検出されると、更新を確認 ボタンは 最新に更新 に変わります。

image

テーマを作成するには、特定のファイル構造に従う必要があります。以下のファイルを含まれます:

about.json (必須)

common/common.scss
common/header.html
common/after_header.html
common/footer.html
common/head_tag.html
common/body_tag.html
common/embedded.scss

desktop/desktop.scss
desktop/header.html
desktop/after_header.html
desktop/footer.html
desktop/head_tag.html
desktop/body_tag.html

mobile/mobile.scss
mobile/header.html
mobile/after_header.html
mobile/footer.html
mobile/head_tag.html
mobile/body_tag.html

locales/en.yml
locales/{locale}.yml

stylesheets/{anything}/{anything}/{anything}.scss

javascripts/{anything}.js
javascripts/{anything}.gjs
javascripts/{anything}.hbs

assets/{asset_filename}

settings.yml

これらのファイルはすべて :arrow_up: 任意です。必要に応じて作成するものだけを準備すれば問題ありません。

テーマの SCSS を複数のファイルに分割したい方は、現在それが可能です。

テーマを複数の JS ファイルに分割したい方は、必要な JS ファイルを javascripts ディレクトリに追加するだけです。

about.json ファイルの構造は以下の通りです。詳細については Adding metadata and screenshots to a Theme を参照してください:

{
  "name": "My Theme",
  "component": false,
  "license_url": null,
  "about_url": null,
  "authors": null,
  "theme_version": null,
  "minimum_discourse_version": null,
  "maximum_discourse_version": null,
  "assets": {
    "variable-name": "assets/my-asset.jpg"
  },
  "color_schemes": {
    "My Color Scheme": {
      "primary": "222222"
    }
  },
  "screenshots": ["screenshots/light.jpeg", "screenshots/dark.jpeg"]
}

テーマに設定を追加する方法に関する手順はこちら: Add settings to your Discourse theme.

完全なテーマではなく テーマコンポーネント を追加することを Discourse に伝えるには、about.json ファイルに "component": true という行を追加してください。

ファイル構造は、テーマのカスタム CSS / HTML と一致します。

参考資料

#themes::tag タグの付いた他の記事もご覧ください。

:information_source: 関連項目:


最終確認: @SaraDev (2022-08-15T21:00:00Z)


このドキュメントはバージョン管理されています - 変更の提案は github でどうぞ。

「いいね!」 62
Alien Night Theme - A free Dark Theme for Discourse
Override values for auto-generated color variables
How to modify the header HTML, but still remaining the default founctions
Custom user fields show on Activity, but not Summary page
Some basic questions about discourse and rails
Create and share a font theme component
Add support for theme settings
How do I get started with Discourse development as a regular end user with no programming experience?
Color Scheme Contest (with Prizes!)
Custom assets upload folder?
Designer's Guide to getting started with themes in Discourse
Create and share a color scheme
Theme Developer Quick Reference Guide
Adding metadata and screenshots to a Theme
Theme Developer Tutorial: 2. Creating a remote theme
Mobile View Loading different HTML as compared to Desktop
Developing Discourse Themes & Theme Components
Minimizing Maintenance on Theme Customizations
Need help with theme component Github
Challenges creating a custom color palette
Allow users to select new color palettes
Split up theme SCSS into multiple files
Push to digital ocean from command line and rebuild
Battle Axe - A free theme by the Tappara.co hockey community
Beginner's guide to using Discourse Themes
Discourse deployment using github or bitbucket?
How to remove sticky top bar?
Do you have original customisations?
Add custom content that only appears on your homepage
Highlight color
Timefuser Theme
Compact member list
Understanding the development/deployment process
CSS Theme Contest (with Prizes!)
How to bring in Latest topics when using category boxes
Need to include PGN (chess game notation) in a post
Custom header colour and category icons and login button
Automatic dark mode for embedded comments as well?
Add settings to your Discourse theme