MikeNolan
(Mike Nolan)
1
Discourse サイトの立ち上げ(30 年間運営してきたメーリングリストの代替となるものです)までおそらく 2 週間ですが、すでに別のプロジェクトの可能性について考えています。それは、料理/ベーキングのブログサイトを Wordpress/BBPress から Discourse に移行することです。
これを行うには、レシピを認識し、そのフォーマットと印刷方法を変更する方法が必要です。
新しいトピックにレシピが含まれていることをタグ付けするという点では、トピックタグが最適だと思われます(フォローアップはコメントであり、完全なレシピではありません)。ただし、タグフィールドにタグ(例:「レシピ」)を強制的に挿入する方法はないようです。また、レシピのタイプ(パン、デザート、肉など)を示すためにタグフィールドを使用することも検討しています。これにより、レシピに複数のタグを付けることができます。たとえば、recipe dessert のようになります。
印刷は別の問題です。これが機能するためには、Discourse がトピックから選択した投稿の印刷をより細かく制御できるプラグインを作成する必要があることをすでに決定しました。印刷用にレシピタグ付き(リード)投稿をフォーマットすることは、おそらく 2 番目のタスクです。Ruby を十分に理解するには、おそらく数か月かかるでしょう。
しかし、これ以上の要望は十分です。私の現在の質問は、カテゴリ(例:レシピ)内の新しいトピックにタグを事前挿入(例:レシピ)するように強制できますか?これにより、ユーザーはそれを選択する必要がなく、削除することもできませんか?
「いいね!」 1
特定のユースケースについてはわかりませんが、カテゴリ内のすべてのトピックに同じタグを強制するのは冗長になる可能性があります。
既存の設定でカテゴリにタグを事前入力することはできませんが、テーマコンポーネントまたはプラグインを通じてこれを実現することが可能です。
さらなるカスタマイズなしで、ケースに役立つ可能性のあるオプションがいくつかあります。
-
カテゴリの「トピックで要求されるタグの最小数」設定を設定し、カテゴリに「必須タググループ」を追加します。
これにより、bread, dessert, meat などの複数のタグをカテゴリに設定できます。ユーザーは少なくとも 1 つ(または複数)のタグを選択しないと投稿できません。
-
レシピに一般的に表示される単語またはフレーズに基づいて自動タグ付けを設定します。これは admin/customize/watched_words から行うことができます。
このアプローチは試行錯誤が必要であり、完璧ではない可能性があります。米国にいる場合、帝国単位には独自の測定値があるため、これはわずかに簡単です。ほとんどのレシピには、たとえば tsp または tbsp が記載されている可能性があります。レシピに固有と思われるその他のフレーズとしては、「preheat」、「mixing bowl」、「saute」などが考えられます。
「いいね!」 1
MikeNolan
(Mike Nolan)
3
投稿に「これはレシピです、それに従ってフォーマットしてください」という別のフィールドが欲しいのですが、そうすればタグは、私たち二人が例示したように、他のよりユーザー向けの目的に使用できます。しかし、それがまだどのように実現できるかはわかりません。カスタム投稿フィールドやカスタムトピックフィールドを作成する方法はありますが、それらにアクセスしたり利用したりする方法はまだ学習中です。
トピックのリード投稿がレシピフォーマット用にタグ付けされることを主に考えていますが、他の場所にも適用される可能性があります。さらに、フラグ付けされた投稿が必ずしもトピックのリード投稿であるとは限らず、特定のカテゴリにも属さない場合、特別なフォーマットのために投稿をフラグ付けする他のユースケースがあるかもしれません。そして、アプローチを一般化することで、より広範な有用性が得られる可能性があります。
レシピの配合の詳細は別の問題です。理想的には、材料、指定された測定単位、および量のためのフィールドを分離できる構造化された形式が欲しいです。できれば、材料の栄養情報、価格、在庫などの他のデータベースを利用できる方法で。総収量があれば、レシピをスケールアップまたはスケールダウンすることもできます。他のいくつかの料理サイトもこれを行っていますが、私が欲しいと思う機能や、ベーキングコミュニティが欲しいと思う機能が欠けていると思います。それらすべてを、Discourseのデータ構造と互換性のある方法で実現できるかどうかは別の問題です。(しかし、私の第一印象では、WordPressやゼロから構築したスタンドアロンシステムよりも、Discourseで実現する方が簡単かもしれません。あなたはすでに多くのサポート構造を構築しています。)
pfaffman
(Jay Pfaffman)
4
プラグインでTopicCustomFieldを使用することもできますが、スタッフ専用のタグセット、または全ユーザーに強制されるタグセットの方が維持が容易です。また、レシピのカテゴリセットを作成して、そのフォーマットをカテゴリ全体に適用することはできませんか?「どのトピックがレシピか」という問題に対する最も簡単な解決策のように思えます。
MikeNolan
(Mike Nolan)
5
私の特定のユースケースにはそれで対応できますが、より一般的な価値を持つプラグインに向けて先を見据えたいと考えています。どちらがより理にかなっていますか?
- このカテゴリに個別の特別な書式設定を適用したい
- このトピックに個別の特別な書式設定を適用したい
- この投稿に個別の特別な書式設定を適用したい
- 上記のいずれかの組み合わせ。たとえば、このカテゴリは一部のトピックや投稿で特別な書式設定を利用でき、またはこのトピックは一部の投稿で特別な書式設定を利用できる
Discourse/Rubyについて十分な知識がないため、現時点では多くのことはできません。ましてや正しい方法で行うことはできません。したがって、私の特定のユースケースに取り組むことが、私にとって良い第一歩になるかもしれません。しかし、過去40年間の私のプロジェクトでの経験から、誰かが単純な方法を見つけると、より一般的なアプローチへの関心が薄れる傾向があります。
pfaffman
(Jay Pfaffman)
6
私が探していたものではありませんが、想像している問題よりも実際の問題を解決する方が良いと思います。
それは難しいですが、PostCustomFieldを追加してシリアライザーに追加するプラグインを作成することはできます。
レシピのみを含むカテゴリ/特別な書式設定が必要なカテゴリを決定するだけで、ほとんどのユースケースが解決します。タグのセットを強制することも、少し面倒ですが、維持するためのコードはほとんど必要ありません。
「いいね!」 1
MikeNolan
(Mike Nolan)
7
ご提案やご指導に感謝いたします。初心者は厄介ですよね?(別の投稿で別のトピックについて述べたように、まだ知らないことを知らないのです。)
長年にわたるシステム分析への私の取り組み方は、ウィッシュリストを開始する際に可能な限り多くのことを予測し、その後、必要ない、またはやり方がわからないと判断したものがいくつあるかを確認するというものでした。そのアプローチは私にとってうまくいきました。
これにタグを使用する際に思いついた一つの問題は、誰かがそのタグを不適切なトピックに適用する可能性があるということです。もちろん、「フォーマットタグは、このタグがカテゴリXのトピックに含まれている場合にのみ適用される」と言えば、私にとっては十分かもしれません。
そして、フォーマットタグがオプションである場合、ユーザーはそのカテゴリに特別なフォーマットが適用されないトピックを作成できることに気づきました。それが良いことなのか悪いことなのかは、まだ決めていません。
「いいね!」 1
pfaffman
(Jay Pfaffman)
8
それはあらゆる解決策に当てはまる問題だと思います。 