# MDK: editor de Markdown
*[Read this in English](./README.md)*
[](./LICENSE)
[](#descargar)
**Editor de Markdown simple y sin fricción para Windows: sin publicidad, sin funciones
pagas, sin cuenta.** Abre y edita `.md`/`.txt`, convierte líneas seleccionadas en
encabezados y estructura Markdown con un clic, y exporta o imprime directo a un PDF bien
formateado. Interfaz totalmente personalizable por skins (incluye la identidad visual de
VDC Process Lab por defecto, o pásate a un skin genérico o personalizado), disponible en
español e inglés (detecta el idioma del sistema).
Gratis y de código abierto (MIT) porque la mayoría de editores de Markdown que existen
esconden el formato básico detrás de publicidad o un plan pago. MDK no.

Sitio web: https://earubioc.github.io/mdk/
Ver [`CHANGELOG.md`](./CHANGELOG.md) para el historial de versiones.
## Descargar
Ir a [Releases](../../releases) y descargar el último `.exe`:
- **`MDK-Setup-X.X.X.exe`**: instalador con asistente (accesos directos en
Escritorio/Inicio). Recomendado; se actualiza solo.
- **Microsoft Store**: [mdk Markdown Editor](https://apps.microsoft.com/detail/9PKLBD74P3J7) (firmado por Microsoft, se actualiza por la tienda)
- **winget**: `winget install earubioc.MDK` (cuando el paquete sea aprobado en el catálogo de winget)
- **`MDK-portable.exe`**: se ejecuta directo, sin instalar nada.
## Requisitos
- Node.js 18+ y npm (solo para desarrollo y empaquetado, no para usar la app ya compilada)
- Windows 10/11 de 64 bits
## Desarrollo
```bash
npm install
npm start
```
Esto abre la app en una ventana Electron sobre el código en `src/`.
## Generar el ejecutable de Windows
```bash
npm run dist # genera portable + instalador NSIS
npm run dist:portable # solo .exe portable (no requiere instalación)
npm run dist:installer # solo instalador NSIS (con acceso directo en Escritorio/Inicio)
```
Los artefactos quedan en `release/`. Para instalar en otro computador solo hace falta
compartir el `.exe` final (`MDK-Setup-X.X.X.exe` o `MDK-portable.exe`); el resto de
archivos que deja `release/` (`win-unpacked/`, `.yml`, `.blockmap`) son soporte interno
del build. Ver [`manual_para_dummies.md`](./manual_para_dummies.md) para el paso a paso
sin tecnicismos. Si `electron-builder` falla con un error de "symbolic link" de
`winCodeSign`, activa el "Modo de programador" de Windows (Configuración → Privacidad y
seguridad → Para desarrolladores) o corre la terminal como Administrador — ese paso firma
el `.exe` y le graba el nombre/ícono propio de MDK, y necesita uno de esos dos permisos en
Windows.
Cada push a `main` corre una validación automática (GitHub Actions, `.github/workflows/ci.yml`).
Cada tag `vX.Y.Z` compila el instalador y el portable y los publica como GitHub Release
(`.github/workflows/release.yml`).
## Estructura
```
MDK/
├── main.js # proceso principal de Electron: ventana, menú, diálogos de archivo, exportación a PDF, idioma
├── preload.js # puente seguro (contextBridge) entre main y renderer
├── src/
│ ├── index.html # tabbar, buscador, toolbar de formato, sidebar, panes, modales
│ ├── style.css # estilos de la app + variables de skin
│ ├── renderer.js # documentos/pestañas, formato, skins, idioma, búsqueda, zoom, PDF
│ ├── markdown.js # conversor Markdown → HTML propio, sin dependencias
│ └── i18n/strings.js # diccionario español/inglés compartido entre main y renderer
├── .github/workflows/ # CI (validación) y Release (build + publicación en GitHub)
├── package.json # scripts y configuración de electron-builder
├── LICENSE # MIT
├── CHANGELOG.md # historial de versiones
└── manual_para_dummies.md # guía sin tecnicismos (build, instalación, asociar .md)
```
## Uso
- **Idioma**: español/inglés, detecta el idioma del sistema al primer arranque; se puede
cambiar en cualquier momento desde el botón ES/EN o el menú "Idioma", sin reiniciar
- **Pestañas**: varios documentos abiertos a la vez: nueva pestaña (Ctrl+N), cerrar
(Ctrl+W), reordenar arrastrando; al cerrar una con cambios pregunta Guardar / No guardar / Cancelar
- **Archivo**: Abrir (Ctrl+O), Guardar (Ctrl+S), Guardar como (Ctrl+Shift+S)
- **Formato**: selecciona una o varias líneas y pulsa H1/H2/H3 en la barra (o Ctrl+1/2/3)
para convertirlas en encabezado (`#`, `##`, `###`); Ctrl+0 vuelve a texto normal.
Negrita (Ctrl+B), cursiva (Ctrl+I), código en línea (Ctrl+E), lista (Ctrl+L), cita
(Ctrl+Shift+Q)
- **Editor / Vista previa / Ambos**: tres modos de vista — solo Editor (Ctrl+Shift+E),
solo Vista previa (Ctrl+Shift+V), o los dos lado a lado (Ctrl+Shift+B), con un divisor
arrastrable
- **Tablas**: las tablas Markdown estándar (`| col | col |`) se renderizan en la vista
previa y en el PDF exportado, con soporte de alineación (`:---`, `---:`, `:---:`); en la
vista previa también puedes arrastrar el borde entre columnas para ajustar su ancho
(solo visual, no modifica el archivo)
- **Comparar documentos**: elige 2 pestañas abiertas y velas lado a lado (botón ⧉ o
Ctrl+Shift+C), cada lado con su propio control Editor/Vista previa, con un candado
opcional para sincronizar el scroll de ambos paneles
- **Abrir un archivo**: doble clic en un `.md`/`.markdown` (MDK registra la asociación al
instalar), arrastra un archivo a la ventana, o usa Archivo → Abrir reciente para tus
últimos archivos
- **Índice del documento**: botón ☰ muestra/oculta la estructura de encabezados (Ctrl+\);
clic en un ítem salta a esa línea
- **Buscar**: Ctrl+F, siguiente/anterior dentro del buscador
- **Zoom**: botones `− 16px +` en la barra (Ctrl+= / Ctrl+-)
- **Modo oscuro**: botón ☾ (Ctrl+Shift+D)
- **Skins**: botón 🎨: VDC Process Lab, Genérico, Océano, Bosque, Lectura (papel crema, serifa), o personalizado
(colores y tipografía propios)
- **Información del documento**: botón ⓘ: palabras, caracteres, líneas, tokens
estimados, y novedades de la app
- **Exportar a PDF**: botón "Exportar PDF" o Ctrl+P: guarda un `.pdf` con el skin activo
- **Imprimir**: Ctrl+Shift+P abre el diálogo de impresión nativo de Windows
- **Configurar página**: botón "Página…": tamaño de papel (Carta, Oficio, Legal, A4, A5, A3), orientación y márgenes, usados al exportar a PDF e imprimir; el botón "Hoja" muestra la vista previa como una hoja de ese tamaño
- **Matemática**: fórmulas LaTeX en línea (`$E=mc^2$`) y en bloque (`$$ ... $$`), mostradas como ecuaciones en vista previa, comparación y PDF (convertidor propio; cubre fracciones, raíces, sumas, integrales, matrices y más)
## Licencia
MIT, ver [`LICENSE`](./LICENSE). Uso, copia, modificación y redistribución libres,
incluso comercial, con la única condición de conservar el aviso de copyright.