MDViewer

Recorrido por las funciones

2026-07-27 1540 palabras 8 min de lectura

Explicación completa del renderizado, la comodidad de lectura, la búsqueda, la edición, la exportación y cómo está hecho.

Funciones

Renderizado

Sintaxis Markdown

Además de CommonMark y GitHub Flavored Markdown, también se admite:

Sintaxis Cómo se escribe Notas
Tablas | a | b | Tres alineaciones; las cabeceras ordenan
Listas de tareas - [x] hecho Los elementos completados se tachan solos
Tachado ~~texto~~ GFM
Resaltado ==texto== Efecto de rotulador amarillo
Inserción ++texto++ Subrayado
Subíndice H~2~O
Superíndice x^2^
Notas al pie texto[^1] Enlace en ambos sentidos
Listas de definición término, salto de línea, : explicación
Abreviaturas *[HTML]: HyperText... Muestra el nombre completo al pasar el ratón
Emoji :rocket: Los nombres se convierten en emoji
Enlaces automáticos <https://…> También detecta URL sueltas

Fórmulas matemáticas

Las representa KaTeX , mucho más rápido que MathJax.

  • En línea: $E = mc^2$ o \(E = mc^2\)
  • En bloque: $$…$$ o \[…\]
  • Matrices, alineación de varias líneas con aligned, funciones a trozos con cases, sumatorios e integrales, letras griegas y los símbolos de los paquetes habituales

El lector protege el carácter $, de modo que precios como $100 o $5 - $10 no se confunden con fórmulas.

Diagramas

Los representa Mermaid ; basta con escribirlos dentro de un bloque ```mermaid. Admite diagramas de flujo, de secuencia, de clases, de estados, ER, Gantt, circulares, de recorrido de usuario, mapas mentales, grafos de Git, cuadrantes y líneas temporales.

El tema de los diagramas está ligado a las variables del tema del sitio, así que al pasar al modo oscuro se vuelven a dibujar con los colores correspondientes. Al pasar el ratón por encima puedes copiar el código fuente o descargar el SVG desde la esquina superior derecha.

Resaltado de sintaxis

  • En el servidor resalta Chroma (páginas de documentación); en el cliente lo hace highlight.js (el lector). Ambos comparten las mismas variables de color, así que el resultado es idéntico
  • Cada bloque de código ofrece etiqueta de lenguaje, botón de copia y conmutadores de números de línea y de ajuste de línea
  • Los bloques de más de 24 líneas se pliegan solos; un clic los despliega
  • Con title se puede indicar el nombre del archivo:
1
2
3
```js {title="app.js"}
const a = 1;
```

Bloques destacados

Funcionan las dos notaciones. Estilo GitHub (disponible en esta documentación y en el lector):

1
2
3
4
5
6
7
8
> [!NOTE]
> Una observación general

> [!TIP]
> Una sugerencia práctica

> [!WARNING]
> Algo a lo que prestar atención

Estilo contenedor (solo en el lector; las páginas de documentación no lo interpretan):

1
2
3
::: tip Título propio
La sintaxis de contenedor admite note / tip / important / warning / caution / danger / details
:::

Seis tipos: NOTE TIP IMPORTANT WARNING CAUTION DANGER.

Front matter

Se reconocen los formatos YAML (---), TOML (+++) y JSON ({}). Los campos title, description, date, author, tags y categories se extraen a la cabecera del documento; el resto queda plegado en una tarjeta «Front matter».

Comodidad de lectura

Temas

  • Claro, oscuro y seguir al sistema; pulsa D para ir rotando
  • Un script en línea aplica el tema antes del primer pintado, así que no hay destello blanco
  • En modo oscuro se ajustan a la vez los colores del código, de los diagramas y de las fórmulas

Tipografía

Pulsa , para abrir el panel de ajustes:

Ajuste Rango
Tamaño del texto 13 – 22 px
Interlineado 1,40 – 2,40
Ancho de columna Estrecho / normal / ancho / completo
Tipografía del texto Palo seco / serifa
Números de línea Mostrar / ocultar

Los ajustes se guardan en el localStorage del navegador y se mantienen entre páginas y sesiones.

  • Árbol de archivos: directorios plegables con filtrado en vivo por nombre de archivo
  • Esquema: niveles 2 a 4, con IntersectionObserver para resaltar la sección actual al desplazarte; el propio esquema se desplaza para seguirte
  • Progreso de lectura: una barra degradada arriba y un botón para volver arriba a partir de 600 px
  • Memoria de posición: la posición de desplazamiento de cada documento se guarda como proporción y se restaura al volver
  • Anterior y siguiente: J y K recorren la lista de archivos

Imágenes

Pulsa para abrir el visor: rueda para el zoom, arrastrar para desplazar, doble clic para alternar 1×/2×, control con + - 0 y descarga directa.

Búsqueda

Búsqueda entre archivos en el lector

Pulsa / o Ctrl+K. Una vez cargada la carpeta, todos los Markdown se leen en segundo plano para construir un índice difuso con Fuse.js , ponderado título > nombre de archivo > cuerpo > ruta. Los resultados muestran la ruta y un fragmento de contexto con la coincidencia resaltada; las flechas seleccionan e Intro abre.

Buscar dentro de un documento

Pulsa F o Ctrl+F para resaltar las coincidencias una a una en el documento actual. Intro va a la siguiente, Mayús+Intro a la anterior, con un contador «n de m».

Búsqueda global

Las páginas de documentación se indexan de antemano, así que el buscador consulta ese índice íntegramente en el navegador, sin ninguna petición al servidor.

Edición

Pulsa M para entrar en el modo de edición: el código Markdown a la izquierda y la vista previa en vivo a la derecha (con un retardo de 260 ms). El separador central se puede arrastrar y su posición queda guardada en los ajustes.

  • Barra de herramientas: encabezados, negrita, cursiva, tachado, código en línea, tres tipos de lista, cita, enlace, imagen, tabla, bloque de código, fórmula, Mermaid, bloque destacado y línea divisoria. Vuelve a pulsar para quitar un formato ya aplicado
  • Teclado: Ctrl+B/I/K para negrita, cursiva y enlace; Tab sangra una selección de varias líneas; Intro continúa la lista e incrementa la numeración, y la termina si lo pulsas en un elemento vacío. Todas las operaciones pasan por execCommand, de modo que el historial de deshacer del navegador sigue funcionando
  • Guardado: Ctrl+S escribe en el archivo local original. La primera vez el navegador pide permiso y eleva el acceso de solo lectura a lectura y escritura
  • Borradores: el contenido se guarda en IndexedDB tras 1,2 s de inactividad. Cambiar de archivo, cerrar el espacio de trabajo o cerrar la página piden confirmación si hay cambios sin guardar; la próxima vez que abras el archivo se te ofrece recuperar el borrador
  • Caché de Mermaid: la vista previa guarda en caché los diagramas por su código fuente, así que escribir no los redibuja una y otra vez

Nota

Escribir en el archivo original depende de la File System Access API, que solo admiten Chrome, Edge y similares. En Firefox y Safari —y en los espacios de trabajo abiertos arrastrando— guardar se convierte automáticamente en descargar un archivo .md.

Exportación

Método Atajo Resultado
Exportar HTML E Un solo archivo .html con el CSS incrustado y las imágenes como data URI; se abre sin conexión
Exportar PDF P Un diálogo de opciones y después la vía de impresión del navegador, con texto vectorial que se puede seleccionar y buscar

La exportación a PDF permite ajustar el tamaño de papel (A4 / Letter / A5), la orientación, los márgenes, la escala del texto, una portada, una página de índice con enlaces, si H1 o H2 empiezan página nueva, si el código se ajusta y si se imprimen las URL de los enlaces externos. En modo oscuro, los diagramas de Mermaid se vuelven a dibujar temporalmente en claro para no imprimir texto pálido sobre fondo oscuro.

Importante

El último paso es el diálogo de impresión del navegador: elige «Guardar como PDF» en «Destino». Los números de página y los encabezados dependen de la opción «Encabezados y pies de página» de ese diálogo: Chrome no admite las cajas de margen de @page en CSS, así que no se pueden dibujar números de página solo con CSS.

Cómo está hecho

Dependencias y tamaño

Módulo Para qué Tamaño Cuándo se carga
Paquete principal markdown-it y sus plugins, highlight.js, Fuse.js, código de la aplicación ~505 KB En el primer pintado
Paquete de documentación Script de mejoras y búsqueda ~60 KB En el primer pintado
KaTeX Fórmulas ~261 KB + 660 KB de fuentes Cuando aparece una fórmula
Mermaid Diagramas ~3,3 MB Cuando aparece un diagrama

Todas las dependencias se empaquetan al compilar, de modo que en ejecución no se contacta con ninguna CDN externa. El sitio puede desplegarse totalmente sin conexión y ningún recurso externo puede quedar bloqueado.

Privacidad

  • La lectura y la escritura de archivos ocurren dentro del navegador; nunca se sube nada
  • Sin scripts de terceros, sin analítica, sin rastreo, sin cookies
  • Los ajustes viven en localStorage; los identificadores de directorio, las posiciones de lectura y los borradores, en IndexedDB, todo en tu propio equipo

Idiomas

La interfaz está disponible en inglés, chino simplificado, chino tradicional, japonés, español y francés. El inglés ocupa la raíz; los demás van bajo /zh/, /zh-hant/, /ja/, /es/ y /fr/, cada uno con su propia URL compartible. El icono del globo terráqueo de la cabecera permite cambiar en cualquier momento, y va a la traducción de la página actual cuando existe.

Los textos de la interfaz están en data/i18n/<lang>.toml, compartidos por las plantillas y los scripts del navegador; cada página solo carga los de su idioma. En la primera visita, si el idioma del navegador no coincide con el de la página, aparece abajo un aviso para cambiar, que se puede descartar de forma permanente.

Relacionado