vue-highlights
Easy @mention, #hashtag and URL highlight for Vue 2.x.
Installation
You can install via npm or yarn:
And then import the component in your app:
You can check a demo here: pggalaviz.github.io/vue-highlights
Usage
Let's create our first component:
As you can see, the component accepts some props:
Prop | Type | Description |
---|---|---|
value | String | The text to highlight (v-model). |
extractUrlsWithoutProtocol | Boolean | As the name says, when active, the compoponet will try to match URLs even when a protocol (http://, https://) is not found. Defaults to true |
caretColor | String | A valid HEX color (eg. #ccc, #ff4545). |
placeholder | String | A placeholder to show when no text is entered. |
usernameClass | String | The CSS class(es) that will be added to a @username match. |
hashtagClass | String | The CSS class(es) that will be added to a #hashtag match. |
urlClass | String | The CSS class(es) that will be added to a URL match. |
The exported component (vue-highlights) renders a text input that highlights all username, hashtag and URL matches. In order to work with this input some CSS classes should be attended, here's an example:
With this we should get a working example.
As you can see when we first imported the package, 2 functions are also exported: autoLink and autoHighlight.
Both return a String value which contains our highlighted text. autoLink returns the matches found between anchor tags for links. autoHighlight returns the matches found between span tags for highlight only.
Examples
Now we can render our linked/highlighted text anywhere we like: