html - online - En Markdown, ¿cuál es la mejor manera de vincular a un fragmento de una página, es decir,#some_id?
markdown tutorial (4)
Estoy intentando descubrir cómo hacer referencia a otra área de una página con Markdown. Puedo ponerlo en funcionamiento si agrego un
<div id="mylink" />
y para el enlace hacer:
[My link](#mylink)
Pero creo que hay otra forma de hacer un enlace en la página en Markdown que no involucra la etiqueta div
directa.
¿Algunas ideas?
Con la versión de PHP de Markdown , también puede vincular encabezados a identificadores de fragmentos dentro de la página usando una sintaxis como cualquiera de las siguientes, como se documenta here
Header 1 {#header1}
========
## Header 2 ## {#header2}
y entonces
[Link back to header 1](#header1)
[Link back to header 2](#header2)
Desafortunadamente, esta sintaxis actualmente solo es compatible con encabezados, pero al menos podría ser útil para compilar una tabla de contenido.
El anclaje de destino para un enlace en una página HTML puede ser cualquier elemento con un atributo id
. Ver Links en el sitio W3C. Aquí hay una cita de la sección relevante:
Los anclajes de destino en documentos HTML se pueden especificar mediante el elemento A (que lo nombra con el atributo de nombre) o mediante cualquier otro elemento (denominación con el atributo id).
Markdown trata HTML como HTML (ver HTML en línea ), por lo que puedes crear identificadores de fragmentos desde cualquier elemento que desees. Si, por ejemplo, desea vincular un párrafo, simplemente ajuste el párrafo en una etiqueta de párrafo e incluya una identificación:
<p id="mylink">Lorem ipsum dolor sit amet...</p>
Luego use su Markdown [My link](#mylink)
estándar [My link](#mylink)
para crear un enlace para fragmentar el anclaje. Esto ayudará a mantener su HTML limpio, ya que no hay necesidad de marcado adicional.
Supongo que esto depende de lo que estés usando para generar html a partir de tu descuento. Me di cuenta de que ese jekyll (es utilizado por las páginas de gihub.io por defecto) automáticamente agrega el atributo id = "" a los encabezados en el html que genera.
Por ejemplo, si tu descuento es
My header
---------
El html resultante se verá así:
<h2 id="my-header">My header</h2>
Para que pueda enlazar a él simplemente por [My link](#my-header)
Vea esta respuesta .
En resumen, haga un destino con
<a name="sometext"></a>
insertado en cualquier parte de su marca de descuento (por ejemplo, en un encabezado:
## heading<a name="headin"></a>
y enlace a él usando el enlace de reducción:
[This is the link text](#headin)
o
[some text](#sometext)
No use <div>
: esto arruinará el diseño de muchos procesadores.
(He cambiado id=
para name=
arriba. Consulte esta respuesta para la explicación tediosa).