Однако при создании новой темы и наличии любого из этих слов в заголовке или теле сообщения автоматические теги не применяются. Предполагаю, что я что-то делаю не так, но не понимаю, что именно.
То же самое, у меня тоже не работает (тест проходит, но не при создании реальной темы).
Я хотел проверить, работает ли это и для заголовка, и для сообщения, а также добавляются ли теги в поле тегов по мере ввода, то есть до того, как пользователь нажмёт кнопку отправки. Это позволило бы им удалить тег, если они считают его неподходящим.
Я только что провел быстрый тест этого на моем локальном сайте разработки. Когда я добавляю слово для автоматической разметки, тест проходит успешно, но пока мне не удалось добиться автоматической разметки темы, если в посте содержится одно из отслеживаемых слов. Я изучу это подробнее.
Редактирование: Я провел быстрый тест этого на размещенном сайте Discourse и столкнулся с аналогичными проблемами, которые наблюдаю на своем сайте разработки. При тестировании на моем сайте разработки я обнаружил, что метод auto_tag не вызывается, когда я создаю новую тему, содержащую слово для автоматической разметки. Если же я редактирую существующую тему, добавляя в неё слово для автоматической разметки, метод auto_tag вызывается, и тема получает соответствующую разметку.
Я только что заметил, что при импорте встраиваемой темы с удалённого сайта автоматическое тегирование сработало. Я подумал, что, возможно, это уже исправлено, но попробовал создать новую обычную тему — и ничего не вышло. Так что в любом случае оно работает частично.
Я пришел сюда с той же проблемой (автоматическая тегирование не срабатывает при создании новой темы с отслеживаемыми словами). Но я также не могу добавить теги при редактировании существующего поста.
Несколько недель назад я внёс несколько изменений в эту функцию, и я ожидаю, что эти проблемы будут устранены. У вас всё ещё возникают с ней трудности?
Оказалось, что тесты были пройдены, но по какой-то причине обновление стало видимым не сразу. В любом случае, я сейчас не на версии 2.8.0.beta1 db7038e6c2, и я снова всё протестировал. У меня по-прежнему возникают проблемы с JS. Вот теги, которые я использую:
Ах, извините. Спасибо, что заметили это. Теперь всё работает как надо.
Интересно, было бы полезно перехватывать ошибки и предупреждать пользователя — особенно потому, что нетехнические люди могут случайно написать строки, которые не являются валидными регулярными выражениями? Также было бы здорово, если бы ошибка в одном регулярном выражении не влияла на остальные. В данном случае были валидные совпадения с некоторыми последующими регулярными выражениями, которые не были найдены из-за ошибки в первом.
Есть ли что-то, что мы можем сделать здесь, чтобы пользователи знали, когда они «стреляют себе в ногу» с регулярными выражениями, @sam? Можно ли скрыть регулярные выражения за расширенным режимом? Можно ли по умолчанию использовать границы слов — ведь именно это большинство людей хотят, когда вводят слово?
Мой подход — вообще не требовать полноценных регулярных выражений и предоставить достаточно возможностей «из коробки», чтобы только 1 из 10 000 сообществ вынужден был погружаться в детали и использовать регулярные выражения.
В данном конкретном примере от @ben, если бы мы поддерживали ?, то:
Закрываю эту тему, так как похоже, что функция работает корректно. (Да, регулярные выражения более мощные, но этого достаточно, чтобы реализовать то, что пытается сделать Бен).