ローテーションするComposerプレースホルダー

:discourse2: 概要 Rotating Composer Placeholder は、Discourse のコンポーザーに動的で回転するプレースホルダーテキストを追加し、コンポーザーを開くたびに異なるプロンプトを表示します。
:hammer_and_wrench: リポジトリリンク https://github.com/Ethsim12/discourse-rotating-composer-placeholder
:open_book: Discourse テーマは初めてですか? Discourse テーマの初心者ガイド

このテーマコンポーネントをインストール


特徴

  • コンポーザーを開くたびにプレースホルダーテキストが回転します
  • 以下で動作します:
    • 返信
    • 新規トピックコンポーザー
  • テーマコンポーネント設定を介して完全に設定可能
  • プラグインは不要
  • クライアントサイドのみ(安全で軽量)
  • 最新の api-initializers を使用

インストール

  1. Discourse管理画面で、以下に移動します:
    管理 → 外観 → テーマとコンポーネント → コンポーネント → 3つのドット

  2. インストールをクリックします。

  3. Gitリポジトリからを選択します。

  4. このリポジトリURLを貼り付けてインストールをクリックします。


テーマコンポーネントを有効にする

テーマコンポーネントをインストールしても、自動的にアクティブ化されません
テーマにアタッチする必要があります。

  1. 以下に移動します:
    管理 → 外観 → テーマとコンポーネント → コンポーネント → Rotating Composer Placeholder

  2. アクティブなテーマをクリックします
    (例: 「Default」、「Desktop」、またはカスタムテーマ)。

  3. 緑色のチェックボックスを押します。

  4. ブラウザを更新します。

有効にすると、コンポーネントはそのテーマに即座に適用されます。


コンポーネントの設定

  1. テーマコンポーネントのページ内に留まります。

  2. rotating_placeholders リストを編集します。

設定例:

  • 何をお試しになりましたか?再現手順を含めてください。
  • 返信ごとに1つのアイデア。新しい問題の場合は、新しいトピックを開始してください。
  • 以下を含めてください: 期待される結果、実際の結果、およびエラー。
  • ヒント: ログは ```トリプルバックティック``` の中に貼り付けてください。

注記:

  • リストの各エントリが可能なプレースホルダーになります。
  • 空のエントリは無視されます。
  • リストが空の場合、デフォルトのプレースホルダーが使用されます。

既知の制限事項

  • UIのみの強化
  • ポストの内容には影響しません
  • コンポーザーを開いたときにプレースホルダーが回転します
  • 今後のコンポーザーのリファクタリングにより、マイナーなセレクタの更新が必要になる場合があります

互換性

  • 最新のDiscourseバージョン向けに設計されています
  • 推奨される最小バージョン: Discourse 3.2+
  • サポートされているテーマAPIのみを使用

:discourse2: discourse.orgでホストされていますか?
テーマコンポーネントは、Discourse Standard、Business、および Enterprise プランで利用可能です。


「いいね!」 4

ユースケースの例を共有していただけますか?

「いいね!」 1

例はユースケースを示すのに十分良い仕事をしていると思います。メッセージを作成する際には考慮すべきことがたくさんあります。1つだけ入れると、すぐに無視されます。それらすべてを入れると、誰も何も読まなくなります。毎回異なるものを入れると、誰かがそれを読んで検討する可能性が高まります。

面白いイースターエッグを入れることもできます。

「いいね!」 4

ああ、そうですね、例も見えていませんでした。

Game of Thrones: The Walk of Shame

「いいね!」 3

ありがとうございます!見つけた良い点として、このコンポーネントはリッチテキストコンポーザーともきれいに連携し、プレースホルダーがそこでも正しくローテーションします。

エディター固有の内部構造ではなくコンポーザーのライフサイクルにフックするため、Markdown専用のセレクターに依存せず、コンポーザーモード全体で互換性を維持するのに役立ちます。

もしDiscourseが将来エディターを再度リファクタリングしても、これにより破壊が生じる領域はかなり小さく抑えられることを願っています。

「いいね!」 1

実は、これをフォーラムのすべてを面白くするために使いたいのです…

「あなたはいったい何なの?読めないの???」
「検索してから投稿しない人と怠け者の違いは何?」
「バグを報告する場合は、まずそれがクモではないことを確認してください。」
「積荷のないツバメの飛行速度はどれくらいですか?」

「いいね!」 5

どういたしまして!:slightly_smiling_face:

カテゴリ固有のプレースホルダーは本当に良いアイデアですね。「サポート/バグ」と「一般チャット」のカテゴリでは、ユーザーに見せたいプロンプトが全く異なるため、特に便利だと思います。

実装面では、コンポーザーのコンテキストが通常、これをきれいに実行するのに十分なシグナルを提供します。

  • 新規トピック: コンポーザーモデルの選択された categoryId をキーにする
  • 返信: トピックのコンテキストからカテゴリを導出する

したがって、v1の候補は次のようになります。

  • カテゴリID → プレースホルダーリストをマッピングするテーマ設定
  • カテゴリが一致しない場合は、グローバルの rotating_placeholders にフォールバックする

もし、あなたが考えている既存のコンポーネントを覚えていたら、リンクをいただけると嬉しいです。そうでない場合は、これを機能リクエストとしてここに追加し、関心を測る(そして、すでに存在する場合は重複作業を避ける)ことを嬉しく思います。

それと、「すべて面白い」リストは、まさに私が考えていたカオティック・グッド(chaotic good)そのものです :joy:

(私はおそらく、時々役立つリマインダーがこっそり紛れ込むように、いくつかの真面目なものも混ぜるでしょう!)

カテゴリテンプレートをプレースホルダーとして使用できる Topic Template Placeholder Text theme component があります。

「いいね!」 2

ありがとうございます!そのリンクは本当に参考になります。

そのコンポーネント(「トピックテンプレートプレースホルダーテキスト」)は、これがやっていることとは少し異なります。カテゴリのトピックテンプレートをプレースホルダーとして使用します(したがって、プレースホルダーはカテゴリ固有ですが、本質的にはテンプレートの内容です)。

このテーマコンポーネントは、コンポーザーが開くたびに短いプロンプトのリストを順番に表示します(返信と新しいトピックの両方に適用されます)。したがって、「サポート/バグ」と「一般チャット」などで、カテゴリごとのリストをローテーションさせ、グローバルリストへのフォールバックが必要な場合、「カテゴリ固有のプレースホルダー」はここに追加するのに役立つかもしれません。

しかし、誰かの目的が具体的に「カテゴリテンプレートをプレースホルダーとして表示する」ことであれば、その別のTCがうまく解決してくれます。