我有一个使用
Github’s markdown格式化的changelog文件.
This is some [example](http://www.stackoverflow.com) line of text.
随着时间的推移,随着文件大小的增加,它变得有点乱,主要是因为这种插入链接的方式.
我想将所有链接从内联转换为引用(参见description of each),即将上面的行转换为:
This is some [example][1] line of text. [1]: http://www.stackoverflow.com
由于文件相当大并且包含许多内联链接,我想知道是否有一些自动化的方法来执行此操作.我使用Sublime Text 3进行编辑,但是我找不到适合此任务的包.也许一些聪明的正则表达式?
这是一个很好的要求!
我刚刚在GitHub上创建了一个新的Node.js程序(我知道它不是一个GUI,但似乎有更多人想要的功能).
这里也是代码:
// 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,function (err) { if (err) return console.log(err); }); });