カスタムプラットフォーム

こんにちは、Discourseコミュニティの皆さん!

セルフホスト型のDiscourseインスタンス上に、検索エンジン、ドキュメントリソース、Wikiなど、さまざまなカスタム機能を含むプラットフォームを構築する予定です。これらの機能は、主に静的ページとしてHTML、CSS、JavaScriptを使用して開発されています。

私の目標は、これらのカスタムページをDiscourseフォーラムに直接統合し、投稿ではなくネイティブページとして表示することです。これにより、フォーラムの不可欠な一部であるかのように感じられる、シームレスなユーザーエクスペリエンスを作成したいと考えています。これらの静的ページは、すべてのJavaScript機能が意図したとおりに実行されるように、フォーラムユーザーがアクセスできるようにしたいです。

このアプローチがDiscourse内で可能かどうか、または検討すべき特定のプラグイン、ベストプラクティス、または構成があるかどうか、どなたかアドバイスをいただけますでしょうか?投稿のように見えないように、カスタムHTML/JSページを埋め込んで表示する方法について、どのようなガイダンスでも大歓迎です!

事前にどのような洞察でも感謝いたします!

埋め込みはできますが、猫を殺すような好奇心から、動的なアプリの静的なページについてどういう意味か分かりません。

私が実装を計画している上記の機能はすべて静的コードであり、HTML、CSS、およびバニラJSで構築されています。静的ページを作成し、言及された機能のカスタムコードを独自のDiscourseインスタンスに追加することは可能でしょうか。

申し訳ありませんが、Discourseは静的ではなく動的です。ほとんどのJavaScriptソリューションやPHPベースのものも同様です。

では、これは用語の問題でしょうか?そして、Discourseフォーラムを他のすべてのものの中にWebページに埋め込みたいだけですか?トピックを表示することはできますが、私の知る限り、Discourseのほぼすべての他の機能を見逃すことになります。

「いいね!」 2

@JstTan ご確認いただきたいことがあります。

「いいね!」 2

いいえ、実装しようとしているコードは、Discourseフォーラムに追加したいページのような静的なページなので、サーバーサイドレンダリングなどは一切ありません。

いいえ、Discourseフォーラムインスタンスにウェブページを追加したいのです。実際にはあなたが言っていることとは逆です。

これは非常にクールですが、実際には別のことを考えています。Discourse内に静的ページを追加および作成することです。ページにはカスタムHTML、CSS、およびJavaScriptを追加する必要もあります。

最近、同様の質問がありました。
以下が回答です。

ChatGPTで再生成したメッセージで質問を編集しました。編集後の質問はこちらです。

こんにちは、Discourseコミュニティ!

検索エンジン、ドキュメントリソース、Wikiなどのさまざまなカスタム機能を含むプラットフォームを、セルフホスト型のDiscourseインスタンス上に構築する予定です。これらの機能は、主に静的ページとしてHTML、CSS、JavaScriptを使用して開発されています。

私の目標は、これらのカスタムページをDiscourseフォーラムに直接統合し、投稿ではなくネイティブページとして表示することです。これにより、フォーラムの不可欠な部分であるかのように感じられる、シームレスなユーザーエクスペリエンスを作成したいと考えています。これらの静的ページはフォーラムユーザーがアクセスでき、すべてのJavaScript機能が意図したとおりに実行されるようにしたいです。

このアプローチはDiscourse内で可能かどうか、または調査すべき特定のプラグイン、ベストプラクティス、または構成があるかどうか、どなたかアドバイスをいただけますか?投稿のように見えないように、カスタムHTML/JSページを埋め込んで表示する方法について、どのようなガイダンスでもいただけると幸いです!

事前に洞察をありがとうございます!

公開されたページは私の目的のために適していますか?

それらはすべて、Discourseにすでに搭載されている機能のように思えます。

最も簡単な方法は、それらを別の場所にホストし、テーマコンポーネントでそれらへのリンクを追加し、そのサイトをDiscourseサイトと同じようにテーマ設定することです。ユーザーはURLに気づかないので、他のサイトのナビゲーションをDiscourseに戻れるようにしておけば、うまくいき、特別なことは何も必要ありません。

それが何を意味するのかよくわかりませんが、もし本当にカスタム機能WhateverをDiscourseに追加したいのであれば、それらをプラグインまたはテーマコンポーネントとして作成する必要があります。

あなたの目的が何であるかは明確ではありません。

「いいね!」 2

JavaScriptはどこからですか?

「いいね!」 1

それがまさに、Landing Pages プラグインの Home Pages 拡張機能を使用した場合に実行されることです。

参照:

「いいね!」 3

こんにちは。

返信が遅くなり申し訳ありません。リストアップした機能は実装したい機能のいくつか例であり、全部で20個ほどあります。すべてバニラJS、HTML、CSSで記述されており、サーバーサイドレンダリングは必要ありません。

Discourse内にページを作成し、そのページにすべてのカスタムコードを追加して、Discourseと一緒にデプロイするなど、Discourseに直接統合することを希望します。すべてが一箇所にあるため、私にとって保守が容易になります。また、ユーザーはDiscourseフォーラムを離れる必要なく、直接コンテンツにアクセスできます。Discourseでこれは可能でしょうか?可能であれば、どのようにすればよいでしょうか?

自分でホストするDiscourseフォーラムにカスタム機能を追加したいと考えています。カスタム機能はHTML、CSS、バニラJSで直接構築されます。プラグインを作成することなく、直接実装することは可能でしょうか?

各機能に独自のページを持たせ、機能コード(JavaScript、HTML、CSS)を単一のページソースコードに直接実装したいと考えています。

上記でリンクされているランディングページプラグインは、Discourse に既に組み込まれている、あなたが説明していると思われるものに最も近い方法だと思います。

「いいね!」 1

私がここで説明していると思われることに対するもう一つのアプローチは、カスタムページを表示したい個々のページや投稿の作成とホスティングにGhostブログ/CMSを使用することです。Ghostは、ページごと、セクション/タグごと、またはサイト全体で、ヘッダーコードインジェクション、フッターコードインジェクション、およびページ/投稿エディターでのインラインコード/スクリプトの直接インクルードを通じて、これら3つのコード(JS、CSS、HTML)すべてを含めたり挿入したりする柔軟性があるため、この目的に最適です。

次に、Discourseで、これらの外部ページをDiscourseサイトに埋め込んだり、シームレスに含めたりする方法について、複数のオプションがあります。RSS、埋め込みコメント、Iframe、リンクされたページ、またはその他の方法を使用できます。

DiscourseとGhostのこの組み合わせ/ペアリングは、オンザフライコーディングと任意のJavaScriptインジェクションの柔軟性が必要なこの特定のユースケースに理想的なプラットフォームを提供できると私は考えています。

これらのプラットフォーム(GhostとDiscourse)のそれぞれが持つ、非常に反対でありながら非常に補完的な自然な強みと限界、そしてそれらをどのように組み合わせ、統合できるかを理解したら、これ以上の解決策は見つかりませんでした。

このようにして、Discourseの非常に堅牢なコンテンツ編成とコミュニティプラットフォーム機能と、Ghostのオンザフライアプローチによるインラインコード編集のシンプルさ、および個々のページでのJS、CSS、HTML(さらにはMarkdown)を含める柔軟性を得ることができます。

真のボーナスは、両方のプラットフォームがオープンソースでありGitHubベースであるため、同様に堅牢でアクティブでフレンドリーでサポート的なコミュニティがあり、参加してサポートを得たり、迅速かつ無限に学習したりできることです。

「いいね!」 1