更新 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();
我正在使用 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();