Ich plane, eine Plattform auf Basis einer selbst gehosteten Discourse-Instanz zu erstellen, die verschiedene benutzerdefinierte Funktionen wie eine Suchmaschine, Dokumentationsressourcen, Wikis und mehr umfassen wird. Diese Funktionen werden hauptsächlich als statische Seiten mit HTML, CSS und JavaScript entwickelt.
Mein Ziel ist es, diese benutzerdefinierten Seiten direkt in das Discourse-Forum zu integrieren, sodass sie als native Seiten und nicht als Beiträge erscheinen. Dies würde ein nahtloses Benutzererlebnis schaffen, bei dem sie sich wie ein integraler Bestandteil des Forums anfühlen. Ich möchte, dass diese statischen Seiten für Forenbenutzer zugänglich sind und alle JavaScript-Funktionalitäten wie vorgesehen ausgeführt werden.
Könnte mir jemand raten, ob dieser Ansatz innerhalb von Discourse möglich ist oder ob es spezielle Plugins, Best Practices oder Konfigurationen gibt, die ich mir ansehen sollte? Jede Anleitung zum Einbetten und Anzeigen benutzerdefinierter HTML/JS-Seiten, ohne dass sie wie Beiträge aussehen, wäre sehr willkommen!
Von allen Funktionen, die ich implementieren möchte, wie die oben genannten, handelt es sich um statische Codes, was bedeutet, dass alles mit HTML, CSS und Vanilla JS erstellt wird. Ich frage mich, ob es möglich ist, eine statische Seite zu erstellen und die benutzerdefinierten Codes für die genannten Funktionen auf meine eigenen Discourse-Instanzen anzuwenden.
Entschuldigen Sie, dass ich darauf zurückkomme, aber Discourse ist nicht statisch. Es ist dynamisch. Das gilt auch für die meisten JS-Lösungen oder PHP-basierten.
Geht es also jetzt um Begriffe? Und Sie möchten einfach nur ein Discourse-Forum an sich in eine Webseite einbetten, neben allem anderen? Sie können Themen anzeigen, aber Sie werden meiner Meinung nach fast alle anderen Funktionen von Discourse verpassen.
Nein, der Code, den ich implementieren möchte, wie die Seite, die ich zu meinem Discourse-Forum hinzufügen möchte, ist eine statische Seite, daher gäbe es kein serverseitiges Rendering usw.
Nein, ich möchte die Webseite zu meiner Discourse-Forum-Instanz hinzufügen. Das Gegenteil von dem, was Sie eigentlich sagen.
Das ist ziemlich cool, aber ich denke eigentlich an etwas anderes, wie das Hinzufügen und Erstellen einer statischen Seite innerhalb von Discourse. Die Seite müsste auch benutzerdefiniertes HTML, CSS und JavaScript hinzufügen können.
Nun, ich habe bemerkt, dass meine Frage sehr verwirrend sein könnte, daher habe ich die Frage mit der von ChatGPT neu generierten Nachricht bearbeitet. Hier ist die bearbeitete Frage:
Hallo Discourse Community!
Ich plane, eine Plattform auf einer selbst gehosteten Discourse-Instanz aufzubauen, die verschiedene benutzerdefinierte Funktionen wie eine Suchmaschine, Dokumentationsressourcen, Wikis und mehr umfassen wird. Diese Funktionen werden hauptsächlich als statische Seiten mit HTML, CSS und JavaScript entwickelt.
Mein Ziel ist es, diese benutzerdefinierten Seiten direkt in das Discourse-Forum zu integrieren, sodass sie als native Seiten und nicht als Beiträge erscheinen. Dies soll ein nahtloses Benutzererlebnis schaffen, bei dem sie sich wie ein integraler Bestandteil des Forums anfühlen. Ich möchte, dass diese statischen Seiten für Forumsbenutzer zugänglich sind und alle JavaScript-Funktionalitäten wie vorgesehen ausgeführt werden.
Könnte mir jemand raten, ob dieser Ansatz innerhalb von Discourse möglich ist, oder gibt es bestimmte Plugins, Best Practices oder Konfigurationen, die ich mir ansehen sollte? Jede Anleitung zum Einbetten und Anzeigen benutzerdefinierter HTML/JS-Seiten, ohne dass sie wie Beiträge aussehen, wäre sehr dankbar!
Der einfachste Weg, dies zu tun, ist, sie woanders zu hosten und Links dazu mit einer Theme-Komponente hinzuzufügen und diese Seite so zu gestalten, dass sie genauso aussieht wie Ihre Discourse-Seite. Die Leute bemerken URLs nicht, also wenn Sie die Navigation auf den anderen Seiten so gestalten, dass die Leute zu Discourse zurückkehren können, dann funktioniert es einfach und es ist nichts Besonderes erforderlich.
Ich bin mir nicht ganz sicher, was das bedeutet, aber wenn Sie Ihre benutzerdefinierten Funktionen wirklich zu Discourse hinzufügen möchten, müssen Sie sie als Plugins oder Theme-Komponenten erstellen.
Entschuldigen Sie die späte Antwort. Die von mir aufgelisteten Funktionen sind nur einige Beispiele für Funktionen, die ich implementieren möchte, es sind etwa 20 davon. Alle sind mit Vanilla JS, HTML und CSS geschrieben, ohne dass ein serverseitiges Rendering erforderlich ist.
Ich ziehe es vor, sie direkt in Discourse zu integrieren, z. B. eine Seite innerhalb von Discourse zu erstellen, die Seite zu bearbeiten, um alle benutzerdefinierten Codes hinzuzufügen, und sie zusammen mit Discourse bereitzustellen. Das wäre für mich einfacher zu warten, da alles an einem Ort ist, während meine Benutzer direkt über das Discourse-Forum auf die Inhalte zugreifen könnten, ohne es verlassen zu müssen. Ist dies mit Discourse möglich? Wenn ja, wie?
Ich möchte benutzerdefinierte Funktionen in das von mir gehostete Discourse-Forum integrieren. Die benutzerdefinierten Funktionen werden direkt über HTML, CSS und Vanilla JS erstellt. Ich frage mich, ob dies direkt möglich ist, ohne Plugins erstellen zu müssen.
Ich möchte die Features-Codes (JavaScript, HTML, CSS) direkt in den Quellcode einer einzigen Seite implementieren, wobei jedes Feature seine eigene Seite haben soll.
Ich glaube, das oben verlinkte Landing Pages Plugin ist die Methode, die dem, was Sie beschreiben, am nächsten kommt und bereits in Discourse integriert ist.
Ein anderer Ansatz, den ich für das verwende, was (glaube ich?) Sie hier beschreiben, ist die Verwendung eines Ghost Blogs/CMS zum Erstellen und Hosten einzelner Seiten oder Beiträge, auf denen ich benutzerdefinierte Seiten anzeigen möchte. Ghost ist für diesen Zweck aufgrund seiner Flexibilität bei der Einbeziehung und Einfügung aller drei Arten von Code (JS, CSS und HTML) pro Seite und/oder abschnitts-/tagspezifisch und/oder auf der gesamten Website durch „Header-Code-Injektionen“, „Footer-Code-Injektionen“ und Inline-Code-/Skript-Einbindungen direkt im Seiten-/Beitragseditor hervorragend geeignet.
Dann haben Sie mehrere Optionen in Discourse, wie Sie diese externen Seiten in Ihre Discourse-Sites einbetten oder nahtlos einbinden möchten. Sie können dann RSS, eingebettete Kommentare, Iframes, verlinkte Seiten oder andere Methoden verwenden.
Ich finde, dass diese Kombination/Paarung von Discourse und Ghost eine ideale Plattform für diesen speziellen Anwendungsfall bietet, bei dem Sie die Flexibilität von „On-the-fly“-Codierung und beliebigen JavaScript-Injektionen benötigen.
Sobald ich (sowohl) die gegensätzlichen als auch die sich ergänzenden natürlichen Stärken und Grenzen jeder dieser Plattformen (Ghost und Discourse) verstanden hatte und wie sie kombiniert und integriert werden können, habe ich keine bessere Lösung gefunden.
Auf diese Weise erhalten Sie die unglaublich robusten Funktionen von Discourse für die vollständige Inhaltsorganisation und Community-Plattform zusammen mit der Einfachheit des On-the-fly-Ansatzes von Ghost für die Inline-Codebearbeitung und die Flexibilität bei der Einbindung von JS, CSS und HTML (und sogar Markdown) auf einzelnen Seiten.
Ein echter Bonus ist, dass beide Plattformen, beide Open Source und GitHub-basiert, ähnlich robuste, aktive, freundliche und unterstützende Communities haben, in denen Sie teilnehmen, Unterstützung erhalten und schnell und endlos lernen können.