Struttura dei temi e dei componenti del tema

Discourse supporta i temi nativi che possono essere caricati da un archivio .tar.gz o da un repository git remoto, inclusi i repository privati.

Un esempio di tema si trova qui: GitHub - discourse/discourse-simple-theme: Sam's simple discourse theme · GitHub

Il repository git verrà controllato per gli aggiornamenti (una volta al giorno) oppure utilizzando il pulsante Verifica aggiornamenti. Quando vengono rilevate modifiche, il pulsante Verifica aggiornamenti cambierà in Aggiorna all’ultima versione.

image

Per creare un tema, è necessario seguire una specifica struttura di file. Questi sono i file che puoi includere:

about.json (obbligatorio)

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/{qualsiasi}/{qualsiasi}/{qualsiasi}.scss

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

assets/{nome_file_asset}

settings.yml

Tutti questi file :arrow_up: sono facoltativi, quindi hai bisogno di creare solo quelli che ti servono.

Per chi desidera suddividere il SCSS del tema in più file, ora è possibile.

Per chi desidera suddividere il tema in più file JS, basta aggiungere i file JS desiderati nella directory javascripts.

La struttura del file about.json è riportata di seguito e puoi trovare maggiori informazioni su di essa qui: https://meta.discourse.org/t/adding-metadata-to-a-theme/119205:

{
  "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"]
}

Le istruzioni su come aggiungere impostazioni al tuo tema sono disponibili qui: Add settings to your Discourse theme.

Per indicare a Discourse che stai per aggiungere un componente del tema e non un tema completo, basta aggiungere la riga "component": true al file about.json

La struttura dei file corrisponde al CSS / HTML personalizzato del tema.

Ulteriori letture

Dai un’occhiata agli altri articoli con il tag #themes::tag.

:information_source: Vedi anche:


Ultima revisione di @SaraDev il 2022-08-15T21:00:00Z


Questo documento è sottoposto a controllo delle versioni - suggerisci modifiche su github.

62 Mi Piace
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