# Auto-Linkify Words

**URL:** https://meta.discourse.org/t/auto-linkify-words/82193
**Category:** Theme component
**Tags:** official, linkify-words
**Created:** [3월 5, 2018, 7:16오전 UTC](https://meta.discourse.org/t/auto-linkify-words/82193 "2018-03-05T07:16:06Z")
**Posts on this page:** 20
**Page:** 9

<div class="post-metadata">

### Author: ![eextra](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eextra/32/170266_2.png) [@eextra](https://meta.discourse.org/u/eextra)
#### Post date: [5월 30, 2020, 5:10오전 UTC](https://meta.discourse.org/t/auto-linkify-words/82193/170 "2020-05-30T05:10:30Z")

</div>

linkify 또는 abbr 플러그인인가요?

---

<div class="post-metadata">

### Author: ![danekhollas](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/danekhollas/32/79637_2.png) [@danekhollas](https://meta.discourse.org/u/danekhollas)
#### Post date: [5월 30, 2020, 11:44오전 UTC](https://meta.discourse.org/t/auto-linkify-words/82193/171 "2020-05-30T11:44:41Z")

</div>

Linkify를 시작점으로 사용하는 것이 더 좋을 것입니다.

다음 함수를 수정해야 합니다:

> <https://github.com/discourse/discourse-linkify-words/blob/b45105d50a00f69621b464325737fd5f4ea6e49a/javascripts/discourse-linkify/initializers/initialize-discourse-linkify.js.es6#L31>

---

<div class="post-metadata">

### Author: ![fzngagan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fzngagan/32/259349_2.png) [@fzngagan](https://meta.discourse.org/u/fzngagan)
#### Post date: [7월 9, 2020, 9:20오전 UTC](https://meta.discourse.org/t/auto-linkify-words/82193/172 "2020-07-09T09:20:27Z")

</div>

방금 @jrgong을 위해 `google sheets api`를 연동하여 링크파이(linkify) 데이터를 구글 시트에서 가져오도록 했습니다. 다만 메타에 출시하기 전까지는 더 많은 작업이 필요합니다.

이 과정에서 TC를 포크했습니다. TC에서 다른 플러그인이나 TC의 데이터 소스를 전환/추가할 수 있는 데이터 훅을 제공할 수 있는지 궁금합니다. PR을 만들 수는 있지만, 이전에는 이러한 패턴을 본 적이 없습니다. 플러그인 API에 `replaceDataSource`나 `addDataSource` 메서드와 유사한 기능이 있을 수도 있겠다는 생각이 듭니다.

---

<div class="post-metadata">

### Author: ![danekhollas](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/danekhollas/32/79637_2.png) [@danekhollas](https://meta.discourse.org/u/danekhollas)
#### Post date: [7월 9, 2020, 9:50오전 UTC](https://meta.discourse.org/t/auto-linkify-words/82193/173 "2020-07-09T09:50:26Z")

</div>

추가 테마 설정을 하나만 추가하는 편이 더 간단하지 않나요?

---

<div class="post-metadata">

### Author: ![fzngagan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fzngagan/32/259349_2.png) [@fzngagan](https://meta.discourse.org/u/fzngagan)
#### Post date: [7월 9, 2020, 9:54오전 UTC](https://meta.discourse.org/t/auto-linkify-words/82193/174 "2020-07-09T09:54:31Z")

</div>

무엇을 위한 새로운 설정인가요?

---

<div class="post-metadata">

### Author: ![danekhollas](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/danekhollas/32/79637_2.png) [@danekhollas](https://meta.discourse.org/u/danekhollas)
#### Post date: [7월 9, 2020, 9:56오전 UTC](https://meta.discourse.org/t/auto-linkify-words/82193/175 "2020-07-09T09:56:49Z")

</div>

GSheets와의 통합에 대해 말씀하시는 건가요? 정확히 무엇을 묻고 계신지 잘 모르겠지만, PR을 제출해서 변경 사항을 upstream에 병합하는 것이 더 쉬울 것 같습니다.

---

<div class="post-metadata">

### Author: ![fzngagan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fzngagan/32/259349_2.png) [@fzngagan](https://meta.discourse.org/u/fzngagan)
#### Post date: [7월 9, 2020, 9:59오전 UTC](https://meta.discourse.org/t/auto-linkify-words/82193/176 "2020-07-09T09:59:09Z")

</div>

시트에서 데이터를 가져오려면 인증이 필요하므로 통합은 플러그인 형태로 구현됩니다. 또한 모든 게시글마다 API를 호출하는 것을 방지하기 위해 데이터를 데이터베이스에 캐싱해야 합니다.

---

<div class="post-metadata">

### Author: ![Pad\_Pors](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pad_pors/32/52016_2.png) [@Pad\_Pors](https://meta.discourse.org/u/Pad_Pors)
#### Post date: [7월 27, 2020, 5:06오전 UTC](https://meta.discourse.org/t/auto-linkify-words/82193/177 "2020-07-27T05:06:37Z")

</div>

메타에 safe-mode라고 쓰면 자동으로 관련 토픽으로 링크가 걸립니다 (이미지에서 볼 수 있듯이 단어를 하이퍼링크로 처리하지 않았고, 그냥 `safe-mode`라고만 썼습니다).

 ![image](https://global.discourse-cdn.com/meta/original/3X/4/1/41fa296d1a1353fca9fa637322c33f3d651f7e0d.png)

이것이 테마 때문(일부 토픽과 관련 단어 추가)인지, 아니면 아직 발표되지 않은 새로운 기능 때문인지 궁금합니다 😃?

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [7월 27, 2020, 9:24오후 UTC](https://meta.discourse.org/t/auto-linkify-words/82193/178 "2020-07-27T21:24:49Z")

</div>

네, 이것이 해당 컴포넌트이며 매우 유용하게 사용할 수 있는 방법입니다.

@codinghorror 이 기능은 코어에 포함해야 할 꽤 정당한 이유가 있습니다. 코어에 이 기능이 있다면 이러한 경우를 위해 백링크를 구현할 수 있을 텐데, 컴포넌트로는 이 작업을 수행할 수 없고 플러그인만 가능합니다.

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [7월 27, 2020, 9:43오후 UTC](https://meta.discourse.org/t/auto-linkify-words/82193/179 "2020-07-27T21:43:23Z")

</div>

그것이 감시 단어 영역에 있는 한 괜찮습니다. 그곳이 있어야 할 곳이니까요..

---

<div class="post-metadata">

### Author: ![kam44](https://avatars.discourse-cdn.com/v4/letter/k/e47c2d/32.png) [@kam44](https://meta.discourse.org/u/kam44)
#### Post date: [7월 28, 2020, 9:22오전 UTC](https://meta.discourse.org/t/auto-linkify-words/82193/180 "2020-07-28T09:22:29Z")

</div>

저는 linkify를 사용해 URL을 제휴 링크로 변환하고 있습니다. 그런데 이 도구가 사용자 이메일 주소도 변환한다는 것을 최근에 발견했습니다.

예를 들어, 누군가의 이메일이 [helen@amazon.com이고](mailto:helen@amazon.xn--com-kd8l967h), 제가 amazon에 대한 linkify 제휴 링크(예: [amazon.com/affiliate35](http://amazon.com/affiliate35))를 가지고 있다면,

이메일이 다음과 같이 변환됩니다: `helen@amazon.com/affiliate35` 그리고 사람들은 이메일을 받을 수 없게 됩니다.

“제외 태그” 및 “제외 클래스” 옵션을 사용하여 사용자 이메일 주소를 제외하는 방법이 있다면 알려주세요.

감사합니다

---

<div class="post-metadata">

### Author: ![jrgong](https://avatars.discourse-cdn.com/v4/letter/j/c57346/32.png) [@jrgong](https://meta.discourse.org/u/jrgong)
#### Post date: [8월 14, 2020, 9:46오전 UTC](https://meta.discourse.org/t/auto-linkify-words/82193/181 "2020-08-14T09:46:44Z")

</div>

구현하기 쉽고 매우 유용할 수 있는 아이디어를 하나 제안합니다:

**각 줄에 커스텀 CSS 클래스를 지정할 수 있는 세 번째 설정을 추가하는 것은 어떨까요?**  
이렇게 하면 개별 링크마다 스타일을 변경할 수 있습니다.

우리의 경우 다음과 같은 링크에 서로 다른 스타일을 적용하고 싶습니다:

- 제품 링크 및 제품 카테고리 → 파트너 상점의 제휴 링크
- 기술 용어 → 용어집 항목
- 내부 페이지 → 목차, FAQ, 입문 가이드 등

과거에는 linkify 컴포넌트의 두 번째 인스턴스를 설치하고 컴포넌트 내에서 CSS 클래스를 조정하는 방식으로 처리했습니다. 하지만 이 방식은 업데이트 시 안전하지 않으며, 업데이트될 때마다 수동으로 편집해야 합니다.

또한, 엔트리를 관리하기 위해 구글 시트를 사용하는 커스텀 포크를 사용 중입니다 (@fzngagan 및 thepavillion 팀에게 감사드립니다 ;))

---

<div class="post-metadata">

### Author: ![fzngagan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fzngagan/32/259349_2.png) [@fzngagan](https://meta.discourse.org/u/fzngagan)
#### Post date: [8월 14, 2020, 9:49오전 UTC](https://meta.discourse.org/t/auto-linkify-words/82193/182 "2020-08-14T09:49:07Z")

</div>

> [@jrgong](#):
>
> 추가로 구글 시트가 포함된 커스텀 포크를 사용 중입니다.

@jrgong 안녕하세요. 설명서와 함께 플러그인을 공개하는 것을 논의하고 계획하고 있습니다.

---

<div class="post-metadata">

### Author: ![jrgong](https://avatars.discourse-cdn.com/v4/letter/j/c57346/32.png) [@jrgong](https://meta.discourse.org/u/jrgong)
#### Post date: [8월 23, 2020, 4:55오후 UTC](https://meta.discourse.org/t/auto-linkify-words/82193/183 "2020-08-23T16:55:44Z")

</div>

여러분 안녕하세요

테마 컴포넌트는 서로 유사하거나 겹치는 정규식 매칭을 어떻게 처리하나요?

제 경우 다음과 같은 항목이 있습니다.

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

```

`super skunk`라는 용어에 대한 현재 출력은 다음과 같습니다: **Super [Skunk](https://link2.com)**  
원하는 결과는 다음과 같습니다: **[Super Skunk](https://link1.com)**

이를 어떻게 달성할 수 있을까요?

---

<div class="post-metadata">

### Author: ![danekhollas](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/danekhollas/32/79637_2.png) [@danekhollas](https://meta.discourse.org/u/danekhollas)
#### Post date: [8월 23, 2020, 7:09오후 UTC](https://meta.discourse.org/t/auto-linkify-words/82193/184 "2020-08-23T19:09:06Z")

</div>

테마 설정에서 정규식 순서를 변경해 보실 수 있습니다.

2020년 8월 23일 19:06, jrgong 님이 Discourse Meta \<[meta@discoursemail.com](mailto:meta@discoursemail.com)\>를 통해 작성함:

---

<div class="post-metadata">

### Author: ![AntiMetaman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/antimetaman/32/186978_2.png) [@AntiMetaman](https://meta.discourse.org/u/AntiMetaman)
#### Post date: [8월 24, 2020, 1:01오전 UTC](https://meta.discourse.org/t/auto-linkify-words/82193/185 "2020-08-24T01:01:49Z")

</div>

이 테마 컴포넌트는 Google 스프레드시트 또는 관리자 패널에서 정의된 단어와 URL 간의 정적 연관성 목록에만 작동합니다. 자바스크립트를 사용하여 단어가 URL에 연결되는 패턴이 있다면 어떻게 될까요? 예를 들어, "Name1"은 "url/1.jpg"에 연결되며, "Name1"과 “1” 사이의 연관성은 항상 동일하지만 API를 통해 정의될 수 있습니다.

---

<div class="post-metadata">

### Author: ![danekhollas](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/danekhollas/32/79637_2.png) [@danekhollas](https://meta.discourse.org/u/danekhollas)
#### Post date: [8월 25, 2020, 5:51오전 UTC](https://meta.discourse.org/t/auto-linkify-words/82193/186 "2020-08-25T05:51:48Z")

</div>

정확히 무슨 말씀인지 잘 모르겠지만, 테마 컴포넌트는 완전히 JS로 작성되어 있으니 필요에 따라 자유롭게 수정하셔도 됩니다.

---

<div class="post-metadata">

### Author: ![slivo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/slivo/32/186825_2.png) [@slivo](https://meta.discourse.org/u/slivo)
#### Post date: [9월 23, 2020, 8:53오전 UTC](https://meta.discourse.org/t/auto-linkify-words/82193/187 "2020-09-23T08:53:45Z")

</div>

이 플러그인을 공유해 줄 수 있어?

---

<div class="post-metadata">

### Author: ![fzngagan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fzngagan/32/259349_2.png) [@fzngagan](https://meta.discourse.org/u/fzngagan)
#### Post date: [9월 23, 2020, 11:14오전 UTC](https://meta.discourse.org/t/auto-linkify-words/82193/188 "2020-09-23T11:14:21Z")

</div>

> [@Discourse에서 Google Sheets 링크 변환](https://meta.discourse.org/t/discourse-linkify-google-sheets/163985?u=fzngagan):
>
> The plugin allows fetching the [linkify](https://meta.discourse.org/t/linkify-words-in-post/82193/) Theme Component’s data from a google sheet. For now, you’ll have to install [this fork](https://github.com/paviliondev/discourse-linkify-words) of the theme component but there might be a solution in the future so you’ll be able to use the actual theme component with this plugin. Setup Steps: Create a service account on google cloud [Create service accounts &nbsp;|&nbsp; Identity and Access Management (IAM) &nbsp;|&nbsp; Google Cloud Documentation](https://cloud.google.com/iam/docs/creating-managing-service-accounts) Google will trigger a download of a JSON file. Store its contents safely. Creat…

---

<div class="post-metadata">

### Author: ![EricGT](https://avatars.discourse-cdn.com/v4/letter/e/f1d935/32.png) [@EricGT](https://meta.discourse.org/u/EricGT)
#### Post date: [9월 23, 2020, 11:19오전 UTC](https://meta.discourse.org/t/auto-linkify-words/82193/189 "2020-09-23T11:19:43Z")

</div>

> [@AntiMetaman](#):
>
> 이 테마 컴포넌트는 구글 스프레드시트나 관리자 패널에서 정의된 단어와 URL 간의 정적 연관성 목록에만 작동합니다. 자바스크립트를 사용하여 단어 패턴을 URL에 연결할 수 있다면 어떨까요? 예를 들어, “Name1”이 “url/1.jpg”에 연결되도록 하는 경우, “Name1”과 “1” 사이의 연관성은 항상 동일하지만 API를 통해 정의될 수 있습니다.

저희 사이트에는 다른 관리자가 만든 비슷한 기능이 있습니다.

이 사이트는 프로그래밍 언어 SWI-Prolog를 위한 것이며, 게시글에서 정기적으로 프레이지(절, imperative 언어의 메서드라고 생각하면 됩니다)를 언급합니다. 프레이지는 매개변수의 수(숫자)로 구별됩니다. 따라서 정기적으로 append/2, append/3, append/2,3 등을 입력합니다. 이 커스텀 플러그인 이전에는 문서에 대한 링크를 수동으로 삽입하는 데 측정 가능한 시간을 소요했습니다. 예를 들어, [append/2](https://www.swi-prolog.org/pldoc/man?predicate=append/2) [append/3](https://www.swi-prolog.org/pldoc/doc_for?object=append/3) 같은 경우입니다.  
프레이지 이름과 아리티(arity, 매개변수 개수)가 결합되면 이를 프레이지 인디케이터(predicate indicator)라고 부릅니다.

플러그인을 사용하면 이제 프레이지 인디케이터만 입력하면 링크가 자동으로 추가됩니다.

저희 사이트는 공개되어 있으며, 이 동작을 시연하는 테스트 페이지가 있습니다.

참고: [설치된 컴포넌트 테마 및 플러그인 테스트용 게시글](https://swi-prolog.discourse.group/t/post-for-testing-installed-component-themes-and-plugins/2358)  
( [Prolog 프레이지 자동 링크화](https://github.com/jamesnvc/discourse-linkify-prolog-predicates))

플러그인은 GitHub에 있지만, 작동하려면 문서 서버에 몇 가지 변경 사항이 필요했습니다.

참고: [jamesnvc](https://github.com/jamesnvc)/ **[discourse-linkify-prolog-predicates](https://github.com/jamesnvc/discourse-linkify-prolog-predicates)** 🙂

이것에 대해 질문하지 마세요. 저는 단지 그것이 작동한다는 것만 알고 있습니다. 필요하면 알아낼 수는 있겠지만, 제게는 시간이 부족합니다. ☹

[이전 페이지](https://meta.discourse.org/t/auto-linkify-words/82193.md?page=8)

[다음 페이지](https://meta.discourse.org/t/auto-linkify-words/82193.md?page=10)
