Discourse Спойлер-оповещение

:discourse2: Краткое описание Discourse Spoiler Alert позволяет скрывать контент, отмеченный тегом [spoiler], в сообщениях.
:open_book: Руководство по установке Этот плагин входит в состав ядра Discourse. Отдельная установка плагина не требуется.

Включение функции скрытия спойлеров

Этот плагин включен по умолчанию после установки, но его можно отключить или включить в настройках, доступных на странице admin/plugins:

enable spoiler

Возможности

После включения в меню :gear: на панели форматирования редактора появляется опция «Размыть спойлер». Просто выделите текст, который нужно скрыть, и выберите «размыть спойлер»; выбранный текст будет обернут в необходимые теги [spoiler]:

Примеры:

В строке:

[spoiler]Это спойлер[/spoiler] 

Это спойлер

В несколько строк:

[spoiler]

Я хочу быть твоим пылесосом
Вдыхать твою пыль
Я хочу быть твоим Ford Cortina
И никогда не ржаветь
Если ты любишь горячий кофе
Позволь мне быть твоим кофейником
Ты решаешь всё
Я хочу быть твоим

https://johncooperclarke.com/poems/i-wanna-be-yours

[/spoiler]

Я хочу быть твоим пылесосом
Вдыхать твою пыль
Я хочу быть твоим Ford Cortina
И никогда не ржаветь
Если ты любишь горячий кофе
Позволь мне быть твоим кофейником
Ты решаешь всё
Я хочу быть твоим

https://johncooperclarke.com/poems/i-wanna-be-yours

Нажатие на размытие откроет скрытый текст, а повторное нажатие снова его скроет.

Это также работает для изображений:
(чтобы снова скрыть изображение, которое достаточно велико для открытия в лайтбоксе, можно нажать на соседнее белое пространство или обновить страницу)

Настройки

Имя Описание
spoiler enabled Включить плагин спойлеров. Если вы измените эту настройку, вам необходимо пересоздать все сообщения с помощью команды: “rake posts:rebake”[1]

:discourse2: Хостинг у нас? Этот плагин доступен на всех наших тарифах хостинга Spoiler Alert | Discourse - Civilized Discussion


  1. :discourse2: Если вы являетесь хостинг-клиентом нашей платформы, пожалуйста, свяжитесь с team@discourse.org, если у вас возникнут вопросы о необходимости «пересоздания» (rebake) после изменения настроек ↩︎

48 лайков

Перенесено в ядро:

3 лайка

:information_source: Предупреждение о спойлерах Discourse теперь включено в ядро Discourse, поэтому этот плагин больше не нужно устанавливать отдельно. :partying_face:

Если вы размещаете свой собственный сервер, вы увидите на своей панели управления информацию об удалении его из app.yml.

:discourse2: Размещено нами? Это изменение никак не повлияет на вас. :+1: Вы можете продолжать пользоваться этим плагином и ни о чём не беспокоиться.

1 лайк

Не понимаю, почему этот плагин включён по умолчанию. Разве он полезен только для форумов о кино?

Причин скрыть текст гораздо больше, чем просто спойлеры к фильмам. Их даже больше, чем панчлайны шуток.

2 лайка

Можно ли добавить функцию, чтобы контент спойлера отображался после нажатия на «лайк» в сообщении?

Вы можете создать тему Contribute > Feature spoiler-alert :wink: — мы будем только рады!

2 лайка

:wink:, я уже в пути.

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

Вот пример из созданной мной темы, где пользователи могут загружать свои скриншоты. Если скриншот является спойлером, его нужно пометить соответствующим образом. Как вы видите, текущая реализация не совсем подходит для маркировки спойлеров скриншотов с ключевыми моментами игр, фильмов и т. д.

Любой, кто знаком с игрой, которую я упомянул, сразу поймёт, что изображено.

Изображение с моего форума Discourse ниже.

Есть ли способ это исправить?

Редактирование: Мне также стало известно, что если любой пользователь перейдёт к истории редактирования поста, содержащего спойлеры, история редактирования не будет скрывать содержимое с помощью спойлер-тегов.

Как вы планируете это сделать? Сделать более размытым? Изменить цвет размытия?

1 лайк

Если бы я мог, я бы либо сделал его полностью чёрным, либо размыл сильнее.

Вот CSS по умолчанию для эффекта размытия:

.spoiler-blurred img {
  filter: blur(1em);
}

Измените 1em на более значимое значение:

.spoiler-blurred img {
  filter: blur(5em);
}

Если вы хотите увеличить размытие при наведении курсора на изображение, добавьте следующие строки и измените 0.5em (на значение меньшее, чем предыдущее):

.spoiler-blurred {
  .discourse-no-touch & {
    &:hover, &:focus {
      img {
        filter: blur(0.5em);
      }
    }
  }
}
5 лайков