From 6356cd5703461e9141e913e1906ee9829b855b09 Mon Sep 17 00:00:00 2001 From: Bruno Charest Date: Mon, 7 Sep 2026 12:39:50 -0400 Subject: [PATCH] fix(editor): retours a la ligne conserves quand on change de bloc (Entree) Shift+Entree insere des
; sync() lit textContent (des \n). mdEsc() (render des blocs) n'encaissait pas les \n et le HTML les repliait en espace -> les lignes disparaissaient au re-rendu apres la scission Entree. mdEsc() convertit desormais les \n restants en
(apres les remplacements markdown inline): ligne conservee pour tous les types de bloc. v5.1.7 --- CHANGELOG.md | 16 +++++++++++++++- VERSION | 2 +- app/main.py | 2 +- app/templates/_page_editor_scripts.html | 3 ++- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index af4bc2b..0431b69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,20 @@ # Changelog — FlowDeck -## v5.1.6 (2026-09-07) — Placeholder titre "New Page" + placeholder blocs au focus seul +## v5.1.7 (2026-09-07) — Retours à la ligne conservés quand on change de bloc (Entrée) + +> Un bloc multi-lignes (Shift+Entrée) perdait ses retours à la ligne dès qu'on +> appuyait sur Entrée pour créer un nouveau bloc. + +### Cause +- Shift+Entrée insère des `
` ; `sync()` lit `el.textContent`, qui contient + alors des `\n`. `mdEsc()` (render des blocs) échappait le texte mais ne + convertissait pas les `\n`, et le HTML les replie en espace → les lignes + disparaissaient au re-rendu après la scission Entrée. + +### Correctif +- `mdEsc()` convertit désormais les `\n` restants en `
` (après les + remplacements markdown inline) : les retours à la ligne sont conservés dans + tous les types de bloc (paragraphe, listes, to-do, toggle, callout, code…). > Conforme au comportement Notion : le titre affiche « New Page » quand il est > vide ; les aides de blocs (« Press 'space' for AI… », « Heading 1 »…) ne diff --git a/VERSION b/VERSION index 7a3e417..693ad74 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5.1.6 \ No newline at end of file +5.1.7 \ No newline at end of file diff --git a/app/main.py b/app/main.py index a4c22ae..842c1e7 100644 --- a/app/main.py +++ b/app/main.py @@ -60,7 +60,7 @@ async def lifespan(_app: FastAPI): app = FastAPI( title="FlowDeck", - version="5.1.6", + version="5.1.7", docs_url="/docs" if settings.log_level == "DEBUG" else None, redoc_url=None, lifespan=lifespan, diff --git a/app/templates/_page_editor_scripts.html b/app/templates/_page_editor_scripts.html index 54592ce..9d7512d 100644 --- a/app/templates/_page_editor_scripts.html +++ b/app/templates/_page_editor_scripts.html @@ -27,7 +27,8 @@ .replace(/\*\*([^*]+)\*\*/g,'$1') .replace(/\*([^*]+)\*/g,'$1') .replace(/~~([^~]+)~~/g,'$1') - .replace(/\[([^\]]+)\]\((https?:[^)\s]+)\)/g,'$1'); + .replace(/\[([^\]]+)\]\((https?:[^)\s]+)\)/g,'$1') + .replace(/\n/g,'
'); } const CALLOUT_ICONS=['💡','💡','📌','⚠️','ℹ️','✅','❌','🚀','🔔','📣','⭐','❤️','🔥','💬','👀','🧠','🎯','🔑','📅','💰','💡','📚','🧪','🌍'];