Extractor de Encabezados de Texto Markdown (Auditoría de Jerarquía)
Extrae todos los encabezados de un documento Markdown o HTML y muéstralos como lista, árbol ASCII, lista numerada, CSV o JSON. Además, la herramienta analiza la jerarquía y avisa de los problemas que rompen la accesibilidad y los enlaces internos: varios H1, niveles saltados y títulos duplicados.
- 🗒️ Resumen rápido: ¿cómo saco la lista de encabezados?
- Qué es un encabezado y por qué importa su estructura
- Reconocimiento de encabezados
- Formatos de salida
- Slugs de anclaje: GitHub, GitLab y simple
- Auditoría de jerarquía
- Ejemplo
- Casos de uso
- Herramientas relacionadas en porcentaje.net
- Preguntas Frecuentes (FAQ)
🗒️ Resumen rápido: ¿cómo saco la lista de encabezados?
Pega el texto Markdown o HTML, elige el formato de salida y el rango de niveles, y copia la lista. Si lo que quieres es un índice con enlaces para pegar en el propio documento, usa el generador de tabla de contenidos desde texto. Para un análisis completo del documento (metadatos, entidades, estadísticas), el extractor de metadatos de texto.
Qué es un encabezado y por qué importa su estructura
Los encabezados son los títulos y subtítulos que dividen un documento en secciones. En Markdown se escriben con almohadillas (# Título, ## Subtítulo) o con la sintaxis Setext (una línea de texto subrayada con === o ---); en HTML son las etiquetas <h1> a <h6>. Su nivel (del 1 al 6) define una jerarquía: el H1 es el título del documento, los H2 son las secciones principales, los H3 son subsecciones, y así sucesivamente.
Esa jerarquía no es decorativa. La usan:
- Los lectores de pantalla, que permiten a las personas con discapacidad visual saltar de encabezado en encabezado para navegar por la página.
- Los buscadores como Bing y Google, que interpretan la estructura de encabezados para entender de qué trata cada parte del contenido.
- Los generadores de índices (GitHub, GitLab, wikis, generadores de sitios estáticos), que construyen la tabla de contenidos y los enlaces de anclaje a partir de los encabezados.
- Los sistemas de documentación, que numeran las secciones automáticamente.
Reconocimiento de encabezados
La herramienta detecta los tres estilos habituales:
| Sintaxis | Ejemplo | Nivel |
|---|---|---|
| ATX | ### Requisitos | 1–6 según el número de # |
| Setext (H1) | Título + línea de === | 1 |
| Setext (H2) | Sección + línea de --- | 2 |
| HTML | <h2>Método</h2> | 1–6 según la etiqueta |
Con la opción activada, los encabezados que estén dentro de un bloque de código delimitado por ``` se ignoran, porque ahí una almohadilla suele ser un comentario, no un título. También puedes pedir que se elimine el formato en línea del texto del encabezado (negrita, código, enlaces) para quedarte con el texto limpio.
Formatos de salida
- Lista indentada por nivel: cada encabezado con una sangría proporcional a su nivel. Ideal para ver la estructura de un vistazo.
- Lista plana: solo el texto de los encabezados, uno por línea.
- Lista numerada jerárquica: numeración del tipo
1,1.1,1.2,2, como en un documento técnico. - Árbol ASCII: con conectores
├─y└─, como la salida del comandotree. - Markdown con anclajes:
- [Texto](#slug), listo para usar como índice. - CSV: columnas
nivel, texto, línea, slug, para abrir en una hoja de cálculo. - JSON: un array de objetos, para procesar el resultado con un script.
Slugs de anclaje: GitHub, GitLab y simple
Cada plataforma genera de forma distinta el identificador (slug) que convierte un encabezado en un destino enlazable:
- GitHub: pasa a minúsculas, elimina la puntuación, sustituye los espacios por guiones y conserva los caracteres Unicode (tildes, eñes).
- GitLab: similar, pero además translitera los acentos y colapsa los guiones repetidos.
- Simple: solo letras
a–zy dígitos, todo lo demás se convierte en un guion. Es el formato más portable.
Cuando dos encabezados tienen el mismo texto, sus slugs colisionarían; la herramienta añade un sufijo -1, -2 al segundo y siguientes, igual que hace GitHub.
Auditoría de jerarquía
Esta es la función que distingue al extractor de un simple listado. Con la validación activada, la herramienta revisa el documento entero (no solo el rango de niveles filtrado) y avisa de:
- Cero o varios
H1: un documento debe tener exactamente un título de nivel 1. CeroH1deja el contenido sin título principal; varios confunden a los buscadores y a los lectores de pantalla. - Niveles saltados: pasar de un
H2a unH4sin unH3intermedio rompe la jerarquía. Los lectores de pantalla lo anuncian como un error de estructura. - Encabezados vacíos: una almohadilla sin texto detrás.
- Títulos duplicados: dos secciones con el mismo texto generan anclajes que colisionan, de modo que un enlace del índice llevará siempre al primero.
Ejemplo
Entrada:
# Guía # Segunda guía ### Salto directo a H3 ## Configuración ## Configuración
Avisos: «2 encabezados H1: debería haber solo uno», «Salto de nivel: de H1 a H3», «Título duplicado: Configuración; los anclajes colisionan».
Casos de uso
- Revisar un
READMEantes de subirlo, para comprobar que la estructura es correcta y que el índice funcionará. - Auditoría SEO on-page: ver de un vistazo la jerarquía de encabezados de un artículo y detectar los
H1múltiples o los saltos. - Migración de contenido: extraer el esquema de un documento para reconstruirlo en otro sistema.
- Documentación técnica: generar una lista numerada de secciones para un anexo o un control de versiones.
- Accesibilidad: verificar que un HTML cumple el criterio de encabezados anidados correctamente.
Herramientas relacionadas en porcentaje.net
- Generador de Tabla de Contenidos desde Texto: crea el índice con enlaces para pegar en el documento.
- Extractor de Metadatos de Texto: front matter, entidades y estadísticas del documento.
- Contador de Líneas de Texto: mide la extensión del documento.
- Convertidor de BBCode a HTML: para contenido de foros.
- Eliminar Código HTML de un Texto: deja solo el contenido textual.
Preguntas Frecuentes (FAQ)
¿Detecta los encabezados escritos con === y ---?
Sí. La herramienta reconoce la sintaxis Setext, en la que un título se marca subrayándolo con una línea de signos igual (que produce un H1) o de guiones (que produce un H2). Para evitar falsos positivos, exige que la línea anterior sea texto real y no un elemento de lista ni una regla horizontal.
¿Qué es un «salto de nivel» y por qué es un problema?
Es pasar de un encabezado a otro cuyo nivel es más de uno superior, por ejemplo de H2 a H4 sin un H3 en medio. Rompe la jerarquía lógica del documento: los lectores de pantalla lo señalan como un error de estructura y los buscadores pierden el hilo de la organización del contenido. Lo correcto es bajar de nivel de uno en uno.
¿Por qué genera slugs distintos según GitHub o GitLab?
Porque cada plataforma tiene su propia regla para convertir el texto de un encabezado en un identificador de anclaje. GitHub conserva los caracteres acentuados; GitLab los translitera; el modo «simple» deja solo letras sin acento y dígitos. Elige el que corresponda al sitio donde vas a publicar para que los enlaces del índice funcionen.
¿Ignora las almohadillas que hay dentro del código?
Sí, si activas esa opción. El contenido de los bloques delimitados por ``` o ~~~ se excluye del análisis, de modo que un comentario como # instala las dependencias dentro de un ejemplo de shell no se cuenta como encabezado.
¿Se envía mi documento a algún servidor?
No. Todo el análisis se realiza en tu navegador con JavaScript, sin librerías externas. El texto no se transmite ni se almacena en ningún momento, así que puedes analizar borradores y documentación privada con total tranquilidad.