fix: colonnes rendues, tables IA sans pipe de tête, copier/couper/coller multi-blocs (v7.68.0)
Colonnes / équation / TOC - renderBlock() n'appelait JAMAIS renderColumnsBlock()/renderMathBlock()/renderTOC() (3 renderers morts) → un bloc colonnes (slash « Column list », Turn into 2/3/4/5 colonnes) tombait dans le rendu générique = paragraphe vide. Dispatch ajouté ; la × de suppression de colonne (opacity:0 sans survol) devient visible au survol. Tables rendues par l'IA - _tblIsData/_tblIsSep exigeaient un | de tête → le GFM sans pipe (A | B / --- | ---) devenait des paragraphes. Pipe de tête optionnel, séparateur gardé à ≥2 cellules (« texte » + « --- » reste un séparateur). md2b et paste2b partagent les helpers. Copier / couper / coller - Sélection de texte MULTI-BLOCS : _clipState()/_clipMarkdown() (début partiel → blocs entiers via blocksToMarkdown → fin partielle), clipCopy()/clipCut() (coupure = tête du 1er bloc + queue du dernier), listeners copy/cut (Ctrl+C/X via les événements natifs), groupe Clipboard (Cut/Copy/Paste) dans le menu du clic droit avec la sélection figée à l'ouverture (la recherche prend le focus), clic droit sur un bloc sélectionné = sélection multi-blocs conservée. - Coller un seul bloc structuré (table/code/titre) = vraie insertion (avant : texte brut) ; pasteBlocks colle après le dernier bloc sans focus. - « Copy link to block » réparé (data-bm-act link → copy-link). Tests: pytest tests/ -q -n auto → 1394 passed / 0 failed ; ruff OK ; e2e v768_columns_clipboard (4 : slash+Turn into colonnes, table IA sans pipe, copier/couper/coller, clic droit Clipboard) + v762/v764/v766/v7641/v763/ regression_editor_mount → verts sur :8081 (image flowdeck:v7.68.0).
This commit is contained in:
+21
@@ -1524,6 +1524,27 @@ Détails livrés :
|
||||
`pytest` **1390 passed / 0 failed**, `ruff` OK ; `VERSION` +
|
||||
`app/main.py` = 7.67.0
|
||||
|
||||
### v7.68.0 — Colonnes rendues, tables IA, copier/couper/coller multi-blocs ✅ (2026-10-08)
|
||||
> **Objectif** : les colonnes (slash + Turn into) marchent, l'IA crée de vrais
|
||||
> tableaux, et une sélection multi-blocs se copie/coupe/colle. **COMPLETED**.
|
||||
|
||||
- [x] **Renderers morts branchés** — `renderBlock()` n'appelait jamais
|
||||
`renderColumnsBlock()` / `renderMathBlock()` / `renderTOC()` → bloc colonnes,
|
||||
équation et TOC rendaient un paragraphe vide (bug rapporté) ; × de
|
||||
suppression de colonne visible au survol (était invisible mais cliquable)
|
||||
- [x] **Tables IA** — `_tblIsData`/`_tblIsSep` acceptent le GFM **sans pipe de
|
||||
tête** (séparateur ≥2 cellules pour ne pas avaler « texte » + « --- ») ;
|
||||
`md2b` et `paste2b` alignés d'office
|
||||
- [x] **Coller** un seul bloc structuré (table/code/titre) = vraie insertion ;
|
||||
« Copy link to block » réparé (`link` → `copy-link`)
|
||||
- [x] **Copier/couper multi-blocs** — `_clipState()`/`_clipMarkdown()`/
|
||||
`clipCopy()`/`clipCut()`, listeners `copy`/`cut` (Ctrl+C/X), groupe
|
||||
**Clipboard** dans le menu du clic droit (sélection figée à l'ouverture),
|
||||
clic droit sur un bloc sélectionné = sélection multi-blocs conservée
|
||||
- [x] **Tests** — `tests/test_v768_columns_clipboard.py` (4), e2e
|
||||
`v768_columns_clipboard.spec.js` (4) ; `pytest` **1394 passed / 0 failed**,
|
||||
`ruff` OK ; `VERSION` + `app/main.py` = 7.68.0
|
||||
|
||||
---
|
||||
|
||||
## ✅ Fonctionnalités livrées hors roadmap (bonus détectés dans le code)
|
||||
|
||||
Reference in New Issue
Block a user