Unicode i slugs: «Grønt er skjønt» → grønt-er-skjønt

Bokstaver og tall i alle skriftsystemer beholdes, alt annet blir
bindestrek. NFC-normalisering gir samme slug uansett om ø/å kommer
prekomponert eller som base + kombinerende tegn (macOS). URL-er i
feed.xml percent-encodes siden RSS-lesere krever ASCII.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JcEy43fNYpwg6K6oTKakWR
This commit is contained in:
Ole-Morten Duesund 2026-08-26 14:02:07 +02:00
commit 1218c5d650
4 changed files with 26 additions and 20 deletions

View file

@ -9,7 +9,10 @@ from tests.conftest import png_bytes
def test_slugify_norwegian():
assert slugify("Grønt er skjønt: blåbær & øl!") == "groent-er-skjoent-blaabaer-oel"
assert slugify("Grønt er skjønt: blåbær & øl!") == "grønt-er-skjønt-blåbær-øl"
assert slugify("Hello, World_2!") == "hello-world-2"
assert slugify("Blåbær") == slugify("Bla\u030abær") # NFD → NFC
assert slugify("日本語 タイトル") == "日本語-タイトル"
assert slugify(" ") == "post"
assert unique_slug("a", {"a", "a-2"}) == "a-3"