decaporg / decap-cms

A Git-based CMS for Static Site Generators
https://decapcms.org
MIT License
17.65k stars 3.02k forks source link

Replace single quote with sanitize_replacement character in slugs #7147

Open nhoizey opened 3 months ago

nhoizey commented 3 months ago

Is your feature request related to a problem? Please describe.

Current slug feature removes single quotes (used as apostrophes) without replacing them with the sanitize_replacement character.

For example I have a French content titled Test d'image.

The slug is computed as test-dimage with this configuration:

slug:
  encoding: "ascii"
  clean_accents: true
  sanitize_replacement: "-"

This is wrong, as “dimage” is not a word.

I believe the slug should be test-d-image.

Describe the solution you'd like

I think single quotes (and maybe other characters) should also be replaced with the sanitize_replacement character.

Describe alternatives you've considered

I could use my own slugify function, if it was possible.

Maybe this PR would allow it (I'm not sure):

In other projects, I use @sindresorhus/slugify.

I even developed an extended version for some non latin characters, this is not a trivial topic: https://github.com/nhoizey/eleventy-plugin-pack11ty/blob/main/_11ty/utils/slugify.js