CreaRack-SL

Cuaderno — Editor Markdown con CodeMirror 6

Descripción

El Cuaderno es el módulo de notas personales del Workspace de CreaRack Pro. Permite a los usuarios (inicialmente Edu) crear, organizar y exportar notas en formato Markdown puro con resaltado de sintaxis estilo Notepad++.

Desde el commit 56a1118 (2026-05-08) el editor usa CodeMirror 6 en modo source, mostrando los markers Markdown visibles (##, **, `, |, etc.) con coloring por tokens Lezer. Reemplaza al editor WYSIWYG TipTap anterior.

Funcionalidades activas

CapacidadDetalle
Editor source MarkdownCodeMirror 6 + @codemirror/lang-markdown; markers visibles, sin preview
Syntax highlightingHighlightStyle Lezer que lee CSS vars de :root; 9 elementos sintácticos temátizables
ToolbarComandos de manipulación de texto literal: Bold (**), H1 (# ), etc. operan sobre EditorView
Tema dinámicoThemeConfigModal emite CustomEvent cuaderno-theme-changed; codemirrorTheme.ts reconfigura el HighlightStyle en caliente
Multi-paneLayouts 1×1, 2×1, 1×2, 2×2, 3×1
SidebarDuplicar / eliminar / pin / archivar notas
Auto-saveDebounce 1 segundo → localStorage
Hint contextualSugerencia según tipo de línea actual
ExportTXT / MD / HTML directo del storage (ya es Markdown plano)

Capacidades eliminadas (respecto a TipTap)

  • Slash menu / — no tiene sentido en source mode.
  • Bubble menu de tablas — las tablas son sintaxis |---| Markdown.
  • Color custom de palabras seleccionadas (era WYSIWYG-only).
  • Resize drag & drop de tablas.

Storage y compatibilidad

  • Formato: Markdown plano. Sin cambio de formato desde iteración s54.
  • Notas legacy: notas con JSON TipTap interno (iteraciones anteriores a s54) se renderizan como JSON crudo en CodeMirror — caso edge esperado; el usuario puede eliminarlas.

Archivos principales

ArchivoRol
src/components/notebook/NoteEditor.tsxComponente React principal; monta EditorView de CodeMirror
src/components/notebook/Toolbar.tsxComandos de toolbar sobre EditorView
src/components/notebook/ExportModal.tsxExport TXT/MD/HTML sin ghost editor
src/components/notebook/ThemeConfigModal.tsxConfiguración de tema; emite cuaderno-theme-changed
src/components/notebook/codemirrorTheme.tsHighlightStyle Lezer con CSS vars

Archivos eliminados

  • src/components/notebook/extensions.ts — TipTap TextStyle extension.
  • src/components/notebook/slashCommands.ts — slash menu TipTap.
  • src/components/notebook/TableBubbleMenu.tsx — bubble menu TipTap.

Dependencias

Añadidas

@codemirror/autocomplete ^6.20.2
@codemirror/commands     ^6.10.3
@codemirror/lang-markdown ^6.5.0
@codemirror/language     ^6.12.3
@codemirror/search       ^6.7.0
@codemirror/state        ^6.6.0
@codemirror/view         ^6.42.1
@lezer/highlight         ^1.2.3

Eliminadas

@tiptap/core, @tiptap/extension-*, @tiptap/pm, @tiptap/react,
@tiptap/starter-kit, @tiptap/suggestion, tiptap-markdown

Motivación de diseño

Edu prefiere ver markdown puro con markers visibles (##, **, `, etc.) y syntax highlighting por colores, no WYSIWYG. — commit body

La decisión de arquitectura asociada está documentada en [[decision—20260508—tiptap-to-codemirror]].

Véase también

  • [[decision—20260508—tiptap-to-codemirror]]
  • [[workspace—que-es-workspace]]