3 KiB
Editor de texto
Tenemos varias posibilidades para editores de texto:
Trix
Es el editor WYSIWYG integrado a Rails 6. Es simple, liviano, de relativa fácil extensibilidad, se pueden subir archivos directamente, pero:
-
No soporta markdown, con lo que hay que convertir de HTML a MD internamente
-
Hay que agregarle botones para H2-H6 porque solo tiene H1
-
No soporta tablas, aunque alguien lo logró hacer si hiciera falta. (Podemos abrir un editor de ethercalc o simil quizas y tomar los datos importándolos en HTML).
Codemirror
Es un editor de texto con resaltado de sintaxis, pero:
-
Como no es WYSIWYG, la gente se puede asustar. Solo serviría para quienes se animan a (o quieren) escribir directamente con MD
-
Habría que desarrollar una vista previa
-
Habría que hacer una interfaz para vincular imágenes y otras cosas
ACE
Es un editor de texto como Codemirror aunque con más opciones y más liviano (?), pero:
- Ídem codemirror
TUI-Editor
Es un editor WYSIWYG para Markdown, soporta tablas y un montón de features, pero:
- Está hecho en jQuery
- El JS es gigante y es super complejo, con lo que no podríamos extenderlo si hiciera falta
- No modifica un textarea con lo que no hay relación inmediata entre el texto escrito y lo que se envía luego, puede haber bugs donde no mandemos o no guardemos todo el texto.
- Tiene analytics incorporadas aunque se pueden deshabilitar
Editor para Sutty
Por ahora vamos a ir con Trix ya que es el que más características básicas tiene por la cantidad de esfuerzo que insume. Nos interesa dar la posibilidad de una edición más hacker (!), así que quizás integremos ACE o Codemirror más adelante.
Arquitectura
Todos los campos de metadatos de tipo content
se van a convertir en
editores Trix.
Trix envía HTML, que se convierte a Markdown con reverse_markdown. Al cargar el texto para editar, hay que volver a convertirlo a HTML para que Trix lo entienda. No tiene que haber incompatibilidades porque en cada edición se van a degradar los textos sino.
TODO
- Crear plugin que convierta imagenes remotas en locales
- Probar qué otros adjuntos soporta trix y limitarlos (?)
- Agregar soporte de notas al pie en reverse_markdown
Futuro
Finalmente Trix no es el editor adecuado porque genera una entrada
desprolija con <div>
y <br><br>
en lugar de párrafos, con lo que el
markdown generado tiene que ser limpiado para poder salir como html.
Estamos investigando ProseMirror como reemplazo. Es un poco más de trabajo, pero podríamos tener:
En lugar de tener que modificar Trix...
Además, queremos permitir edición de texto con Ace/Codemirror, para usuaries no WYSIWY{G,M}.