외부 URL 다시 작성

Discourse에서 감시 중인 단어를 자동으로 링크로 변환하는 기능을 좋아합니다. 하지만 외부 링크도 자동으로 변환하는 방법을 찾고 있습니다. 주로 Amazon이 아닌 다른 제휴 링크를 삽입하기 위해서입니다. 감시 단어의 정규식 옵션을 사용해 보았지만, 링크에는 적용되지 않는 것 같습니다. 혹시 조언을 주실 수 있는 분이 있을까요?

감사합니다!

Auto-Linkify Words 테마 구성 요소를 사용해 보셨나요? Watched Words보다 추가적인 정규식(regular expression) 기능을 제공한다고 생각합니다.

네, 하지만 성공하지 못했습니다.

Discourse Affiliate 플러그인은 Amazon과 프랑스 사이트 ldlc.com을 지원합니다. 일반적으로 유용한 기능이라면 PR을 항상 환영합니다.

아니면, 이 플러그인을 원하는 결과를 달성하기 위한 참고 자료로 사용할 수 있습니다.

정규 표현식은 어렵습니다. 혹시 시도해 본 내용을 공유해 주시겠어요?

:100: :sweat_smile:

Google URL 예제에 대해 시도해 본 내용입니다:

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

디버깅을 하기에는 정보가 부족합니다. Google URL과 일치할 것 같지만, 대체하려고 하는 대상은 무엇인가요?

저는 모든 페이지가 아니라 도메인/서브도메인만 일치시키면 됩니다. linkify 플러그인에 추가한 내용은 다음과 같습니다:

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

제 쪽에서 일부 진전을 보았으며, enable markdown linkify 설정과 충돌이 있을 수 있는 것 같습니다.

이 설정은 컴포넌트보다 장점이 있습니다.

Camille이 자세히 조사해 보겠지만, 이 문제를 해결하는 데 도움이 될 수 있습니다.

저도 그렇게 보입니다. https://www.digitalocean.com/ → https://m.do.co/c/a5bf212d9a92/에 대한 대체 항목을 만들었는데, enable markdown linkify가 켜져 있으면 작동하지 않고 꺼져 있으면 작동합니다. 제가 정말 원하는 것은 링크가 다시 작성(re-write)되는 것입니다.

테마 구성 요소를 사용하면 이를 수행할 수 있는 방법이 될 수 있습니다.

음, 아마도 가장 쉬운 해결책은 Discourse Affiliate 플러그인을 포크해서 내 커스텀 제휴 링크를 추가하는 것일 거예요.

아마도 과할 수 있습니다. URL을 몇 개만 다시 작성하려는 것이라면 크게 필요한 것은 없습니다. 저는 특정 도메인의 one-box를 찾아 해당 사이트에 맞게 <iframes>로 다시 작성하는 테마 컴포넌트를 가지고 있습니다.

테마 컴포넌트는 특정 도메인의 one-box를 찾아 해당 사이트에 맞게 <iframes>로 다시 작성합니다. 제 처럼 기술이 초보적인 사람도 링크를 다시 작성하도록 수정하는 것은 그리 어렵지 않을 것입니다.

아래 부분만 변경하면 됩니다:

Discourse Affiliate와 같은 방식과의 주요 차이점은, 이 방식이 렌더링된 콘텐츠(cooked content)의 링크를 변경한다는 것입니다. 따라서 웹 애플리케이션 외부에서도, 예를 들어 이메일이나 다른 클라이언트(매우 매우 드문 경우)를 사용할 때에도 정상적으로 작동합니다. 이 점을 염두에 두시면 됩니다.

좋은 지적이에요! 그리고 조리된 게시물을 변경하려면 플러그인이 필요합니다.