[Import/Export] Fold UTF-8 iCalendar lines
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 70/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
- Ambito
- backend
Direzione di ricerca
Inizia da src/lib/ics/text.ts, dove foldIcsLine(line: string): string va aggiunta o estesa, e verifica se il lavoro di escaping di #801 è già stato unito, dato che la issue lo elenca come prerequisito. Leggi src/lib/domain/section.ts come esempio di partenza. Scrivi i test di folding in src/lib/ics/text.test.ts, coprendo 100 caratteri ASCII, caratteri multibyte ai confini di folding e il limite di 75 ottetti. Il lavoro è completo quando i test passano con pnpm test -- src/lib/ics/text.test.ts e pnpm lint e pnpm typecheck non segnalano errori.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What to build
Wrap long calendar-file lines at the format’s byte limit. Keep accented and other multi-byte characters intact so calendar apps can read the exported text correctly.
Files
src/lib/ics/text.ts(extend the prerequisite’s file)- Starting example: src/lib/domain/section.ts
Code to add or extend:foldIcsLine(line: string): string.
Steps
- Iterate Unicode code points and count TextEncoder byte length.
- First wrapped line has75-octet capacity; later lines have74 for content plus the required leading space. Insert CRLF plus space at boundaries without splitting a code point.
- Verify removing the line breaks restores the exact unwrapped line.
Example
100 ASCII characters fold; accented characters never split into invalid UTF-8; every wrapped line is at most 75 octets.
Check it works
In src/lib/ics/text.test.ts, check the example above and the failure or limit described in the steps. Run pnpm test -- src/lib/ics/text.test.ts, pnpm lint and pnpm typecheck.
Before starting
- #801 — Escape iCalendar text
References
Assign yourself before starting, or comment to claim the issue. Project setup.
- Lingua principale
- TypeScript
- Stelle
- 19
- Fork
- 94
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di DevDogsUGA/DogDays
-
map
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
DevDogsUGA/DogDays#868 ·
-
map
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
DevDogsUGA/DogDays#865 ·
-
sharing
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
DevDogsUGA/DogDays#854 ·
-
import-export
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
DevDogsUGA/DogDays#850 ·
-
import-export
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
DevDogsUGA/DogDays#842 ·
Tutte le issue di DevDogsUGA/DogDays
Issue simili
-
fix(frontend): correct VITE_IS_DEVELPOMENT typo in shared/app.ts and align dev environment flagsAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
vicharanashala/ajrasakha#1439 ·
I maintainer di solito rispondono entro 1 giorno
-
Add: TV5Monde AsieApertaapproved check:passed streams:add
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
codex-team/editor.js#3037 ·
-
complexity: trivial good first issue impact: low
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
ueberdosis/tiptap#8522 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
wormhole-foundation/wormhole#5062 ·
I maintainer di solito rispondono entro 1 giorno