fix(editor): retours a la ligne conserves quand on change de bloc (Entree)
Shift+Entree insere des <br>; 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 <br> (apres les remplacements markdown inline): ligne conservee pour tous les types de bloc. v5.1.7
This commit is contained in:
+15
-1
@@ -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 `<br>` ; `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 `<br>` (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
|
||||
|
||||
+1
-1
@@ -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,
|
||||
|
||||
@@ -27,7 +27,8 @@
|
||||
.replace(/\*\*([^*]+)\*\*/g,'<strong>$1</strong>')
|
||||
.replace(/\*([^*]+)\*/g,'<em>$1</em>')
|
||||
.replace(/~~([^~]+)~~/g,'<s>$1</s>')
|
||||
.replace(/\[([^\]]+)\]\((https?:[^)\s]+)\)/g,'<a href="$2" target="_blank" rel="noopener noreferrer">$1</a>');
|
||||
.replace(/\[([^\]]+)\]\((https?:[^)\s]+)\)/g,'<a href="$2" target="_blank" rel="noopener noreferrer">$1</a>')
|
||||
.replace(/\n/g,'<br>');
|
||||
}
|
||||
|
||||
const CALLOUT_ICONS=['💡','💡','📌','⚠️','ℹ️','✅','❌','🚀','🔔','📣','⭐','❤️','🔥','💬','👀','🧠','🎯','🔑','📅','💰','💡','📚','🧪','🌍'];
|
||||
|
||||
Reference in New Issue
Block a user