Eleventy plugin to make all external links open securely in a new tab.
This project is based on https://github.com/vimtor/eleventy-plugin-external-links.
npm install semasquare/eleventy-external-links#v1.0.0 --saveThen simply add it to you eleventy config
const externalLinks = require("@semasquare/eleventy-external-links");
module.exports = (eleventyConfig) => {
eleventyConfig.addPlugin(externalLinks, {
// Plugin defaults:
extensions: [".html"], // Extensions to apply transform to
rules: [
{
name: "external links", // Plugin name
regex: new RegExp("^(([a-z]+:)|(//))", "i"), // Regex that test if href is external
target: "_blank", // 'target' attribute for external links
rel: "noopener" // 'rel' attribute for external links
}
]
})
}Under the hood it adds a simple transform that:
- Checks the file extension
- Parses the file using node-html-parser
- Finds all the
<a />tags whichhrefmatches regex - Add
targetandrelattributes to the elements - Return the content with '' added at the beginning of the file as default
The default regex will detect links as follows:
| Link | External |
|---|---|
| http://google.com | ✔ |
| https://google.com | ✔ |
| //google.com | ✔ |
| mailto:[email protected] | ✔ |
| /about | ❌ |
| image.jpg | ❌ |
| #anchor | ❌ |
npm run test