Auto-Linkify Words

в плагине linkify или abbr?

Linkify должен стать лучшей отправной точкой.

Вам потребуется изменить эту функцию:

4 лайка

Я только что реализовал интеграцию с Google Sheets API для @jrgong, чтобы данные из таблицы Google Sheets могли быть получены через linkify. Однако перед запуском в Meta над этим всё ещё нужно поработать.

В процессе я сделал форк TC. Меня интересует, можно ли в TC предоставить какой-либо хук для данных, чтобы переключать или добавлять источники данных из другого плагина или TC? Я могу оформить PR, но ранее не встречал подобного паттерна. Возможно, что-то вроде методов replaceDataSource или addDataSource в API плагинов.

3 лайка

Разве не проще просто добавить дополнительный параметр темы?

Новая настройка для чего?

Что касается интеграции с GSheets? Не уверен, что правильно понял ваш вопрос, но мне кажется, было бы проще, если бы вы могли отправить PR и объединить свои изменения с основным репозиторием.

1 лайк

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

Если я напишу safe-mode здесь в мета-описании, он автоматически станет ссылкой на соответствующую тему (обратите внимание, что я не добавлял гиперссылки ни к одному слову, как видно на изображении, я просто написал safe-mode).

Это результат работы темы (добавление некоторых тем и соответствующих слов) или какая-то новая магия, о которой ещё не объявляли :smiley:?

3 лайка

Да, это компонент и очень удобный способ его использования

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

9 лайков

Это нормально, если это находится в области «Следящиеся слова», где оно и должно быть.

1 лайк

Я использую linkify для преобразования URL в партнерские ссылки, но недавно обнаружил, что он также преобразует адреса электронной почты пользователей.

Например: если у кого-то есть адрес вроде helen@amazon.com, а у меня настроена партнерская ссылка для Amazon (например, amazon.com/affiliate35),

то linkify преобразует адрес так: helen@amazon.com/affiliate35, и письма не доходят.

Если у кого-то есть идея, как исключить адреса электронной почты пользователей с помощью опций «исключённые теги» и «исключённые классы».

Спасибо.

2 лайка

Вот идея, которая может оказаться очень полезной и простой в реализации:

Как насчёт добавления третьего параметра для каждой строки — произвольного CSS-класса?
Так можно будет изменять внешний вид каждой отдельной ссылки.

В нашем конкретном случае нам нужен разный внешний вид для:

  • ссылок на товары и даже категорий товаров — > партнёрские ссылки на магазины
  • технических терминов — > записи в глоссарии
  • внутренних страниц — > оглавление, FAQ, руководство для новичков и т. д.

Раньше мы просто устанавливали второй экземпляр компонента linkify и настраивали CSS-класс в этом компоненте. Такой подход не защищён от обновлений, и его приходится вручную править при каждом обновлении.

Кроме того, мы используем собственный форк с интеграцией Google Sheets для управления записями (спасибо @fzngagan и команде thepavillion ;))

2 лайка

Привет, @jrgong, мы ведём обсуждения и планируем запустить плагин для всех с инструкциями.

2 лайка

Привет, ребята

Как компонент темы обрабатывает частично совпадающие или пересекающиеся регулярные выражения?

В моём конкретном случае у меня есть следующие записи:

/super.?skunk/gi,https://link1.com
/skunk(?:(?: #?|#)?1)?/gi,https://link2.com

Для термина super skunk текущий вывод: Super Skunk
Желаемый результат: Super Skunk

Как этого добиться?

Вы можете попробовать изменить порядок регулярных выражений в настройках темы.

23.08.2020 в 19:06 отправитель jrgong через Discourse Meta <meta@discoursemail.com> написал:

1 лайк

Этот компонент темы работает только со списком статических сопоставлений между словами и URL, заданным в Google Таблицах или через панель администратора. А что, если бы существовал шаблон слов, связывающий их с URL с помощью JavaScript? Например, «Name1» было бы связано с «url/1.jpg», где соответствие между «Name1» и «1» всегда оставалось бы неизменным, но определялось бы через API?

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

2 лайка

Можешь поделиться этим плагином?

1 лайк
1 лайк

На нашем сайте есть нечто подобное, что создал другой администратор.

Сайт посвящён языку программирования SWI-Prolog, и в постах мы регулярно ссылаемся на предикаты (аналогично методам в императивных языках), которые различаются количеством параметров — числом. Поэтому мы часто пишем append/2, append/3, append/2,3 и т. д. До появления этого плагина мы тратили заметное время на ручное вставка ссылок на документацию, например: append/2 append/3.
Когда имя предиката и его арность (количество параметров) объединяются, это называется индикатором предиката.

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

Наш сайт открыт, и у нас есть тестовая страница, демонстрирующая эту функциональность.

Смотрите: Пост для тестирования установленных тем и плагинов компонентов
( Автоматическая простановка ссылок на предикаты Prolog)

Плагин размещён на GitHub, но для его работы потребовались некоторые изменения на сервере документации.

Смотрите: jamesnvc/ discourse-linkify-prolog-predicates :slightly_smiling_face:

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

2 лайка