A simple Vue directive to turn URL's and emails into clickable links. Based on SoapBox's Linkify.
Note: This is a maintained fork of the original vue-linkify which is no longer maintained. This version includes updated dependencies, security fixes, and supports both Vue 2.7+ and Vue 3.
This directive can be installed as a module:
$ npm install vue-linkify-vue3or, if you're not in a module environment, just include it as a <script>.
In a browser environment, you should now have a v-linkified directive set up for free. If you're in a module environment, just import and register it as you please:
For Vue 3:
import { createApp } from 'vue'
import linkify from 'vue-linkify'
const app = createApp(App)
app.directive('linkified', linkify)For Vue 2:
import Vue from 'vue'
import linkify from 'vue-linkify'
Vue.directive('linkified', linkify)And then you use it away:
<template>
<div id="app">
<div v-html="raw" v-linkified />
</div>
</template>
<script>
export default {
data () {
return {
raw: 'Hello from vuejs.org'
}
}
}
</script>The above snippet will yield:
Hello from <a href="http://vuejs.org" class="linkified" target="_blank">vuejs.org</a>You can also pass an options argument, which takes an Object, into the directive to control its behavior. For example, modifying the above template into something like this:
<template>
<div id="app">
<div v-html="raw" v-linkified:options="{ className: 'foo' }" />
</div>
</template>will yield a slightly different HTML:
Hello from <a href="http://vuejs.org" class="foo" target="_blank">vuejs.org</a>A list of available options is available here.
This fork is maintained by shekh.
Original package created by Phan An.
MIT
Original work © Phan An
Modified work © shekh