Переписать внешние URL

Мне нравится функция Discourse, которая автоматически превращает отслеживаемые слова в ссылки. Однако я также ищу способ автоматически конвертировать внешние ссылки, в основном для вставки партнерских ссылок (кроме Amazon). Я пытался добиться этого с помощью опции регулярных выражений в отслеживаемых словах, но, похоже, это не работает для ссылок. У кого-нибудь есть предложения?

Спасибо!

Вы пробовали компонент темы Auto-Linkify Words? Мне кажется, что у него есть дополнительные возможности регулярных выражений по сравнению с «Слежением за словами».

Да, но безрезультатно.

Плагин Discourse Affiliate поддерживает Amazon и французский сайт ldlc.com. Если эта функция будет полезна в общем случае, мы всегда приветствуем pull-запросы.

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

Регулярные выражения — это сложно. Может, стоит поделиться тем, что вы пробовали?

:100: :sweat_smile:

То, что я попробовал на примере URL Google:

/(https?:\/\/)?(www\.)?google\.com/
/(https:\/\/)?(www\.)?((google)?\.com)/

Этого недостаточно для отладки. Это (должно?) совпадать с URL Google, но что вы пытаетесь заменить?

Мне нужно просто сопоставить домен/поддомен, а не все страницы. Вот что я добавил в плагин linkify:

/(https?:\/\/)?(www\.)?example\.com/, https://example.com/affiliateid

Я добился некоторого прогресса с моей стороны, похоже, что может быть конфликт с настройкой enable markdown linkify.

Эта настройка имеет преимущество перед компонентом.

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

Мне тоже так кажется. Я создал замену для https://www.digitalocean.com/ → https://m.do.co/c/a5bf212d9a92/, и если enable markdown linkify включено, это не работает, а если выключено — работает. Мне бы очень хотелось, чтобы ссылка переписывалась.

Компонент темы мог бы быть способом это сделать.

Ммм, возможно, самое простое решение — сделать форк плагина Discourse Affiliate и добавить свои собственные партнерские ссылки.

Скорее всего, это излишне. Если вам нужно просто переписать некоторые URL-адреса, многого не потребуется. У меня есть компонент темы, который переписывает один бокс.

У меня есть компонент темы, который находит один-боксы с определённого домена и переписывает их в виде <iframes>, подходящих для этого сайта. Изменить его так, чтобы он переписывал ваши ссылки, не должно быть слишком сложно (даже для человека с моими скромными навыками).

Вам нужно изменить практически только это:

Главное отличие подхода, подобного Discourse Affiliate, заключается в том, что он изменяет ссылку в обработанном содержимом, поэтому он будет работать и вне веб-приложения, например, в электронных письмах или при использовании другого клиента (очень, очень редко). Просто имейте это в виду.

Отличная мысль! А изменение обработанных постов требует плагина.