\u003c\u003e の間にテキストを追加すると、投稿が空になります。(この投稿に例があります)

隠されたテキストは以下の通りです:

<OnlyTwentyCharacters>

それは許可されていない HTML タグに変換され、安全性のために削除されます。バグではありません。

< で投稿を始めたい場合は、&lt; を使用してください。

ご説明いただき、ありがとうございます。私もそう思っていました。

Discourse に、許可されていない HTML を単純に除去する関数はありますか?ユースケースは以下の通りです。

カスタムウィザードプラグインにおいて、これらの除去された文字を含まない投稿の総文字数が最小文字数制限を下回る場合、ユーザーが投稿を提出できないようにしたいと考えています。

また、今考えてみると、これは Discourse 自体にも関連する問題です。レンダリングされたコンテンツが最小文字数制限を下回る場合は提出を許可しないようにするのは理にかなっていると思いませんか?これは言われている以上に複雑な問題であることは承知しています。

同じ問題が発生した場合は、MD で囲んで対応します。

<here is the good stuff>

<here is the sweet stuff>

```<here is the good stuff>```

`<here is the sweet stuff>`

チーターはチーターをするものです。Unicode は巨大なモンスターであり、空白ではないのに空白のように見せるポストを模倣できるようなエッジケースが多数存在します。

そこで Moderation(モデレーション)が機能するのです。

利用できるフックがあるかどうかはわかりませんが、StrippedLengthValidator にプリペンド(先頭に追加)して実装できるかもしれません。

そこにフックを追加することに半分賛成です。そうすれば、モンキーパッチなしで実装できます。

OPを編集しました。QAPageスキーマの検証で空としてフラグ付けされるためです。

@sam

この説明を懸念を表明した方に伝えることができました。また、Custom Wizard プラグインのコンテキストでは、モデル検証をスキップしています。

コアの Discourse については、投稿の「調理済み」バージョンが min post length より短い場合、投稿の提出を禁止するのはどうでしょうか?

これについては確信が持てません。ユーザーにとって直感的ではないでしょう。生データの方が加工データよりも長いという正当なエッジケースも存在します。