更新HTML文件文件夹中的所有href锚链接

时间:2018-10-28 13:44:29

标签: javascript html node.js webpack gatsby

我正在使用Gatsbyjs生成静态网站,这会输出一个静态HTML文件的文件夹。

我需要将这些HTML文件托管在Microsoft SharePoint上-这要求将.html转换为.aspx才能运行。

我有一条附言,将所有.html更新为.aspx(效果很好)。

但是,所有生成的链接都指向该文件夹:

<a href="/folder/">link</a>

为了使其在共享点上正常工作,我需要更新每个html文件中的每个href,以指向每个文件夹中的index.aspx文件:

<a href="/folder/index.aspx">link</a>

后期制作中最好的方法是什么?理想情况下,我希望将其作为构建后脚本的一部分。使用webpack可以实现吗?还是我最好使用JSDOM之类的方法遍历每个文件并更新每个链接?

1 个答案:

答案 0 :(得分:1)

使用cheerio可能会更好,它比jsdom轻,并且支持大多数jquery语法。

var html = fs.readFileSync(input.html);
const $ = cheerio.load(html);
var output = $('a[href="folder"').attr('href', '/folder/index.aspx').html();