回転する作曲者プレースホルダー

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

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

機能

  • コンポーザーを開くたびにプレースホルダーテキストをローテート
  • 以下の場面で動作:
    • 返信
    • 新規トピック作成用コンポーザー
  • テーマコンポーネント設定で完全にカスタマイズ可能
  • プラグイン不要
  • クライアントサイドのみ(安全で軽量)
  • 最新の 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 のみを使用
「いいね!」 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がうまく解決してくれます。