Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Signup links and field refs drop ø, æ, ß and ł

Cerrado Apto para principiantes
#641 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Ya se ha fusionado un pull request relacionado.

  • #671 de @richshaw — fusionado

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
75/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
typescript
Área
backend

Línea de trabajo

Lee src/lib/kebab.ts y los casos existentes en src/lib/slug.test.ts; después, revisa las pruebas de slot y field mencionadas en el issue. Añade cobertura para las letras indicadas y conserva las salidas actuales para å, ä y ö. La tarea estará terminada cuando las nuevas correspondencias estén cubiertas y se ejecuten correctamente los comandos indicados de lint, typecheck, knip y test.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug pipeline:ready pipeline:ux

Needs your OK: this changes how the web addresses of new signups, and the refs of new fields and slots, are made from text with these letters. Existing links don't change. Swap pipeline:proposed for pipeline:ready to have it built.

What happens

toKebab in src/lib/kebab.ts turns text into the kebab-case behind signup slugs, workspace slugs, slot refs and field refs. It strips accents with NFKD, which works for å, ä, ö, é and ü, but some letters don't decompose and are dropped or split the word:

  • "Smørrebrød" → sm-rrebr-d
  • "Æblekage" → blekage
  • "Straße" → stra-e
  • "Łódź" → odz

So Danish, Norwegian, German and Polish titles get broken-looking links. Non-Latin titles (Cyrillic, Greek, Chinese) come out empty and fall back to signup, field or slot, which is fine for now.

Fix, in outline

  • Map the letters that don't decompose, before NFKD: ø→o, æ→ae, œ→oe, ß→ss, ł→l, đ→d, þ→th, ð→d, in upper and lower case.
  • Leave non-Latin scripts on the fallback.

Watch for

  • Existing slugs and refs never change. toSlug and toFieldRef are only called to make new values (pickAvailableSlug in src/services/signups.ts, the slot ref in src/services/slots.ts, the workspace slug in src/auth/adapter.ts), so nothing re-derives a stored one.
  • No Node imports. toKebab is shared with the builder in the browser.
  • Tests pin today's outputs (src/lib/slug.test.ts and the slot-field tests).

Order

None. This can be built any time; it should land before Danish or Norwegian ship.

Done when

  • Unit tests cover each mapped letter, and å, ä and ö come out as before.
  • pnpm lint && pnpm typecheck && pnpm knip && pnpm test pass.

Planned with the owner in https://claude.ai/code/session_01EFKmj716ZY3b3SwR8TV8Y2 and checked against the code on main at 35288fa. The full plan is private to the owner's account: https://claude.ai/artifact/VgQH6U2s2EVx3LX991fJi8 (a Claude session on that account can open it with the Artifact tool's read action). It's in phase 4 there.

Lenguaje dominante
TypeScript
Estrellas
19
Forks
4
Merge medio
21 h 3 min
PR fusionados (30 d)
176

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de richshaw/OpenSignup

Todos los issues de richshaw/OpenSignup

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.