Incorporare un intero forum Discourse su un altro sito in un iframe

Questo è già stato discusso in altri due thread, ma sono bloccati:

Alcuni sostengono che dovremmo invece lavorare sul rebranding di Discourse per adattarlo al design di un sito esistente.

Per esperienza, questo è molto difficile da realizzare. Il markup e il CSS per quel markup sono molto complessi da gestire e poco flessibili. Ad esempio, gli alberi DOM tra l’intestazione di Discourse e il contenuto principale sono molto diversi tra loro. Inserire contenuti nell’intestazione (nell’editor integrato di Discourse) posiziona i contenuti inseriti molto lontano dall’intestazione effettiva di Discourse, per fare un esempio.

Credetemi, è piuttosto difficile semplicemente “far seguire a Discourse il tema del tuo sito principale”.

Quello che vorrei provare ora è incorporare Discourse in un <iframe>. Vediamo come va.


Richiesta di funzionalità! Sarebbe fantastico se Discourse potesse essere utilizzato come un insieme di elementi personalizzati. Ad esempio:

<!-- ... qualche markup personalizzato ... -->

<discourse-actions backend="http://url.to/actual/discourse/instance">

<!-- ... qualche markup personalizzato ... -->

<discourse-main backend="http://url.to/actual/discourse/instance">

Ciò permetterebbe di incorporare le parti di Discourse ovunque in un sito, e gli elementi si connetterebbero al backend specificato.

Visitando direttamente http://url.to/actual/discourse/instance si aprirebbe Discourse nel modo normale come applicazione web autonoma.

In sostanza, questo renderebbe le parti di Discourse utilizzabili all’interno di strutture HTML generali (come i partiali dei template Handlebars, ma in modo futuro e basato sugli standard web).

Immaginate solo cosa sarebbe possibile con una tale funzionalità (pensate a quando gli elementi personalizzati hanno valori diversi per gli attributi backend)…

We certainly can’t stop you from trying Discourse in an iframe but as cautioned in other topics… it’s expected to be fragile and problematic… and we don’t intend to spend time solving iframe related issues.

It might be a better use of time to describe in detail the problems you run into when theming Discourse so we can help and/or improve the process. We’ve improved theming a lot over the past couple years, and it’s something we definitely want to support and improve where possible.

There are elements that are definitely trickier to customize than others, the header being one of them. This is because a Virtual DOM was implemented to improve performance (A tour of how the Widget (Virtual DOM) code in Discourse works).

So if you’re looking to insert content into the header, you’ll need to utilize that system rather than adding content before/after it from the admin UI (covered a bit in the advanced pluginAPI section of Beginner's guide to developing Discourse Themes). There are also some good examples of manipulating the header content in existing theme-component like Custom Header Links.

9 Mi Piace

Sarebbe bello averlo e vedo che ancora non funziona; quando provo, ottengo solo

1 Mi Piace