gatsby-plugin-advanced-sitemap icon indicating copy to clipboard operation
gatsby-plugin-advanced-sitemap copied to clipboard

Make excludes more intuitive

Open generalpiston opened this issue 4 years ago • 3 comments

The exclude option is incredibly unintuitive. The examples look like the following:

exclude: [
  `/dev-404-page`,
  `/404`,
  `/404.html`,
  `/offline-plugin-app-shell-fallback`,
  `/my-excluded-page`,
  /(\/)?hash-\S*/, // you can also pass valid RegExp to exclude internal tags for example
],

The above examples make it seem like /dev-404-page would either match a URI exactly or the beginning of it (ie. /dev-404-page would be rejected or /dev-404-page/.* would be rejected).

In reality, the following examples would be rejected:

  • /dev-404-page
  • /aaa/dev-404-page/loremipsum
  • /dev-404-pageandsomeotherstuff

That is really unintuitive.

Can it be an exact match? Or a start of URI match? Otherwise, can we add notes in the README?

generalpiston avatar Feb 23 '21 02:02 generalpiston

any update about that? I am interested to this me too. For international web sites I would make something like /es/*

AleC77 avatar Mar 18 '21 19:03 AleC77

Super confusing. If you pass a regex, it looks like they strip the leading slash before matching against the regex 🤯

mrseanbaines avatar Nov 15 '21 17:11 mrseanbaines

@AleC77 I am also working with a localized site and I think I have it working. I'm using regexes and omitting the leading slash (due to the above quirk). So something like:

exclude: [
    /^..\/some-path\/?$/, // exact path, with or without trailing slash (e.g. "/en/some-path" or "/en/some-path/")
    /^..\/some-path.*/, // any path that starts with this (e.g. "/en/some-path" or "/en/some-path-here")
],

mrseanbaines avatar Nov 15 '21 17:11 mrseanbaines