Supongamos que tengo 3 imágenes publicadas por 3 enlaces, y 3 subtítulos para estas 3 imágenes.
¿Cómo hacer una publicación de diapositivas como en la cuarta imagen (en este tema)
Imagen1:
imagen2:
imagen3:
=================
imagen4:
¡Gracias!
Supongamos que tengo 3 imágenes publicadas por 3 enlaces, y 3 subtítulos para estas 3 imágenes.
¿Cómo hacer una publicación de diapositivas como en la cuarta imagen (en este tema)
Imagen1:
imagen2:
imagen3:
=================
imagen4:
¡Gracias!
No es posible lograr esto en la Lista de Temas porque solo se serializa una imagen por Tema.
Sin embargo, en un solo Tema podrías ver: Slick Image Gallery
Gracias por tu apoyo.
Como dices, no es factible.
Entonces, si solo quiero crear una diapositiva para el contenido (sin imágenes),
¿cómo puedo crear una diapositiva para el contenido en la publicación?
Puedes incrustar una presentación de Google como una presentación de diapositivas en un iframe:
Necesitas permitir esta fuente para iframes en iframes permitidos
Una vez que hayas hecho tu presentación, ve a Archivo -> Publicar en la Web y copia el enlace al final del asistente corto.
Lo mismo también funciona con PowerPoint Sign in to your Microsoft account
Usa Office 365 en línea, accede a Powerpoint y una vez listo ve a Archivo -> Compartir -> Incrustar para obtener el enlace iframe.
Me preocupa, esto afectará al SEO,
porque el contenido no está en el editor de Discourse.
En cambio, el contenido está en Powerpoint (Google o Microsoft).
Creo que es mucho esperar que Discourse sea una herramienta de presentación completa ![]()
Quizás puedas incluir versiones en Markdown de las diapositivas en las siguientes publicaciones.
Espero que haya una forma de crear una diapositiva para el contenido de la publicación (discourse).
También estoy explorando opciones actualmente. ¿Debería ser posible implementarlo como un componente de tema, verdad?
Por ejemplo, existen bibliotecas de Markdown a diapositivas que podrían usarse:
[quote] Aquí están los mejores repositorios de GitHub para esto, clasificados por la facilidad con la que se pueden adaptar a un Componente de Tema de Discourse.
GitHub: gnab/remark
Cómo funciona: Remark está diseñado específicamente para ejecutarse completamente en el navegador. Le proporcionas una cadena de Markdown (donde las diapositivas están separadas por ---), y genera dinámicamente el HTML/CSS necesario para la presentación sobre la marcha.
Por qué encaja con Discourse: Como no requiere pasos de compilación, puedes cargar fácilmente el script remark.min.js a través de tu componente de tema de Discourse. Puedes capturar el Markdown de la publicación de un usuario y pasarlo directamente al motor Remark.
GitHub: hakimel/reveal.js
Cómo funciona: Reveal.js es el peso pesado de las presentaciones web. Si bien es principalmente un framework de presentación HTML, tiene un plugin de Markdown incorporado.
Por qué encaja con Discourse: Es extremadamente rico en funciones (notas del orador, exportación a PDF, animaciones, composición matemática). Puede ejecutarse del lado del cliente, pero es mucho más pesado que Remark.js. Deberás cargar la biblioteca principal de Reveal, el plugin de Markdown y el tema CSS de Reveal en tu componente de Discourse.
GitHub: marp-team/marp
Cómo funciona: Marp es el estándar moderno para diapositivas de Markdown, utilizando un concepto llamado “Directivas” para manejar el tema CSS directamente dentro del frontmatter de Markdown.
Por qué encaja con Discourse: Marp depende en gran medida de herramientas CLI y Node.js para la renderización. Sin embargo, ofrecen Marpit (@marp-team/marpit), el framework central que puede analizar Markdown y generar HTML/CSS. Implementar esto en Discourse requeriría que empaquetaras Marpit en un archivo JavaScript del lado del cliente usando una herramienta como Webpack o Rollup antes de subirlo como un componente de tema.
Para reutilizar uno de estos (como Remark.js) en un componente de tema de Discourse, querrás usar la API de Plugins de Discourse para interceptar bloques específicos de Markdown antes de que se rendericen en la página.
Aquí hay un esquema de alto nivel de cómo puedes construirlo:
Definir un Desencadenante: Decide cómo los usuarios le dirán a Discourse que renderice las diapositivas. Una excelente manera es usar un lenguaje de bloque de código específico, como ```slides o un wrap de BBCode de Discourse como [wrap=slides].
Cargar la Biblioteca: En el about.json de tu componente de tema, incluye el script externo para Remark.js o Reveal.js para que se cargue cuando el usuario visite el foro.
Decorar el Contenido Cocinado: Usa la API de JavaScript de Discourse (api.decorateCookedElement) para buscar tus bloques desencadenantes cada vez que se renderice una publicación.
Renderizar: Cuando la API encuentre un bloque ```slides, oculta el bloque de código predeterminado, crea un nuevo contenedor <div> e inicializa la biblioteca de diapositivas dentro de ese contenedor usando el texto sin procesar del bloque de código.
[/quote]