Компонент темы «Быстрая цитата»

:information_source: Краткое описание Проще говоря: изменяет поведение кнопок «Ответить» в постах (не в теме) так, чтобы автоматически цитировать пост одним нажатием.
:hammer_and_wrench: Ссылка на репозиторий GitHub - merefield/discourse-quick-quote: A Theme component to change the behaviour of the Post Reply buttons to quote a Post automatically in a single click. · GitHub
:open_book: Руководство по установке Installing a theme or theme component
:heart: Спонсорство Пожалуйста, рассмотрите возможность стать постоянным спонсором моей работы с открытым исходным кодом на уровне, соответствующем ресурсам и потребностям вас или вашей организации, чтобы обеспечить этот компонент необходимым техническим обслуживанием и гарантировать его работу на вашем сайте в будущем.

Вам нравится этот компонент темы? Пожалуйста, поставьте :star: на GitHub

Что он делает

Проще говоря: изменяет поведение кнопок «Ответить» в постах (не в теме) так, чтобы автоматически цитировать пост одним нажатием.

Существует несколько настроек для уточнения того, что цитируется и когда. Вы даже можете указать вложенность цитат для создания «старой школы» атмосферы.

Поскольку автоматическая цитата попадает в редактор (Composer), вы можете при желании отредактировать её вручную (хотя это несколько противоречит идее «быстроты» :snail:).

Он не изменяет поведение кнопки «Ответить в теме» внизу страницы, а также инструмента цитирования.

Почему

  • Некоторые пользователи считают, что процесс цитирования в базовой установке требует слишком много кликов. Эта проблема особенно актуальна для сенсорных устройств.

  • «Автоматическое цитирование» особенно полезно, когда ответ приходится на пост, опубликованный довольно давно. Этот плагин подсчитывает, насколько далеко назад находится цитируемый пост, и автоматически вставляет цитату, если она достаточно старая. Это помогает людям быстрее понять контекст.

  • Возвращение «Вложенных цитат»! (по умолчанию ВЫКЛ) Этот компонент может быть особенно привлекательным для тех, кто привык к некоторым платформам форумов «старой школы» :space_invader:, и это вопрос вкуса — если вам нравятся вложенные цитаты, теперь вы можете их использовать, но имейте в виду последствия для занимаемого места!

Вам это не нужно, если

Вы на 100% довольны стандартным поведением кнопки «Ответить в теме». Мне тоже, но иметь выбор — это хорошо, верно?

Настройки

quick_quote_post_location_threshold: “Количество постов назад, после которых включается быстрая цитата.”

Управляет тем, насколько далеко назад должен находиться пост, чтобы сработало автоматическое цитирование. Избегает ненужного цитирования недавних постов.

quick_quote_remove_links: “Удалить все ссылки (включая изображения) из цитат”

Очищает текст и улучшает использование пространства.

quick_quote_remove_prior_quotes: “Удалить все предыдущие (вложенные) цитаты”

Включено по умолчанию. Снимите этот флажок для получения полного опыта вложенных цитат в стиле «старой школы». (Прости, Джефф! :wink: )

quick_quote_remove_contiguous_new_lines: “Удалить лишние пустые строки”

Пустые строки переоценены.

quick_quote_character_limit: “Лимит символов в цитате (использует последние x символов, если общая длина больше)”

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

Известные ограничения

Компонент темы довольно прост в том, как он обрабатывает подготовку цитаты. Некоторые настройки работают лучше в сочетании друг с другом, и администратор должен сам определить, что подходит для его случая. Некоторая сложность избегается, например, есть лимит символов для цитат, который может разрезать слова пополам. Форматирование упрощено, так как теги удаляются, чтобы избежать риска усечения тега и повреждения данных — это также делается ради простоты. Обработка цитат сильно опирается на регулярные выражения, не все из которых являются абсолютно безошибочными, но работают «достаточно хорошо». Они могут быть уточнены в течение жизненного цикла компонента темы.

Недавно это было портировано из моего идентичного плагина, но в процессе могли появиться ошибки. Сообщите мне, если вы столкнётесь с какими-либо проблемами.

Мой спонсор и вдохновение для этого компонента

Пожалуйста, поблагодарите @Merlls_Rizzini за спонсирование этой работы. Функциональность является результатом мозгового штурма нас двоих и частично вдохновлена этим постом от @eesty.

Примечание: это было основано на моём плагине Fast Quote, но перенесено в формат компонента темы, чтобы дать больше администраторам сайтов доступ, если они размещены у стороннего хостинга. @sam предложил преобразовать это в компонент темы, так как не было серверной части, а @sully дал мне последний толчок, чтобы перенести это, создав свою собственную версию темы.

Принимаю все отзывы.

38 лайков

Если бы я не пролистал это, я бы потратил меньше времени на то, чтобы понять, в чём ценность,

Мне нравится :+1:

3 лайка

Было бы здорово, если бы можно было использовать это по категориям. Мы бы хотели добавить его в нашу категорию AMA, иначе всё получится довольно запутанно.

3 лайка

Недавний коммит в Git в файл topic.js, похоже, сломал этот компонент темы:

Функция Quote.build() больше не существует; похоже, они теперь импортируют и используют функцию buildQuote(). Простая замена не помогла; придётся подумать над этим немного дольше.

2 лайка

Моя ошибка! Плагин quick quote не был в списке all-the-plugins, поэтому я пропустил его при поиске регрессий. Я добавлю его и уже открыл PR с исправлением для плагина:

(плюс небольшое исправление настроек: FIX: Setting descriptions were swapped by cvx · Pull Request #2 · merefield/discourse-quick-quote · GitHub)

5 лайков

Отлично, спасибо, Ярек (и спасибо за отчет @sully!), объединено! (и спасибо за исправление ошибки!)

1 лайк

Я использую эту тему, обновил её вчера, а сегодня уже получаю жалобы.

Когда я попытался создать пост с ответом и объяснением, то обнаружил, что если я отвечаю на один пост, а затем перехожу к другому и хочу ответить на него целиком, это не получается — ответ остаётся привязанным к посту, с которого я начал.

Ранее функция переключения работала, а быстрая цитата по-прежнему работает.

Для полного понимания, не могли бы вы немного подробнее разобрать это… можете ли вы объяснить это более детально, шаг за шагом, и указать, где, по вашему мнению, возникает ошибка?

1 лайк

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

Быстрое цитирование — это здорово, но можно ли восстановить функцию ответа?

Я всё ещё не совсем вас понимаю. Не могли бы вы привести больше подробностей и дополнительных шагов?

Я повторно протестировал компонент локально, и он, похоже, работает корректно?

1 лайк

Никаких проблем, возможно, я неправильно понимаю функцию или допустил какую-то другую ошибку.

Но в текущем виде, если я перехожу вверх по ветке на 4 сообщения, кнопка ответа отключена.

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

Поэтому я считаю, что это связано, возможно, здесь задействован какой-то параметр?

Можете показать мне настройки вашей темы?

Также подтвердите, пожалуйста, что у вас установлена последняя версия Discourse и последняя версия компонента темы.

И ещё, сообщите, пожалуйста, видите ли вы какие-либо ошибки JavaScript в консоли?

1 лайк

в случайной теме

image

на этом сайте не отображается версия, как на моём самохостинге

1 лайк

Спасибо.

Хорошо, я настроил свои параметры так же, но не могу воспроизвести проблему. Кнопка «Ответить» под четырьмя сообщениями назад работает нормально.

Это, однако, очень подозрительно с учётом ваших настроек. (Цифра «3» сразу бросается в глаза!)

Я использую последнюю версию Discourse и TC. Убедитесь, что у вас установлены все обновления для обоих компонентов.

1 лайк

в исходном коде указано Discourse 2.5.0.beta2

а TC — это компонент темы?

изменение 3 на 5 позволяет мне отвечать до пятого сообщения

значит, мне нужно поставить 9999, и не нарушит ли это какую-либо другую функцию?

Хорошо, я воспроизвёл вашу проблему на продакшн-сайте …

v2.5.0.beta2 +459

Изменения, которые внес Ярек, были специально ориентированы на последнюю версию Discourse.

Возможно, вы используете версию Discourse, предшествующую его изменениям? Если так, то это не будет работать с последней версией TC. Нужно обновлять оба компонента или ни один из них.

Кроме того, я только что обновил этот сайт (до latest-release +495), и всё снова работает исправно.

Так что да, вам нужно обновить ваш Discourse до версии, идущей после его коммита.

1 лайк

Можете предоставить любой CSS, который я могу использовать для отката?

Затем я удалю его после обновления моего сайта?

Спасибо :slightly_smiling_face:

или

@team, мой сайт готов к обновлению в ближайшее время?

А, хорошая идея, но, кажется, из интерфейса нельзя получить доступ к содержимому папки javascript (кто-нибудь, пожалуйста, поправьте, если я ошибаюсь!).

К сожалению, я тоже не думаю, что можно установить конкретный коммит компонента темы (то же самое!).

Поэтому я предлагаю: да, замените эту 3 на 9999 и подождите, пока ваш Discourse станет более актуальным.

1 лайк

Можно, без проблем. Спасибо за сотрудничество, это очень ценится :+1:

1 лайк

Всем привет, вы, быстрые цитаторы и дерзкие дискурсёры… Я выпустил исправление, чтобы Quick Quote снова работал с последней версией Discourse.

Я отслеживаю ветку tests-passed, поэтому не обновляйтесь, если вы не находитесь в этой ветке.

3 лайка