Estoy escribiendo un gran documento de Markdown y me gustaría colocar una tabla de contenido al principio que proporcione enlaces a varias ubicaciones en el documento. ¿Cómo puedo hacer esto?
Traté de usar
[a link](# MyTitle)
donde MyTitle
hay un título dentro del documento y esto no funcionó.
markdown
multimarkdown
exclusión recíproca
fuente
fuente
Respuestas:
En pandoc , si usa la opción
--toc
para producir html, se generará una tabla de contenido con enlaces a las secciones y de regreso a la tabla de contenido desde los encabezados de sección. Es similar a los otros formatos que escribe pandoc, como LaTeX, rtf, rst, etc. Así que con el comandoeste bit de rebaja:
producirá esto como el cuerpo del html:
fuente
git clone
en el directorio tmbundle más bajo o más externo,~/Library/Application\ Support/TextMate/Bundles
para simplificar la integración.-1
a la primera repetición del ello,-2
para el segundo, etc.Github analiza automáticamente las etiquetas de anclaje de sus encabezados. Entonces puedes hacer lo siguiente:
En el caso anterior, el
Foo
encabezado ha generado una etiqueta de anclaje con el nombrefoo
Nota : solo uno
#
para todos los tamaños de encabezado, sin espacio entre el#
nombre de anclaje , los nombres de etiqueta de anclaje deben estar en minúsculas y delimitados por guiones si tienen varias palabras .Actualizar
Funciona fuera de la caja con
pandoc
también.fuente
[just](#like-this-one)
.## Foo
, intente [este es mi enlace a Foo] (# foo) ... es decir: hash único , sin espacio entre hash y minúsculas-kebab-case-name- de cabeceraExperimentando, encontré una solución usando,
<div…/>
pero una solución obvia es colocar su propio punto de anclaje en la página donde lo desee, por lo tanto:antes y
después de la línea a la que desea 'enlazar'. Luego un enlace de descuento como:
cualquier parte del documento te lleva allí.
La
<div…/>
solución inserta una división "ficticia" solo para agregar laid
propiedad, y esto es potencialmente perjudicial para la estructura de la página, pero la<a name="abcde"/>
solución debería ser bastante inocua.(PD: podría estar bien colocar el ancla en la línea a la que desea vincular, de la siguiente manera:
pero esto depende de cómo Markdown trate esto. Noto, por ejemplo, que el formateador de respuestas Stack Overflow está contento con esto)
fuente
## headers
.<div/>
varias líneas siguientes se ven afectadas. En cambio, tengo que ajustar el texto que estoy vinculando en unadiv
cláusula de etiqueta completa y tengo que volver a ESPECIFICAR el comportamiento desde cero usando HTML real. Abucheo.<a name="head1"/>
por<a id="head1"/>
.Esto puede ser fuera de fecha hilo, pero para crear enlaces de documentos internos en rebajas en el uso de Github ...
(NOTA: minúsculas #title)
Se hizo una buena pregunta, así que he editado mi respuesta;
Un enlace interno puede hacerse a cualquier tamaño usando título -
#
,##
,###
,####
creé un ejemplo rápido abajo ... https://github.com/aogilvie/markdownLinkTestfuente
(#dependencies-title)
le dice a Github Markdown que este es un enlace interno. El texto que sigue puede tener cualquier tamaño de título. Aquí hay un ejemplo de prueba que hice ... https://github.com/aogilvie/markdownLinkTestSí, Markdown hace esto, pero debe especificar el nombre de anclaje
<a name='xyx'>
.un ejemplo completo
esto crea el enlace
[tasks](#tasks)
más adelante en el documento, crea el ancla con nombre (como se llame).
tenga en cuenta que también podría envolverlo alrededor del encabezado también.
fuente
El manual de pandoc explica cómo vincular a sus encabezados, utilizando su identificador. No verifiqué el soporte de esto por otros analizadores, pero se informó que no funciona en github .
El identificador se puede especificar manualmente:
o puede usar el identificador generado automáticamente (en este caso
#my-heading-text
). Ambos se explican en detalle en el manual de pandoc .NOTA : Esto solo funciona cuando se convierte a HTML , LaTex , ConTeXt , Textile o AsciiDoc .
fuente
Algunas cosas adicionales a tener en cuenta si alguna vez te apetece usar símbolos dentro de los encabezados por los que quieras navegar ...
... cosas como
#
,;
,&
, y:
dentro de la partida cuerdas están generalmente son ignorados / rayas en lugar de escapar, y también se pueden utilizar citación de enlaces de estilo para hacer un uso más fácil rápida.¿Puntos extra?
Por si alguien se preguntaba cómo las imágenes y otros enlaces dentro de un encabezado se analizan en un
id
...Advertencias
La representación de MarkDown difiere de un lugar a otro, por lo que cosas como ...
... en GitHub tendrá un elemento con
id
...... donde el saneamiento de vainilla resultaría en un
id
...... lo que significa que escribir o compilar archivos MarkDown a partir de plantillas requiere apuntar a una forma de slugifeing , o agregar configuraciones y lógica con secuencias de comandos para las diversas formas inteligentes en las que lugares como limpiar el texto del encabezado.
fuente
Soluciones universales
Esta pregunta parece tener una respuesta diferente según la implementación del descuento.
De hecho, la documentación oficial de Markdown no dice nada sobre este tema.
En tales casos, y si desea una solución portátil, puede usar HTML.
Antes de cualquier encabezado, o en la misma línea de encabezado, defina una ID usando alguna etiqueta HTML.
Por ejemplo:
<a id="Chapter1"></a>
verá esto en su código pero no en el documento representado.
Ejemplo completo:
Vea un ejemplo completo (en línea y editable) aquí .
Para probar este ejemplo, debe agregar algo de espacio adicional entre la lista de contenido y el primer capítulo o reducir la altura de la ventana.
Además, no use espacios en el nombre de los identificadores.
fuente
## Chapter 1
necesita una línea abierta sobre ella. (2) El enlace no funciona ...<span id="Chapter1"><span>
No existe tal directiva en la especificación Markdown. Lo siento.
fuente
Gitlab utiliza GitLab Flavored Markdown (GFM)
Aquí "todos los encabezados procesados por Markdown obtienen ID automáticamente"
Se puede usar el mouse para:
copie y guarde el enlace con el botón derecho del mouse
Por ejemplo, en el archivo README.md tengo encabezado:
## series expansion formula of the Boettcher function
que da un enlace:
El prefijo se puede eliminar, por lo que el enlace aquí es simplemente
que aquí significa:
Ahora se puede usar como:
[series expansion formula of the Boettcher function](README.md#series-expansion-formula-of-the-boettcher-function)
También se puede hacer manualmente: reemplazar espacios con un signo de guión.
El ejemplo en vivo está aquí
fuente
Usando kramdown, parece que esto funciona bien:
Veo que se ha mencionado que
funciona de manera eficiente, pero la primera podría ser una buena alternativa para elementos además de encabezados o encabezados con varias palabras.
fuente
Dado que MultiMarkdown fue mencionado como una opción en los comentarios.
En MultiMarkdown, la sintaxis de un enlace interno es simple.
Para cualquier encabezado en el documento simplemente dé el nombre del encabezado en este formato
[heading][]
para crear un enlace interno.Lea más aquí: MultiMarkdown-5 Referencias cruzadas .
fuente
Algunos giros más en el
<a name="">
truco:fuente
Además de las respuestas anteriores,
Al configurar la opción
number_sections: true
en el encabezado YAML:RMarkdown numerará automáticamente sus secciones.
Para hacer referencia a esas secciones numeradas automáticamente, simplemente ponga lo siguiente en su archivo R Markdown:
[My Section]
¿Dónde
My Section
está el nombre de la sección?Esto parece funcionar independientemente del nivel de sección:
# My section
## My section
### My section
fuente