hipstered == un editor de código, muchas ideas pendientes
Como decía en la sección de proyectos, aunque algunos no estén desarrollados si la idea te sirve pues adelante. Este es uno de esos proyectos que querría haber terminado pero al menos de momento será complicado. Es el típico que si le dedicas un finde a saco lo sacas pero por desgracia no cuento con ese lujo. Lo que ahora mismo funciona no tiene nada de novedoso, pero lo que quiero añadir igual sí. Se trata de un editor de código web para navegador (hasta ahí nada novedoso):
hipstered: tan hipster que nadie lo usa.
A ver que nadie se tome en serio lo de las gafas de pasta y mofarse de los frontenders. De hecho tras ver lo que se puede hacer con unas gafas de pasta al final del Padrino III prefiero no bromear al respecto. Como se puede apreciar el editor tiene el típico sistema de pestañas como cualquier editor de código. El código se destaca gracias a uno de tantos syntax highlighter que existen, este en concreto era codemirror, que va muy bien y tiene mil opciones. Por detrás hay javascript+jquery que básicamente se encarga de gestionar un array de ficheros y todo el tema de simular las pestañas, pestañas activas, etc.. que ha sido un poco rollo. Está todo hecho del tirón y necesita refactorizar por todas partes.
¿Qué más se puede hacer?
Existen un montón de editores de código que utilizan el navegador, algunos cañeros como cloud9, otros más de aquí te pillo aquí te mato como jsfiddle. Mi idea era crear este proyecto de editor como una aplicación que pudiera funcionar offline y que aprovechará el potencial de HTML5. Porque claro... si funciona offline ¿dónde guardamos los ficheros? Estas son algunas de las ideas que quedan pendientes añadir al hipstered:
- Salvar ficheros en IndexedDB: sin salir del navegador podriamos tener los ficheros guardados en nuestro equipo.
- Simular un sistema de ficheros en IndexedDB: una tabla en la que haya carpetas virtuales y ficheros y un campo carpeta_padre. O incluso proyectos. Fácilmente.
- Configuraciones de usuario con LocalStorage/SessionStorage: se puede meter usuario/contraseña, preferencias de aplicación
- IndexedDB guarda versiones: la BBDD es a la vez un repositorio de software perfecto.
- Posibilidad de guardar en la nube: o sincronizar todo lo que hay en indexedDB con un sitio remoto, por ejemplo a un servidor Node.js + MongoDB.
- Añadir websockets: para trabajo en grupo. Aunque no se pueden intercambiar binarios, si se codifican... oh cielos, se me acaba de ocurrir otra cosa.
Pues eso, tal cual está ahora es una tontería, un juguete. Pero metiéndole esas cosillas se puede conseguir una aplicación HTML5 principalmente offline más o menos útil. Con un poco de tiempo... Si quieres cacharrear y horrorizarte, te lo puedes bajar aquí