5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-06-02 08:44:17 +00:00
panel/doc/editor.md

74 lines
2.3 KiB
Markdown
Raw Normal View History

# Editor de texto
Tenemos varias posibilidades para editores de texto:
# [Trix](https://trix-editor.org/)
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](https://codemirror.net/)
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](https://ace.c9.io/)
Es un editor de texto como Codemirror aunque con más opciones y más
liviano (?), pero:
* Ídem codemirror
# [TUI-Editor](https://ui.toast.com/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
* No escapar los bloques de cita al sanitizar
* Crear plugin que convierta imagenes remotas en locales
* Probar qué otros adjuntos soporta trix y limitarlos (?)
* Que los <br> de trix se conviertan en parrafos