Auto-Linkify Words

Discourse
Mon, 05 Mar 2018 07:16:06 +0000
Theme component

Discourse has a built-in feature called Watched Words which can replicate most of the features of this theme component. Consider using that before installing this theme component.

| |
| Summary | Auto-Linkify Words allows you to automatically hyperlink certain words or patterns in your post with the desired destination URL.
| Repository Link | https://github.com/discourse/discourse-linkify-words
| New to Discourse Themes? | Beginner’s guide to using Discourse Themes

Install this theme component

As this is an official theme component maintained by the Discourse team, Support, Bug, UX, and Feature requests can be made in the respective categories here on Meta, and tagged with the appropriate theme component tag. Click on a link below to get one started.

Support Bug UX Feature

Features

How to configure?

Configure the theme settings with the format

WORD, https://destination.url.com

or using regular expressions (in JavaScript implementation) with the format

/regex/, https://destination.url.com

One item per line

Using regular expressions

With regular expressions, you can match a certain pattern to a single URL. This is useful for synonyms or for words which can take different forms in the sentence etc.

However, you can also generate the URL automatically based on what was matched. For example, let’s say you have a line of products, each with its own numeric id, and you want to autolink them to their own URLs. Using

/product-([0-9]+)/, https://myshop.com/product/$1

product-42 will be autolinked to https://myshop.com/product/42
Notice the capturing parentheses in the regular expression and the $1 in the URL which is substituted by the match inside the parenthesis. You can also capture multiple parts of the string and use $2, $3 and so on.

Regular expressions are by default case sensitive (unlike WORD’s which are case insensitive). However, you can change that by using a standard “i” modfier like this:

/foo/i, https://example.com

In this case, FOO, Foo or foo will all be matched.

How this looks in action?

Limitations

Replacement will only appear in the web UI and will not appear in emails.

Settings

Name | Description
linked words |
excluded tags |
excluded classes |

Credits

Big thanks to @Osama for building theme settings and https://stackoverflow.com/questions/8949445/javascript-bookmarklet-to-replace-text-with-a-link for guiding on the implementation.

Hosted by us? Theme components are available to use on our Standard, Business, and Enterprise plans.

Last edited by @JammyDodger Thursday, June 13, 2024 12:57 PM UTC
Check document (нажмите для более подробной информации)

237 сообщений - 68 участников

Читать всю тему