Компонент темы для быстрого цитирования

: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

Что он делает

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

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

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

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

Зачем это нужно

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

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

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

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

Вы на 100% довольны поведением кнопки «Ответить на пост» в теме «из коробки». Я тоже, но здорово иметь варианты, верно?

Настройки

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

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

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

Делает текст чище и экономит место.

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

Включено по умолчанию. Отключите эту настройку для максимального опыта в стиле «старой школы» с вложенными цитатами. (Извините, Джефф! ;))

quick_quote_remove_contiguous_new_lines: «Удалить ненужные переносы строк»

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

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

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

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

Не поддерживает новый режим Rich Text в редакторе. Обновления ядра, похоже, решили проблему?

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

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

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

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

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

Все отзывы приветствуются.

37 лайков

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

Мне нравится :+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 лайка