Convert markdown links from inline to reference

后端 未结 2 964
暖寄归人
暖寄归人 2020-12-16 02:44

I have a changelog file formatted using Github\'s markdown.

Initially I used inline links for every link I needed to add, that is:

This is s         


        
2条回答
  •  南笙
    南笙 (楼主)
    2020-12-16 03:22

    That's a great requirement!

    I've just created a new Node.js program (I know it's not a GUI but seems something more people would like the capability of) to do this on GitHub.

    Here's also the code:

    // node main.js test.md result.md
    
    var fs = require('fs')
    fs.readFile(process.argv[2], 'utf8', function (err, markdown) {
        if (err) {
            return console.log(err);
        }
        var counter = 1;
        var matches = {};
        var matcher = /\[.*?\]\((.*?)\)/g;
        while (match = matcher.exec(markdown)) {
            if (!matches[match[1]]) matches[match[1]] = counter++;
        }
        console.log(matches);
        Object.keys(matches).forEach(function(url) {
            var r = new RegExp("(\\[.*?\\])\\(" + url + "\\)", "g");
            markdown = markdown.replace(r, "$1[" + matches[url] + "]");
            markdown += "\n[" + matches[url] + "]: " + url;
        });
    
        fs.writeFile(process.argv[3], markdown, 'utf8', function (err) {
            if (err) return console.log(err);
        });
    
    });
    

提交回复
热议问题