Plataforma personalizada

¡Hola Comunidad de Discourse!

Estoy planeando construir una plataforma sobre una instancia de Discourse autoalojada que incluirá varias características personalizadas como un motor de búsqueda, recursos de documentación, wikis y más. Estas características se desarrollan utilizando HTML, CSS y JavaScript, principalmente como páginas estáticas.

Mi objetivo es integrar estas páginas personalizadas directamente en el foro de Discourse para que aparezcan como páginas nativas en lugar de publicaciones, creando una experiencia de usuario fluida donde se sientan como una parte integral del foro. Me gustaría que estas páginas estáticas fueran accesibles para los usuarios del foro, con todas las funcionalidades de JavaScript funcionando según lo previsto.

¿Alguien podría aconsejarme si este enfoque es posible dentro de Discourse, o si hay plugins, mejores prácticas o configuraciones específicas que debería investigar? ¡Cualquier orientación sobre cómo incrustar y mostrar páginas personalizadas de HTML/JS sin que parezcan publicaciones sería muy apreciada!

¡Gracias de antemano por cualquier información!

No lo sé (puedes incrustar, sin embargo), pero por pura curiosidad: ¿a qué te refieres con página estática de una aplicación dinámica?

Bueno, todas las características que planeo implementar, como las mencionadas anteriormente, son códigos estáticos, lo que significa que todo está construido a través de HTML, CSS y JS nativo. Me pregunto si es posible crear una página estática y agregar los códigos personalizados para las características mencionadas en mis propias instancias de Discourse.

Lamento continuar con esto, pero Discourse no es estático. Es dinámico. La mayoría de las soluciones de JavaScript también lo son, o se basan en PHP.

Entonces, ¿es ahora una cuestión de términos? ¿Y solo quieres incrustar el foro de Discourse en sí en una página web entre todo lo demás? Puedes mostrar temas, pero te perderás casi todas las demás funcionalidades de Discourse, hasta donde sé.

2 Me gusta

@JstTan Quizás quieras echar un vistazo a:

2 Me gusta

No, el código que planeo implementar, como la página que quiero agregar a mi foro de Discourse, es una página estática, por lo que no habría renderizado del lado del servidor ni nada por el estilo.

No, quiero agregar la página web a mi instancia del foro de Discourse. Exactamente lo contrario de lo que dices.

Esto es bastante genial, pero en realidad estoy pensando en otra cosa, como agregar y crear una página estática dentro de Discourse. La página también necesitaría agregar HTML, CSS y JavaScript personalizados.

Se hizo una pregunta similar recientemente.
Aquí hay una respuesta dada:

Bueno, he notado que mi pregunta podría ser muy confusa, así que he editado la pregunta con el mensaje regenerado con ChatGPT. Esta es la pregunta editada:

¡Hola Comunidad de Discourse!

Estoy planeando construir una plataforma sobre una instancia de Discourse autoalojada que incluirá varias características personalizadas como un motor de búsqueda, recursos documentales, wikis y más. Estas características se desarrollan utilizando HTML, CSS y JavaScript, principalmente como páginas estáticas.

Mi objetivo es integrar estas páginas personalizadas directamente en el foro de Discourse para que aparezcan como páginas nativas en lugar de publicaciones, creando una experiencia de usuario fluida donde se sientan como una parte integral del foro. Me gustaría que estas páginas estáticas fueran accesibles para los usuarios del foro, con todas las funcionalidades de JavaScript funcionando según lo previsto.

¿Alguien podría aconsejarme si este enfoque es posible dentro de Discourse, o si hay plugins, mejores prácticas o configuraciones específicas que debería investigar? ¡Cualquier orientación sobre cómo incrustar y mostrar páginas personalizadas de HTML/JS sin que parezcan publicaciones sería muy apreciada!

¡Gracias de antemano por cualquier idea!

¿Sería adecuada la página publicada para mi propósito?

Todo eso suena a cosas que Discourse ya tiene.

La forma más fácil de hacerlo es alojarlas en otro lugar y agregar enlaces a ellas con un componente temático y hacer que ese sitio tenga el mismo aspecto que tu sitio de Discourse. La gente no se fija en las URL, así que si mantienes la navegación en los otros sitios de tal manera que la gente pueda volver a Discourse, entonces simplemente funciona y no se requiere nada sofisticado.

No estoy muy seguro de lo que eso significa, pero si realmente quieres agregar las funciones personalizadas que tengas a Discourse, entonces tendrás que crearlas como plugins o componentes temáticos.

No está claro cuál es tu objetivo.

2 Me gusta

¿JavaScript de dónde?

1 me gusta

eso es exactamente lo que hace si usas la extensión Home Pages del plugin Landing Pages.

ver:

3 Me gusta

Hola,

Disculpa la demora en responder. Las características que enumeré son algunos ejemplos de las que quiero implementar, hay alrededor de 20 de ellas. Todas están escritas con JS, HTML y CSS puros, sin necesidad de renderizado del lado del servidor.

Prefiero integrarlo directamente en Discourse, como crear una página dentro de Discourse, y editar la página para agregar todos los códigos personalizados. Sería más fácil de mantener para mí, ya que todo está en un solo lugar, mientras que mis usuarios podrían acceder al contenido directamente a través del foro de Discourse sin necesidad de abandonarlo. ¿Es posible hacer esto a través de Discourse? Si es posible, ¿cómo?

Quiero agregar características personalizadas al foro de Discourse que alojaré. Las características personalizadas se crean directamente a través de HTML, CSS y JS puro. Me pregunto si es posible hacerlo directamente, sin necesidad de crear plugins.

Quiero implementar las características de código (JavaScript, HTML, CSS) directamente en el código fuente de una sola página, y que cada característica tenga su propia página.

Creo que el plugin de páginas de destino enlazado arriba es el método más cercano a lo que creo que estás describiendo que ya está integrado en Discourse.

1 me gusta

Otro enfoque que utilizo para lo que (¿creo?) estás describiendo aquí es usar un Ghost Blog/CMS para crear y alojar páginas o publicaciones individuales donde quiero mostrar páginas personalizadas. Ghost es excepcionalmente adecuado para este propósito debido a su flexibilidad para incluir e insertar los tres tipos de código (JS, CSS y HTML) por página, y/o específico de sección/etiqueta y/o a nivel de sitio a través de “inyecciones de código en el encabezado”, “inyecciones de código en el pie de página” e inclusiones de código/scripts en línea directamente en el editor de páginas/publicaciones.

Luego tienes múltiples opciones en Discourse sobre cómo deseas incrustar o incluir sin problemas esas páginas externas en tus sitios de Discourse. Puedes usar RSS, comentarios incrustados, Iframes, páginas enlazadas u otros métodos.

Encuentro que esta combinación/emparejamiento de Discourse y Ghost puede proporcionar una plataforma ideal para este caso de uso particular donde necesitas la flexibilidad de la codificación “sobre la marcha” y las inyecciones arbitrarias de JavaScript.

Una vez que entendí (ambas) las fortalezas y limitaciones naturales, muy opuestas y muy complementarias, de cada una de estas plataformas (Ghost y Discourse) y cómo se pueden combinar e integrar, no he encontrado una mejor solución.

De esta manera, puedes obtener las características de organización de contenido y plataforma comunitaria increíblemente robustas de Discourse, junto con la simplicidad del enfoque sobre la marcha de Ghost para la edición de código en línea y la flexibilidad de incluir JS, CSS y HTML (e incluso Markdown) en páginas individuales.

Una verdadera ventaja es que ambas plataformas, al ser de código abierto y basadas en GitHub, tienen comunidades igualmente robustas, activas, amigables y de apoyo donde puedes participar, obtener soporte y aprender rápida e infinitamente.

1 me gusta