Instala la aplicación de consola Discourse Theme CLI para ayudarte a construir temas

El discourse Discourse Theme CLI es una gema de ruby que te permite usar el editor de tu elección cuando desarrollas temas y componentes de temas de Discourse. Al guardar archivos, la CLI actualizará el tema o componente remoto y los cambios aparecerán en vivo.

Instalación

Para probarlo, asegúrate de tener instalado Ruby 2.5 o superior.

Si estás en Windows, tienes 2 opciones:

Opción 1: Subsistema de Windows para Linux.

Windows 10 tiene acceso a un entorno Linux completo, puedes usarlo para instalar ruby simplemente con sudo apt-get install ruby, esto te dará Ruby 2.3.

Opción 2: Windows más antiguo

Las versiones anteriores de Windows no tienen acceso a WSL, puedes instalar Ruby fácilmente con Ruby Installer, elige la versión recomendada y la configuración predeterminada para la instalación.

Mac OS versión 10.13.3 viene con Ruby 2.3 de fábrica, no se necesita nada especial. Si estás usando una versión anterior de Mac OS, considera usar rvm, rbenv o homebrew para instalar un ruby reciente.


Una vez que Ruby 2.2 o posterior se esté ejecutando, abre una terminal o un shell de comandos y ejecuta:

gem install discourse_theme

Una vez instalado, para aprender más sobre él:

discourse_theme

Actualización

gem update discourse_theme

Características

La CLI proporciona 3 funciones principales:

discourse_theme new

Puedes usarlo para crear rápidamente un nuevo tema con discourse_theme new NOMBRE_DE_TU_DIRECTORIO

discourse_theme watch

Puedes usarlo para monitorear un tema y sincronizarlo con un sitio de discourse (con actualización en vivo) usando discourse_theme watch NOMBRE_DE_TU_DIRECTORIO

¡Esto significa que puedes usar tu propio editor para editar tu tema y el sitio se actualizará mágicamente :unicorn: con los cambios!

discourse_theme download

Puedes descargar un tema existente de Discourse usando discourse_theme download NOMBRE_DE_TU_DIRECTORIO. ¡Luego se te dará la opción de comenzar a “monitorear” de inmediato!

Credenciales

Necesitarás generar una Clave de API. Ve al área de administración y genera una clave allí.

  • :exclamation: Selecciona un nivel de “Usuario” de Usuario Único al generar la clave, no Todos los Usuarios.
  • :exclamation: Asegúrate de marcar Clave Global o recibirás errores 403 forbidden.

Las credenciales se almacenan (opcionalmente) en ~/.discourse_theme. Las claves de API se almacenan por sitio, y también se realiza un seguimiento de la URL/theme_id para cada directorio. Si alguna vez necesitas cambiar tu configuración, simplemente agrega --reset a cualquier comando y se te pedirá todos los valores nuevamente.

Testimonios

“¡Esta herramienta es verdaderamente una GEMA!” @awole20
“Esto es muy, muy bueno.” @awesomerobot
“Está funcionando :slight_smile: Y es bastante genial. ¡Genial!” @angus
“Dios mío. Es increíble.” @pfaffman


Este documento está controlado por versión: sugiere cambios en github.

79 Me gusta
Theme Creator, create and show themes without installing Discourse!
CSS Theme Contest (with Prizes!)
Customizing handlebars templates
Setting up a solid workflow for custom theme development
Theme Developer Quick Reference Guide
Structure of themes and theme components
Automating Discourse Plugin Setup with `create-discourse-plugin` gem
When exporting a theme, I get a broken archive
Install Discourse for development using Docker
Developing Plugins Faster by separating the frontend into a theme component
Feedback on "on-discourse" javascript for setting up custom JS for each page?
Add settings to your Discourse theme
Get started with Theme Creator and the Theme CLI
Designer's Guide to getting started with themes in Discourse
Split up theme Javascript into multiple files
Updated Custom Header Icon: Post Data via URL
Theme Developer Tutorial: 2. Creating a remote theme
Developing Discourse Themes & Theme Components
Hiding GUI elements for new users (less overwhelming)
Add custom content that only appears on your homepage
Custom CSS/HTML
[Zotero extension +] Firefox v116 on macOS broken Discourse?
Remote themes not in database
How "difficult" is modifying/extending Discourse for a backend dev
Exporting a Theme from Staging and Importing it to the Production portal
Using Plugin Outlet Connectors from a Theme or Plugin
Downloaded component installs fine, but does not once changed/re-zipped
What are the benefits of a dev environment?
3.2.0.beta2-dev (7019dbcfe1) does not load CSS from common.scss anymore
End-to-end system testing for themes and theme components
Different CSS changes for different color schemes
Need help integrating code wrote on Edittext to the Discourse
Need help integrating code wrote on Edittext to the Discourse
How to add a custom button in user profile card?
How to easily edit my site remotely?
When to use a plugin vs theme component?
Discourse core is switching to pnpm for JS package management
Using the new custom-homepage feature
Focus the editor when title is pre-filled
Cannot put the template in the desired outlet
Is this the correct way to create a theme component?
Split up theme Javascript into multiple files
Canvas Theme Template
If you want to edit this theme, you must submit a change on its repository
Import site theme via console
How are theme setting fields created?
Customisability in discourse?
Edit CSS/HTML editor cursor offset makes it unusable due to CSS font override
Discourse Theme CLI is the bomb
Discourse 2.0.0.beta5 Release Notes
How difficult would it be to make the Discourse UI more like Flarum?
Discourse-webpack: A boilerplate for developing JS-heavy Discourse components
Import Error: about.json does not exist, or is invalid
How to Add Unique HTML Content Below Topic Body in discourse forum for Specific Topics
Reuse Discourse Hamburger Functionality
Themes - Add a description field
Create and share a font theme component
Customisability in discourse?
How to create a theme (if I am a pure end user)
Linting configuration
Linting configuration
Is it possible to use a local plugin directory with a docker install?
How to overrule a color variable for one theme only?
Can't customize text on custom button in template override using UI
Is it possible to use theme component from local folder (as plugin) - for local development?
Restrict editing of remote themes

Las Cargas en Admin >> Personalizar >> Temas desaparecen después de guardar un tema observado.

¿Cómo incluimos los activos de imagen en el tema para que no se eliminen después de guardar?

2 Me gusta

Hola, ¡bienvenido!

Necesitas incluir los activos directamente en tu componente de tema.
En la raíz, creas un directorio assets.
Luego, los declaras en about.json

"assets": {
  "<tu_identificador>": "assets/<tu_nombre_archivo_activo>",
}

Puedes ver un ejemplo aquí GitHub - MeghnaAJ/discourse-christmas-decorations.

3 Me gusta

Una advertencia rápida para los desarrolladores que usan esta herramienta para generar componentes de temas:
¡Se les anima a actualizarla! :+1:

Una PR reciente hizo que el repositorio discourse-theme-skeleton sea la plantilla predeterminada. ¡Les proporcionará los últimos archivos de configuración!

9 Me gusta

¡Gracias!

Sería genial añadir una sección de Actualización al tema…

¿Es una actualización de --reset o de rubygem?

4 Me gusta

¡Buena idea! He añadido una sección de ‘actualización’ al OP

gem update discourse_theme
5 Me gusta

Para instalar el gem en WSL, tuve que ejecutar tanto sudo apt-get install ruby como sudo apt-get install ruby-dev.
Quizás eso se pueda añadir a las instrucciones de instalación.

Si no instalas ruby-dev, ¿recibes un error? No debería ser necesario instalar ruby-dev ya que ruby en sí mismo es suficiente.

4 Me gusta

Estoy bastante seguro de que recibí un error que me indicaba que instalara ruby-dev, de lo contrario no habría sabido que el paquete existía.
Pero no puedo reproducirlo intentando reinstalar. Quizás hice algo raro la primera vez.

2 Me gusta

Hmm, eso es realmente extraño. No dudes en avisarme si puedes reproducir el problema de nuevo.

2 Me gusta

Actualicé mi servidor ayer a 3.5.0.beta9-dev y no obtengo recargas en vivo con el gem del tema de discourse desde entonces. El gem es la versión 2.1.6.

No veo ningún error ni nada, así que primero quería preguntar si alguien más tiene el mismo problema.

2 Me gusta

Las recargas en vivo de las hojas de estilo se han deshabilitado para instancias de producción, ya que estaban causando problemas al actualizar temas y/o el núcleo de Discourse.

Fundamentalmente: los cambios en las hojas de estilo a menudo están ligados a cambios en JS/HTML, por lo que la carga en vivo solo para las hojas de estilo es arriesgada. Los usuarios terminan ejecutando hojas de estilo ‘nuevas’ contra HTML ‘antiguo’, lo que puede llevar a experiencias muy extrañas.

La carga en vivo todavía está habilitada para instancias de Discourse en modo de desarrollo. Idealmente, deberías usar eso para el desarrollo en lugar de un sitio de producción. Aparte de la recarga de la hoja de estilo, el modo de desarrollo de Ember te da mensajes de error mucho más amigables que el modo de producción de Ember.

3 Me gusta

Ese es un gran cambio. Me sorprende que no hubiera un anuncio. Había estado desarrollando temas principalmente solo en sitios de producción.

Sería bueno tener una configuración del sitio para obtener el comportamiento anterior.

6 Me gusta

De acuerdo, esto me sorprendió y no pude encontrar este hilo actual a pesar de buscar, o tal vez vi la fecha anterior del OP y la ignoré.

1 me gusta

Una publicación fue dividida en un nuevo tema: ¿Cómo recupero un tema anterior?