Axelle Abbadie
4ceb2a6a4f
feat: export EAF (ELAN) depuis Markdown noScribe
...
- markdownToEaf() — génère un .eaf FORMAT 3.0 avec tiers par locuteur,
TIME_SLOTs dédupliqués+triés, MEDIA_DESCRIPTOR optionnel, escape XML
- Commande export-as-eaf + exportCurrentFileAsEaf() dans main.ts
- Bouton dans l'onglet Exports (visible format vtt/html uniquement)
- Clés i18n fr/en/es/ru
- extractWordData() : toutes les cues incluses (plus seulement celles avec
timestamps), wordTimestampRate par cue ; fileSequentialityRate() ajouté
- 15 tests unitaires EafExporter (165 tests total, 0 échec)
2026-06-09 14:33:31 +02:00
Axelle Abbadie
eb62c50373
feat: noScribe import, scan modal candidats, exceptions surlignées
...
Intégration noScribe (Phase 10)
- VttParser : WebVTT standard avec word timestamps (Whisper)
- NoScribeHtmlParser : HTML Qt Rich Text noScribe, extraction locuteurs S00/S01, audio source
- NoScribeVttParser : VTT noScribe v0.7 (cues splitées, labels SXX:, entités HTML)
- TranscriptConverter : format Markdown noScribe (**S00** [HH:MM:SS] : texte), extractWordData → .words.json
- Import audio automatique depuis meta tag HTML ou dossier source VTT
- Re-export VTT pseudonymisé depuis .md + .words.json (commande "Exporter en VTT")
- Redaction.ts : caviardage par syllabes (🀫)
Scan modal avec candidats
- MappingScanReviewModal : colonne occurrences cliquable → OccurrencesContextModal
- OccurrencesContextModal : cartes ✓/✗/⚠ par occurrence, callback sans application immédiate
- Bouton "Enregistrer les exceptions" séparé d'Appliquer
Exceptions
- IgnoredOccurrence dans types.ts + ignoredOccurrences sur MappingRule
- Persistance dans mapping.json, chargement au démarrage
- Surlignage rouge (pseudobs-exception, sensible à la casse via collectExact)
- Section "Exceptions" dans l'onglet Mappings avec cartes contextuelles et suppression
- Priorité 0 dans le highlighter (gagne sur orange/bleu/vert)
Corrections
- getValidatedFor() : inclut 'partial' comme état actif
- Labels de statut clarifiés : "Actif", "Ignoré", "Partiel", "Suggéré"
- Scan button corrigé dans PseudonymizationView (occurrences manquantes dans MappingRuleResult)
- PseudonymHighlighter : collectExact définie, exceptionRanges orphelin supprimé
Tests : 149 tests, 10 suites
2026-05-17 01:25:20 +02:00