No se puede establecer el modo markdown como predeterminado

En seguimiento a esto, tenemos un plugin que utiliza tokens BBCode “wrap_open”, que aún no son compatibles con el editor de texto enriquecido. Por lo tanto, debemos asegurarnos de permanecer en modo Markdown por ahora.

Utilicé Claude Sonnet para generar el siguiente código para asegurarme de esto. Estaría encantado de recibir cualquier comentario sobre cómo podría mejorarlo (especialmente si tiene algún error :sweat_smile:). También lo comparto en caso de que ayude a otros administradores del foro. El código va en Configuración del tema > JS (/admin/customize/themes/2/common/js/edit):

import {
  apiInitializer
} from "discourse/lib/api";

export default apiInitializer((api) => {
  // Forzar el cambio del editor del usuario a modo markdown
  function switchToMarkdownMode() {
    const currentUser = api.getCurrentUser();

    // El usuario debe haber iniciado sesión si el compositor se abrió
    if (!currentUser) {
      console.error('No se encontró usuario');
      return;
    }

    // Obtenida esta opción de aquí
    // https://github.com/discourse/discourse/blob/f0fc5646dc9bd29b0e814faea490e34800e9b322/app/assets/javascripts/discourse/app/models/user.js#L262C1-L266C4
    const currentMode = currentUser.get('user_option.composition_mode');

    if (currentMode !== 0) {
      // Solo cambiar si no está ya en modo markdown
      // Uso de ejemplo: https://github.com/discourse/discourse/blob/87476ce2c18fb8f856dda7ff03804ed5fbb0ff38/app/assets/javascripts/discourse/app/services/user-tips.js#L127
      currentUser.set('user_option.composition_mode', 0);

      // Guardar la preferencia del usuario en el servidor
      currentUser.save(['composition_mode']).then(() => {
        console.log('Cambiado exitosamente a modo markdown');
      }).catch((error) => {
        console.error('Error al actualizar el modo de composición:', error);
      });

      // Alternar inmediatamente la interfaz del compositor actual
      setTimeout(() => {
        const toggleButton = document.querySelector('.composer-toggle-switch[data-rich-editor]');
        if (toggleButton) {
          const isRichTextActive = toggleButton.getAttribute('aria-checked') === 'true';
          if (isRichTextActive) {
            toggleButton.click();
            console.log('Alternado el compositor actual a modo markdown');
          }
        }
      }, 100); // Pequeña demora para asegurar que el compositor se renderice completamente
    } else {
      console.log('Ya está en modo markdown, no se necesita cambio');
    }
  }

  api.onAppEvent('composer:opened', () => {
    switchToMarkdownMode();
  });
});