Convert URL's to anchor tags inside a string
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
test
.editorconfig
.gitignore
.npmignore
.travis.yml
CHANGELOG.md
README.md
index.js
package.json

README.md

Anchorify

Convert all links inside a string to HTML anchor tags. It supports.

Travis

  1. URLs with(out) protocol.
  2. Detect email vs plain URLs.
  3. Adds rel="noreferrer noopener" as a security measure.
  4. Normalizes urls without procotol or www.
  5. Recognize existing anchor tags.

Installation

The code is hand-written in ES5 and is supposed to work with all major browsers. It makes use of var over let or const and for over forEach.

But you will need a commonjs module loader to make use of it.

npm i --save anchorify

Usage

const anchorify = require('anchorify')

assert.equal(
  anchorify('Visit google.com'),
  'Visit <a href="http://google.com"> google.com </a>'
)

// Set custom target
assert.equal(
  anchorify('Visit google.com', { target: '_blank' }),
  'Visit <a href="http://google.com" target="_blank" ref="noreferrer noopener"> google.com </a>'
)

// Do not touch existing anchor tags
assert.equal(
  anchorify('Visit <a href="http://google.com"> google.com </a>', { target: '_blank' }),
  'Visit <a href="http://google.com"> google.com </a>'
)

// Detect email
assert.equal(
  anchorify('You can reach me at foo@bar.com'),
  'You can reach me at <a href="mailto:foo@bar.com"> foo@bar.com </a>'
)

// Let browser decide the protocol
assert.equal(
  anchorify('Open //google.com'),
  'Open <a href="//google.com"> google.com </a>'
)