新しいトピックが作成されたときに、スレッドのタイトルがあれば生成されるURLを予測する方法はありますか?
質問の理由は、完了後に新しいトピックを作成するウィザードを設定しているためです。フィールドへのユーザー入力に基づいて、スレッドのタイトルは常に特定の形式に従います。
奇妙なのは、DiscoTOC(理由があります)を使用する代わりに、トピックのPOST 1には多くの情報が含まれていますが、目次もあります。トピックは常に8つの返信で構成され、それぞれが「タイトル」を作成するために定型応答を使用します(1〜7)。ウィザードは、各返信への空白のハイパーリンクを含むタイトルを生成します。たとえば、次のようになります。
[1. Meeting Agenda](/2)
[2. Meeting Files](/3)
[3. In meeting votes](/4)
[4. Meeting Minutes - [Initial Draft] Preliminary for feedback](/5)
[5. Meeting Minutes - [Final Draft] Consideration for distribution](/6)
[6. Meeting Minutes - [Distribution Copy] Vote to accept meeting minutes](/7)
[7. Reserved](/8)
質問の理由は、ウィザードがトピックを作成すると、ユーザーはこのリストを目次として残すためです(このカテゴリでは毎月同じです)。ユーザーは、DiscourseがトピックのURLを生成する方法は、スレッド番号(動的)がURLの末尾にあるため、トピックのURLをコピーし、/Reply#の前に貼り付ける必要があります。ウィザードを使用すると、トピックID以外のすべてのURL構文を生成できます。
トピックが作成される前にURLを生成する方法(まだトピックIDがないため)はありますか?Discourseは欠落しているトピックIDを無視しますが、それでもトピックに正しくリンクしますか?これはこの場合に非常に役立ち、おそらく他のユースケースでも、ウィザードを使用して新しいトピック内でリンクを自動生成できます。
「いいね!」 1
Falco
(Falco)
2
ウィザードは、新しく作成されたトピックのURLが含まれているトピック作成呼び出しからの応答を読み取って、それをユーザーに返さないのはなぜですか?
「いいね!」 2
トピックが作成される前に実行されるウィザードが、今後生成されるURLをキャプチャしてウィザードのコンポーザーに挿入する方法がわかりません。
pfaffman
(Jay Pfaffman)
4
ウィザードにまずトピックを作成させて、IDを取得してから、必要な情報で編集してみてはどうでしょうか?
はい、ユーザーがレコードシステムを維持する必要がある手動のステップを排除しようとしていますが、非常に基本的なマークダウンに慣れていない人にとっては、ミスを防ぐようにしたいのです。
問題は、責任者が実力に基づいて採用または割り当てられるのではなく、メンバーシップ選挙によってその地位に就き、それが担当の特定の選挙職であることです。現状では、毎月DropboxフォルダにWord文書を放り込んでいるだけです。これは、一部の図書館スタイルや公的記録の保持のために、Discourseへの移行において多少の学習曲線があります。
そのため、ユーザーが毎月ウィザードを完了する以上のことをする必要がないように最善を尽くしています。
pfaffman
(Jay Pfaffman)
6
では、APIで試してみてはどうでしょうか?問題が完全に理解できているわけではありませんが、ニワトリと卵の問題のように思えます。通常、トピックIDなしでスラッグのみを使用できます。たとえば、https://meta.discourse.org/t/new-topic-url-format のように、それが機能するかもしれません。
その通りです、ジェイ。その通りです。
ウィザードはすでにスレッドタイトルを作成する責任を負っているため、トピックIDを除いてURL全体を予測できるということになります。では、URLにトピックIDが含まれていない場合に、Discourseはユーザーをトピックにリダイレクトしますか?それとも、URL全体がトピックIDを除いて一致する場合に、DiscourseがトピックIDを無視することを許可するカスタムプラグインによるルールはありますか?
pfaffman
(Jay Pfaffman)
8
スラッグが一意で、数字で始まらない場合は、topic_idなしで機能するはずだと思います。
はい、できますが、最後の /reply# で特定の返信にスナップすることは不可能です。
なぜなら、それは domain/title/postID/reply# となっているからです。
postID フィールドにプレースホルダーを使用するか、それを使用せずに返信に直接誘導する方法を見つけようとしています。