EditorMD es un editor Markdown de última generación desarrollado con Angular 20, diseñado para ofrecer una experiencia de escritura fluida, intuitiva y profesional. Funciona completamente en el navegador sin necesidad de servidor backend, utilizando las últimas tecnologías web para convertir tus ideas en documentos con formato impecable.
En un mundo donde la documentación clara y accesible es fundamental, EditorMD surge como una solución moderna para:
- Desarrolladores que necesitan crear documentación técnica rápidamente
- Escritores que buscan un entorno minimalista sin distracciones
- Estudiantes que quieren tomar notas con formato profesional
- Creadores de contenido que requieren exportar a múltiples formatos
Observa cómo tu Markdown cobra vida instantáneamente. Mientras escribes, el panel de vista previa se actualiza en tiempo real mostrando el resultado final con formato HTML renderizado.
# Escribes esto... → Y ves esto renderizado ✨- ✅ Encabezados (H1 - H6) con jerarquía visual
- ✅ Formato de texto: negritas, cursivas, tachado
- ✅ Listas: ordenadas, desordenadas y anidadas
- ✅ Código: bloques con sintaxis y código inline
- ✅ Enlaces e imágenes con soporte completo
- ✅ Citas y tablas para documentación profesional
Abre archivos .md y .txt locales con un simple clic. El contenido se carga instantáneamente en el editor, listo para ser modificado.
- Guardar Como: Define el nombre y ubicación de tu archivo
- Guardar: Actualiza el archivo actual sin preguntar
- Protección contra pérdida de datos no guardados
- Soporte para múltiples formatos (
.md,.txt)
Convierte tus documentos Markdown a PDF con un solo clic. El motor de exportación utiliza pdfmake para generar PDFs con:
- Formato limpio y profesional
- Preservación de estilos y jerarquía
- Fuentes personalizables
- Márgenes optimizados para impresión
Una interfaz diseñada con TailwindCSS y DaisyUI que combina:
- 🌈 Diseño colorido y llamativo en la página de inicio
- 🎭 Animaciones suaves y transiciones elegantes
- 📐 Layout responsive que se adapta a cualquier pantalla
- 🌓 Componentes accesibles y fáciles de usar
EditorMD/
├── 🎨 UI Components
│ ├── Navbar → Navegación principal con menús desplegables
│ ├── Subnavbar → Acciones contextuales
│ └── HomePage → Pantalla de bienvenida animada
│
├── 📝 Páginas de Edición
│ ├── NewFilePage → Crear nuevo documento
│ └── OpenFilePage → Abrir archivos existentes
│
├── ⚙️ Servicios Core
│ ├── SaveAs → Lógica de guardado inteligente
│ ├── ExportarPdf → Conversión a PDF con pdfmake
│ ├── Font → Gestión de fuentes personalizadas
│ └── Look → Tematización y estilos
│
└── 🛠️ Utilidades
└── WriteUtils → Helpers para manejo de archivos
| Tecnología | Propósito | Versión |
|---|---|---|
| Angular | Framework principal con Signals | 20.3.0 |
| TypeScript | Lenguaje con tipado estático | 5.9.2 |
| TailwindCSS | Framework de estilos utility-first | 4.1.17 |
| DaisyUI | Componentes UI prediseñados | 5.5.5 |
| pdfmake | Generación de PDFs | 3.0.3 |
| html2canvas | Captura de contenido HTML | 1.4.1 |
| FontAwesome | Iconografía profesional | 7.0.0 |
| ng-milkdown | Editor Markdown avanzado | 0.0.3 |
- Signals: Estado reactivo con Angular Signals para máximo rendimiento
- Dependency Injection: Servicios modulares e inyectables
- Standalone Components: Arquitectura moderna sin módulos NgModule
- Router Guards: Protección de rutas y navegación inteligente
- Service-based Architecture: Separación de lógica de negocio
Antes de comenzar, asegúrate de tener instalado:
- Node.js (v18.0 o superior) - Descargar aquí
- npm (v9.0 o superior) - Incluido con Node.js
- Git - Descargar aquí
Verifica las instalaciones:
node --version # Debería mostrar v18.0 o superior
npm --version # Debería mostrar v9.0 o superior# Clona el proyecto
git clone <url-del-repositorio>
# Navega al directorio del proyecto
cd EditorMD# Instala todas las dependencias del proyecto
npm installEste comando instalará:
- Angular y sus dependencias core
- TailwindCSS y DaisyUI para estilos
- pdfmake para exportación PDF
- FontAwesome para iconos
- Y todas las demás dependencias necesarias
⏱️ Tiempo estimado: 2-5 minutos dependiendo de tu conexión
# Inicia el servidor de desarrollo
npm startO alternativamente:
ng serveEl servidor se iniciará y verás algo como:
✔ Browser application bundle generation complete.
✔ Server application bundle generation complete.
Initial Chunk Files | Names | Raw Size
main.js | main | XXX kB
Application bundle generation complete. [X.XXX seconds]
Watch mode enabled. Watching for file changes...
NOTE: Raw file sizes do not reflect development server per-request transformations.
➜ Local: http://localhost:4200/
Abre tu navegador favorito y navega a:
http://localhost:4200
🎉 ¡Listo! EditorMD está corriendo en tu máquina local.
- Haz clic en el menú "Archivo"
- Selecciona "Nuevo"
- Comienza a escribir en el panel izquierdo
- Observa la vista previa en tiempo real a la derecha
- Menú "Archivo" → "Abrir"
- Selecciona un archivo
.mdo.txtde tu computadora - El contenido se cargará automáticamente
- Guardar Como:
Ctrl + Shift + S- Elige nombre y ubicación - Guardar:
Ctrl + S- Guarda rápidamente el archivo actual
- Haz clic en el menú "Archivo"
- Selecciona "Exportar a PDF"
- El PDF se descargará automáticamente
| Script | Comando | Descripción |
|---|---|---|
| Desarrollo | npm start |
Inicia servidor de desarrollo en puerto 4200 |
| Build | npm run build |
Genera build de producción optimizado |
| Watch | npm run watch |
Build continuo en modo desarrollo |
| Tests | npm test |
Ejecuta pruebas unitarias con Karma |
Los temas se pueden personalizar editando las configuraciones de DaisyUI en el archivo de configuración de Tailwind.
Utiliza el servicio FontService para registrar nuevas fuentes personalizadas para la exportación PDF.
Las contribuciones son bienvenidas. Si tienes ideas para mejorar EditorMD:
- Haz fork del proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
Este proyecto está bajo licencia privada. Todos los derechos reservados.
Desarrollado con ❤️ utilizando:
- Angular Team por el increíble framework
- La comunidad de código abierto
- Todos los colaboradores de las librerías utilizadas