aboutsummaryrefslogtreecommitdiff
path: root/src/index.js
blob: f1f0ce5080862d177decf49be4648679a43aa892 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
'use strict';

const visit = require('unist-util-visit');
const schemes = require('./schemes.js');

function plugin() {
  return transformer;
  function transformer(tree) {
    visit(tree, 'link', link => {
      if (link.url) {
        if (link.url[0] === '/') { // Local link
          return;
        }

        if (schemes.some(scheme => link.url.startsWith(scheme + ':'))) {
          // Valide scheme
          return;
        }

        link.url = '/' + link.url;
      }
    });
  }
}

module.exports = plugin;