Я знаю, что могу исключить URL-адреса с массивом exclude
в объекте options
с gatsby-plugin-sitemap
, но есть ли способ требовать, чтобы во всех URL-адресах была строка? В основном требуется, чтобы URL-адреса, добавленные в карту сайта, содержали либо en-us
, либо es-us
{
resolve: `gatsby-plugin-sitemap`,
options: {
exclude: [`all urls must contain "en-us" or "es-us"`],
},
},
Спасибо!
ОБНОВЛЕНИЕ !! Благодаря @MarkoCen я был в состоянии заставить это работать. Я просто использовал регулярные выражения, чтобы добавить URL-адреса, которые я хотел в моей карте сайта. Вот код, если кому-то интересно. Обратите внимание, что мне пришлось вручную исключить /404
при таком подходе:
{
resolve: `gatsby-plugin-sitemap`,
options: {
query: `
{
site {
siteMetadata {
siteUrl
}
}
allSitePage {
edges {
node {
path
}
}
}
}`,
serialize: ({ site, allSitePage }) => {
const links = [];
for (let i = 0; i < allSitePage.edges.length; i++) {
const { path } = allSitePage.edges[i].node;
if (
/products|404|unsupported|account/.test(path)
) {
continue;
} else if (/en-us|es-us/.test(path)) {
links.push({
url: site.siteMetadata.siteUrl + path,
changefreq: 'daily',
priority: 0.8,
});
}
}
return links;
},
},
},