Discourse Spoiler Alert позволяет скрывать контент, отмеченный тегом [spoiler], в сообщениях.
Руководство по установке
Этот плагин входит в состав ядра Discourse. Отдельная установка плагина не требуется.
Включение функции скрытия спойлеров
Этот плагин включен по умолчанию после установки, но его можно отключить или включить в настройках, доступных на странице admin/plugins:
Возможности
После включения в меню на панели форматирования редактора появляется опция «Размыть спойлер». Просто выделите текст, который нужно скрыть, и выберите «размыть спойлер»; выбранный текст будет обернут в необходимые теги [spoiler]:
[spoiler]
Я хочу быть твоим пылесосом
Вдыхать твою пыль
Я хочу быть твоим Ford Cortina
И никогда не ржаветь
Если ты любишь горячий кофе
Позволь мне быть твоим кофейником
Ты решаешь всё
Я хочу быть твоим
https://johncooperclarke.com/poems/i-wanna-be-yours
[/spoiler]
Я хочу быть твоим пылесосом
Вдыхать твою пыль
Я хочу быть твоим Ford Cortina
И никогда не ржаветь
Если ты любишь горячий кофе
Позволь мне быть твоим кофейником
Ты решаешь всё
Я хочу быть твоим
Нажатие на размытие откроет скрытый текст, а повторное нажатие снова его скроет.
Это также работает для изображений:
(чтобы снова скрыть изображение, которое достаточно велико для открытия в лайтбоксе, можно нажать на соседнее белое пространство или обновить страницу)
Если вы являетесь хостинг-клиентом нашей платформы, пожалуйста, свяжитесь с team@discourse.org, если у вас возникнут вопросы о необходимости «пересоздания» (rebake) после изменения настроек ↩︎
Есть ли способ изменить то, как выглядит превью спойлера? Текущая реализация выглядит неплохо, но она недостаточно скрывает суть спойлера.
Вот пример из созданной мной темы, где пользователи могут загружать свои скриншоты. Если скриншот является спойлером, его нужно пометить соответствующим образом. Как вы видите, текущая реализация не совсем подходит для маркировки спойлеров скриншотов с ключевыми моментами игр, фильмов и т. д.
Любой, кто знаком с игрой, которую я упомянул, сразу поймёт, что изображено.
Редактирование: Мне также стало известно, что если любой пользователь перейдёт к истории редактирования поста, содержащего спойлеры, история редактирования не будет скрывать содержимое с помощью спойлер-тегов.
Если вы хотите увеличить размытие при наведении курсора на изображение, добавьте следующие строки и измените 0.5em (на значение меньшее, чем предыдущее):
Не уверен, стоит ли выносить это в отдельный баг-репорт, но я заметил по push-уведомлению о сообщении в чате, что текст спойлера не скрывается, в отличие от всего остального. Метод Chat::Message#push_notification_excerpt обрезает сырой markdown и буквально выводит спойлер как this is a chat notification [spoiler]and this is the spoiler[/spoiler], что, по сути, сводит на нет сам смысл тега спойлера, если в уведомлении выводится весь его содержимое! Похоже на недоработку, так как для сообщений в чате метод :reduce_excerpt из модуля spoiler-alert полностью обходится в обход, в отличие от форумных постов. В самом чате всё работает нормально! Проблема именно в push-уведомлении.