Feature Request: Support heading level offsets in {{#include}} directive
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- rust
- Área
- documentation
Línea de trabajo
Comienza con el comportamiento de la directiva {{#include}} descrito en el issue y compara las sintaxis propuestas level+=N y offset=N. Define cómo deben aplicarse los desplazamientos de encabezados al Markdown incluido y qué debe ocurrir en los límites de los niveles de encabezado. Se considera completado cuando un archivo incluido se renderiza con la jerarquía de encabezados desplazada solicitada y sigue siendo válido al utilizarse con distintas profundidades de anidamiento.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Currently, when using the {{#include file.md}} directive, mdBook performs a literal string insertion of the target file. If the included file contains Markdown headings (e.g., starting with #), they retain their original level regardless of where they are included in the parent document.
This often results in a broken document hierarchy. For example, if a parent file has an # Introduction and includes a sub-file that also starts with # Sub-topic, the rendered output has two top-level H1 tags, which is semantically incorrect and visually inconsistent.
Proposed Feature
I propose adding an optional argument to the include directive to shift/offset heading levels.
Suggested Syntax:
{{#include file.md:level+=N}} or {{#include file.md:offset=N}}
Example Usage
If sub_file.md contains:
# My Section
## Subsection
In the parent main.md:
# Project Documentation
{{#include sub_file.md:level+=1}}
Expected Rendered Output:
# Project Documentation
## My Section
### Subsection
Alternatives Considered
- Manual adjustment: Manually changing headings in sub-files, which makes them look incorrect when viewed in isolation (e.g., starting a file with
####). - External Preprocessors: Using a custom preprocessor to regex-replace
#characters, but this is a common enough use case that it warrants a native implementation.
Additional Context
This feature would greatly improve the modularity of large books, allowing chapters to be composed of smaller, valid Markdown files that can still stand alone or be reused in different nesting depths.
- Lenguaje dominante
- Rust
- Estrellas
- 22.2k
- Forks
- 1.9k
- Merge medio
- 3 d 11 h
- PR fusionados (30 d)
- 5
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de rust-lang/mdBook
-
C-enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 2 días
-
Help message for `mdbook test` is a bit misleadingPosiblemente ocupada @NUAAwqy la tomó hace 7 días. AbiertoC-bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
rust-lang/mdBook#3237 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 2 días
-
C-bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
rust-lang/mdBook#3220 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Search shortcut "/" is unreachable on Firefix and on keyboard layouts where "/" requires Shift (AZERTY, QWERTZ, etc.)Posiblemente ocupada @mmustafasenoglu la tomó hace 39 días. AbiertoC-enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
rust-lang/mdBook#3197 · 1 comentario ·
Los mantenedores suelen responder en 2 días
Todos los issues de rust-lang/mdBook
Issues similares
-
area:io kernel-paused needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
bherbruck/solvecraft#7854 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
transit-audio/transit#159 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
HakanSeven12/OpenCADStudio#2257 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
priority: low ui
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
storytold/photocraft#9884 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
triage: new type: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
Jagalite/superseedr#376 ·
Los mantenedores suelen responder en 1 día