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

Update all href anchor links in folder of HTML files

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

我需要在 Microsoft SharePoint 上托管这些 HTML 文件 - 这需要将 .html 转换为 .aspx 以便它们成为 运行。

我有一个 post 脚本,可以将所有 .html 更新为 .aspx(效果很好)。

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

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

为了让它在 sharepoint 上运行,我需要更新每个 html 文件中的每个 href 以指向每个文件夹中的 index.aspx 文件:

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

post build 的最佳方法是什么?理想情况下,我想将其包含在我的 post-build 脚本中。这可以用 webpack 实现吗?还是我最好使用 JSDOM 之类的东西来遍历每个文件并更新每个链接?

您最好使用 cheerio,它比 jsdom 更轻便,并且支持大多数 jquery 语法。

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