Добавление текста между символами <> приводит к пустому посту. (Пример в этом посте)

Скрытый текст ниже:

<OnlyTwentyCharacters>

Это превращается в недопустимый HTML-тег и удаляется в целях безопасности. Это не ошибка.

Используйте &lt;, если хотите начать своё сообщение с символа <.

Спасибо за объяснение. Я тоже так думал.

Есть ли в Discourse функция, которая просто удаляет недопустимый HTML? Сценарий использования таков:

В плагине Custom Wizard мы хотим запретить пользователю отправлять пост, если общее количество символов (за вычетом удалённых символов) меньше минимального лимита.

Кроме того, сейчас, подумав об этом, я считаю, что это актуально и для самого Discourse. Разве не имеет смысл запретить отправку, если отрендеренный контент содержит меньше символов, чем минимальный лимит? Я знаю, что это гораздо сложнее, чем кажется.

Если мы сталкиваемся с той же проблемой, мы просто заключаем их в MD.

<here is the good stuff>

<here is the sweet stuff>

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

`<here is the sweet stuff>`

Мошенники будут мошенничать. Юникод — это огромный монстр, и есть множество пограничных случаев, которые люди могут использовать для имитации пустых постов, которые на самом деле не пусты.

Именно здесь вступает в действие модерация.

Не уверен, есть ли у нас хук, который вы могли бы использовать, но, думаю, вы можете внедрить изменения в StrippedLengthValidator.

Я в целом не против добавить туда хук, чтобы вы могли сделать это без патчинга «на живую» (monkey patching).

Отредактировал первый пост, так как валидация схемы QAPage помечает его как пустой.

@sam

Нам удалось донести это объяснение до человека, который выразил свою обеспокоенность. Кроме того, мы пропускаем валидацию модели в контексте плагина Custom Wizard.

Но что касается ядра Discourse, как насчет запрета отправки поста, если его обработанная версия короче min post length?

Я не уверен насчет этого, это будет неочевидно для пользователя. Будут пограничные случаи, когда исходный текст длиннее обработанного, и это законно.