Скрытый текст ниже:
<OnlyTwentyCharacters>
Скрытый текст ниже:
<OnlyTwentyCharacters>
Это превращается в недопустимый HTML-тег и удаляется в целях безопасности. Это не ошибка.
Используйте <, если хотите начать своё сообщение с символа <.
Спасибо за объяснение. Я тоже так думал.
Есть ли в 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 помечает его как пустой.
Нам удалось донести это объяснение до человека, который выразил свою обеспокоенность. Кроме того, мы пропускаем валидацию модели в контексте плагина Custom Wizard.
Но что касается ядра Discourse, как насчет запрета отправки поста, если его обработанная версия короче min post length?
Я не уверен насчет этого, это будет неочевидно для пользователя. Будут пограничные случаи, когда исходный текст длиннее обработанного, и это законно.