Editor híbrido wiki (CodeMirror + marked.js)
Resumen
Editor staff en /staff/desk/wiki/*/edit — CodeMirror 6 + preview marked.js sanitizado con DOMPurify, modos Editar/Split/Preview.
Stack
| Capa | Librería |
|---|---|
| Editor | CodeMirror 6 (desk-wiki-editor.js) |
| Preview | marked.js 15 (gfm, breaks) |
| Sanitize | DOMPurify (mirror server whitelist) |
Vendor en /static/vendor/ — ver ADR-007.
Preview client-side
Debounce ~300ms al tipear. Paridad verificada con scripts/wiki_preview_parity.py.
Guardado
POST/PATCH a API staff; Cmd+S interceptado; toast sin redirect full page.
Modos UI
edit, split, preview — preferencia en localStorage.
Tema
EditorView.theme() mapea tokens CSS Desk; selección con text-shadow multicapa (sin drawSelection default).
Rollback
Atributo data-editor="legacy" fuerza textarea simple si CM falla.