Текст-заполнитель шаблона темы компонента Topic

Очень сложно тестировать на старых версиях. Это решение было разработано для работы с последней версией tests-passed. Вполне вероятно, что оно просто несовместимо со старыми инстанциями Discourse.

Появляется ли ошибка JavaScript в консоли? Это может быть причиной неполного отображения. Это не компонент стилизации :slight_smile:

Очень редко Core вносит такие масштабные изменения, что необходимое переопределение приходится изменять таким образом, которое не поддерживает старую кодовую базу. Тем не менее, мой PR содержал множество очень тщательных переопределений, которые должны быть устойчивы к изменениям в Core. Однако сделать можно не так много.

Спасибо за ответ @merefield

Эта ошибка в консоли, похоже, действительно связана:

Да, это довольно типичная несовместимость. Декораторы теперь импортируются из нового места, так как старый путь импорта устарел. Скорее всего, в вашей старой версии этот путь не существует.

Рекомендую подождать, пока ваш Discourse будет обновлён до более современной версии.

Круто! Без проблем, спасибо за быстрые ответы @merefield :smiley:

1 лайк

@Ryan_NR — тем временем вы можете попробовать оригинальную версию, которая, возможно, не требует тех же зависимостей?

1 лайк

Я считаю, что ветвление тем работает, так что вы можете поддерживать три ветки одной темы (tests-passed, beta и stable).

Однако это не охватит всех, и это потребует значительных дополнительных усилий для поддержки и обеспечения корректной работы, особенно если разработчик является волонтёром.

Спасибо, @merefield. Я подумал, что ветвление может запутать, поэтому создал новый репозиторий — просто чтобы проверить, уберёт ли это зависимости версий для @Ryan_NR?

1 лайк

В данном случае ваше решение проще. Я просто высказывал свои мысли стратегически :slight_smile:

Я попробую! Спасибо, @Rhidian :smiley:

1 лайк

Понял… Это работает отлично!

Огромное спасибо вам обоим! :smiley: :smiley:

Пожалуйста. Рад, что смог помочь :blush:

Я обновил инструкции, на случай если у кого-то возникнет та же проблема.

2 лайка

Я только что понял, что этот текст появляется при ответе на пост, а не только при создании темы. Что, по крайней мере в моей ситуации, работает не очень хорошо. Есть ли возможность показывать его только при создании темы, как это сейчас работает с шаблоном темы?

3 лайка

Отличное замечание. Оригинальная версия работает корректно — она отображается только в новых темах, точно так же, как и шаблон темы.

Вы можете скачать оригинал здесь.

Оригинальный репозиторий версии: https://github.com/naidihr/discourse-topic-template-placeholders_original

Это было простое переключение на jQuery для перемещения текста шаблона в плейсхолдер, ЕСЛИ он совпадает с текстом шаблона.

@merefield, сможете ли вы взглянуть на это ещё раз?

Конечно. То есть вы хотите, чтобы это происходило только в первом сообщении? Есть ли какие-либо обстоятельства, при которых вы могли бы захотеть, чтобы это происходило в последующих сообщениях?

Спасибо, Роберт. Нет, просто как описано — так же, как работает оригинал. Преобразование в текст-заполнитель должно выполняться только в том случае, если текст пользовательского шаблона совпадает с текстом в редакторе.

Именно поэтому я изначально применил хак с JQuery, так как мог выполнить эту проверку только после рендеринга?

Проблема решена, добавлена настройка (по умолчанию включена), ограничивающая применение только к первому сообщению.

Это также добавляет новую возможность: теперь Шаблон темы (или пользовательский текст-заполнитель) может применяться ко всем сообщениям, если вы этого пожелаете :slight_smile:

Я достаточно тщательно протестировал это в средах разработки и продакшена, но, пожалуйста, не стесняйтесь проверить самостоятельно.

4 лайка

Спасибо, Роберт. Я объединил это для тестирования.

Это исправляет описанную проблему, но создало новую. Если у вас есть черновик, и вы его снова откроете — текст черновика теперь теряется. Не могли бы вы это проверить?

Поведение должно быть таким: конвертация выполняется только в том случае, если текст, который будет отображаться в редакторе, совпадает с текстом шаблона.

Мне пока не удалось воспроизвести… Можете ли вы предоставить точные шаги воспроизведения (STR), включая точные настройки, при которых вы это заметили? Мой черновик ответа и черновик новой темы вернулись без проблем.

Это происходит, если я перехожу к теме с пользовательским шаблоном. Я начинаю черновик. Затем покидаю сайт. Возвращаюсь на сайт — нажимаю на логотип аватара в правом верхнем углу и на имя — и выбираю «Черновики».

Затем я нажимаю «Возобновить» для сохранённого черновика.

Текст не появляется — вместо этого отображается текст-заполнитель.

Discourse 4.4.3

1 лайк

Работая с @merefield, мы думаем, что теперь исправили эту и ещё одну проблему.

@davidkingham — не могли бы вы подтвердить?