Упоминаемые

:information_source: Сводка Превращает таблицу в теме в поисковые элементы, на которые участники могут ссылаться с помощью +, включая ссылки и превью onebox.
:hammer_and_wrench: Репозиторий Discourse Mentionables
:open_book: Гид по установке Установка плагинов на самохостинговом сайте Discourse
:heart: Спонсорство Пожалуйста, рассмотрите возможность спонсирования дальнейшего развития, чтобы помочь поддерживать эти плагины в рабочем состоянии с текущими версиями Discourse.

Предоставьте вашему сообществу общий словарь для тех тем, о которых вы говорите: книги,
продукты, проекты, места, ресурсы поддержки или что-либо другое, имеющее URL.
Участники вводят + и часть названия, выбирают подсказку и получают читаемую ссылку, не запоминая адрес.

Выбор общего ресурса из автодополнения mentionables

Возможности

  • Начните только с URL. Импортер получает имена и генерирует слаги; добавьте
    свои собственные имена и слаги как необязательные переопределения.
  • Поиск во время написания. Введите + или используйте кнопку панели инструментов композера для поиска
    в вашем каталоге. Работает как в Markdown, так и в композере rich text.
  • Читаемые встроенные ссылки. Упоминания отображаются в виде компактных «пилюль» (pill) с использованием имени элемента
    для отображения, со стабильным слагом в Markdown поста.
  • Нативные onebox. Поместите упоминание на отдельную строку, чтобы отобразить onebox, используя
    существующие макеты Discourse и поддерживаемые назначения.
  • Превью на десктопе. Наведите курсор или установите фокус на встроенную «пилюлю», чтобы открыть всплывающее превью
    со ссылкой Открыть исходную страницу. Обычные клики открывают целевой адрес.
  • Каталог, который администраторы могут редактировать в Discourse. Импорт из таблицы Markdown
    в первом посте темы. Не требуются учетная запись Google или учетные данные API.
  • Кнопка таблицы для администраторов. Вставьте пустую таблицу mentionables из
    панели инструментов композера, а затем заполните свои элементы.

Внешний вид onebox зависит от назначения и обычной поддержки onebox в Discourse.
Неподдерживаемые назначения остаются обычными ссылками. Для всплывающих карточек требуется вход;
гости все еще могут перейти по ссылке на назначение. Упоминания в коде остаются без изменений,
a упоминания в списках и цитатах остаются встроенными.

Базовый Mentionables и расширение Pro

Базовый Mentionables — это основной плагин. Pro — это необязательный сопутствующий плагин,
устанавливаемый вместе с ним; Pro включает базовые функции через эту зависимость.

Функция Базовый Mentionables С расширением Pro
Импорт таблицы Markdown из первого поста темы Да Да
Держать исходную тему в ограниченной категории Да Да
Кнопка композера только для администраторов для вставки каркаса таблицы Да Да, включая столбцы с иконками
Поиск с помощью + в композерах Markdown и rich text Да Да
Встроенные пилюли упоминаний и автономные нативные oneboxes Да Да
Всплывающие превью при наведении мыши или фокусе клавиатуры на десктопе Да Да, в режиме наведения по умолчанию
Импорт из Google Sheets с использованием служебной учетной записи — Да
Выбор между таблицами тем и Google Sheets Только таблицы тем Да
Автоматическая синхронизация каждые 12 часов — Необязательно, выключено по умолчанию
Импорт необязательных имен иконок и цветов HTML — Да, из любого источника
Открытие всплывающих превью по клику или касанию, включая сенсорные устройства — Необязательно

Столбцы icon и icon_colour в Pro добавляют цветную иконку перед именем
упоминания. Например, используйте book и #2563eb для руководства. При включенном
mentionables_pro_click_to_preview клик или касание по «пилюле» открывает ее
превью; ссылка Открыть исходную страницу в превью ведет вас к целевому адресу.

Быстрая настройка

  1. Установите базовый плагин, используя гид по установке выше. Пересоберите Discourse
    после установки.

  2. Создайте тему для вашего каталога. Как администратор, используйте Вставить таблицу mentionables
    в панели инструментов композера или вставьте эту таблицу в первый пост:

    | name               | url                                 | slug               | image_url |
    | ------------------ | ----------------------------------- | ------------------ | --------- |
    | Getting started    | https://example.com/getting-started | getting-started    |           |
    | Community handbook | https://example.com/handbook        | community-handbook |           |
    | Events calendar    | https://example.com/events          | events-calendar    |           |
    
  3. Замените примеры URL своими, сохраните пост и установите
    mentionables_topic_id на числовой ID этой темы. Оставьте mentionables_enabled
    включенным. Для установок Pro следует выбрать topic_table в mentionables_source
    для этой настройки.

  4. Откройте Администрирование → Плагины → Mentionables, нажмите Начать импорт, а затем
    Обновить, чтобы просмотреть отчет. Фоновый рабочий процесс должен быть запущен.

  5. Перезагрузите браузер, откройте композер и введите +, чтобы попробовать ваши элементы.

Используйте имена столбцов в нижнем регистре. Только url является обязательным, начинающимся с http://
или https://. Строки только с URL получают имя из назначения и генерируют
слег. Вы можете указать name, slug или оба, чтобы переопределить эти значения по умолчанию, смешивая
эти варианты в одной таблице. Если название недоступно, URL становится
именем для отображения. Существующие URL сохраняют свои слаги, если источник их опускает.
image_url и description являются необязательными.

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

Конфиденциальность источника и обновление вашего каталога

Вы можете держать исходную тему в категории Staff или другой ограниченной категории, чтобы только
доверенные люди могли ее поддерживать. Импортированные имена, URL и изображения
доступны пользователям mentionables.
Ограничение темы не делает
импортированный каталог частным. Не включайте конфиденциальную информацию в таблицу.

Каждый импорт синхронизируется по URL: совпадающие URL обновляются, новые URL создают записи,
a URL, удаленные из источника, удаляют записи. Полный источник должен быть
валидным; дублирующиеся URL или слаги, недействительные строки, сбои получения данных и пустые наборы данных
не изменяют каталог. Используйте Удалить все для намеренной очистки.
Исходные темы и электронные таблицы никогда не изменяются. Необязательная настройка
mentionables_pro_sync_enabled в Pro запускает тот же импорт каждые 12 часов.
Перезагрузите браузер после импорта. Существующие обработанные посты не пересобираются автоматически,
и явное изменение слуга может нарушить более ранние ссылки +slug.

Настройки и дополнительная информация

Настройка Назначение
mentionables_enabled Включить или отключить Mentionables.
mentionables_topic_id Тема, содержащая исходную таблицу в своем первом посте.
mentionables_autocomplete_limit Максимальное количество предложений; по умолчанию пять.
mentionables_onebox_fallback Также получать отсутствующие изображения/описания, когда указано имя; выключено по умолчанию.

См. README для полного руководства по настройке, поведения импорта и
устранению неполадок. На скриншотах используются тестовые данные из фикстур плагина.

24 лайка

Можно ли фильтровать темы по упоминаемым? Я подумал создать набор данных по штатам США, чтобы каждый пост был связан с каким-либо штатом.

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

Изначально поле имени было необязательным и могло быть получено из og-тегов — эта возможность была утеряна во время рефакторинга.

Я внес исправление: вернуть необязательность имени снова · paviliondev/discourse-mentionables@a7007b2 (github.com)

1 лайк

OK, я завершил несколько PR по этой задаче, которые позволяют снова запустить систему:

Переносит API на официальное API Google, убирает промежуточный gem (и несколько других) и добавляет CI, чтобы в дальнейшем всё работало более надёжно.

Обратите внимание на breaking changes в настройках:

  • mentionables_google_spreadsheet_url: “URL Google-таблицы”

заменяется на:

  • mentionables_google_spreadsheet_id: “ID Google-таблицы”

  • mentionables_google_worksheet_gids: “Ограничить импорт Google-таблицы по GID листов. Если пусто, будут импортированы все листы.”

заменяется на:

  • mentionables_google_worksheet_names: “Имена листов (вкладок) исходных данных, подлежащих обработке”

Также добавлена новая настройка:

  • mentionables_google_worksheet_max_row: “Максимальное количество просканированных строк”

Это исправляет фронтенд (и добавляет тесты):

3 лайка

Кажется, это тупик…

Спасибо за сообщение, я обновил ссылку.

2 лайка

Почему всё так сложно технически? Я даже не могу это настроить и использовать.

Если бы была кнопка загрузки для электронной таблицы, это было бы доступно для обычного пользователя, такого как я.

Или онлайн-редактор форм. К сожалению, это слишком сложно.

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

На самом деле он пытается использовать привычный редактор, используя возможности Google Таблиц.

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

Я подозреваю, что это не подходит для использования @frold, который заключается в отображении финансового графика, созданного сторонним сайтом. Mentionables не предназначен для таких случаев использования.

Если кто-то хочет получить помощь через чат, пожалуйста, свяжитесь со мной.

Я не считаю безопасным публиковать код на общем форуме…

@frold здесь нет кода для обмена графиками сторонних разработчиков. Этот плагин вам не поможет. Он предназначен исключительно для того, чтобы сайты позволяли пользователям искать и выбирать из списка товаров, представленных в виде серых пузырьков, которые являются ссылками на страницы каждого товара.

1 лайк

Хорошо — я думал, что это вставит ссылку в пост.

Я думал, что этот URL может вести на изображение

Вставляет.

Нет, это просто скучное описание в сером пузыре :sweat_smile:

Думаю, здесь было бы полезно добавить ещё один скриншот :slight_smile:

Это идеально подходит для наборов партнёрских ссылок.

Обновил первый пост.

2 лайка

Прежде чем я перейду к настройке и конфигурации — будет ли уместным сценарием использования «упоминаемых» элементов написание тем, которые являются черновиками юридических документов, требующих ссылок на законы и судебные прецеденты, при этом связанная электронная таблица «упоминаемых» элементов содержит коллекцию соответствующих юридических ссылок и судебной практики?

1 лайк

Это звучит как вполне вероятный вариант. Если у вас есть красивые фотографии пыльных старых книг, это было бы очень кстати :wink:

1 лайк

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

Отлично, вот мои настройки (я использую тестовую Google-таблицу, предоставленную в инструкциях по настройке), и ошибка, с которой я столкнулся… (похоже, что плагин сломан, и разработчик требует плату? Что, конечно, нормально, просто к сведению!)

Любая помощь будет очень полезна!

Это всё ещё работает. Убедитесь, что ваш закрытый ключ начинается с -----BEGIN PRIVATE KEY----- и заканчивается -----END PRIVATE KEY-----

1 лайк

Нет, он работает — и бесплатно. Почему вы так подумали?

1 лайк