Existe-t-il une syntaxe de démarque pour l'équivalent de:
Take me to <a href="#pookie">pookie</a>
...
<a name="pookie">this is pookie</a>
la source
Existe-t-il une syntaxe de démarque pour l'équivalent de:
Take me to <a href="#pookie">pookie</a>
...
<a name="pookie">this is pookie</a>
Take me to [pookie](#pookie)
devrait être la syntaxe de démarquage correcte pour passer au point d'ancrage nommé pookie.
Pour insérer un point d'ancrage de ce nom, utilisez HTML:
<a name="pookie"></a>
Markdown ne semble pas se soucier de l'endroit où vous placez le point d'ancrage. Un endroit utile pour le mettre est dans un en-tête. Par exemple:
### <a name="tith"></a>This is the Heading
fonctionne très bien. (Je démontrerais ici, mais le moteur de rendu de SO supprime l'ancre.)
id=
contrename=
Une version antérieure de cet article suggérait d'utiliser <a id='tith' />
, d'utiliser la syntaxe à fermeture automatique pour XHTML et d'utiliser l' id
attribut à la place de name
.
XHTML permet à n'importe quelle balise d'être «vide» et «auto-fermée». C'est-à-dire, <tag />
est une abréviation pour <tag></tag>
, une paire de balises appariées avec un corps vide. La plupart des navigateurs acceptent XHTML, mais certains ne le font pas. Pour éviter les problèmes entre navigateurs, fermez la balise explicitement en utilisant <tag></tag>
, comme recommandé ci-dessus.
Enfin, l'attribut name=
était obsolète en XHTML, donc j'ai utilisé à l'origine id=
, ce que tout le monde reconnaît. Cependant, HTML5 crée maintenant une variable globale en JavaScript lors de l'utilisation id=
, et ce n'est pas nécessairement ce que vous voulez. Ainsi, l'utilisation name=
est désormais susceptible d'être plus conviviale.
(Merci à Slipp Douglas pour expliquer XHTML pour moi, et cloueuse pour pointer le HTML5 effet secondaire - voir les commentaires et cloueuse s » réponse pour plus de détails. name=
Semble fonctionner partout, mais il est dépréciée en XHTML.)
<a>
sans href qu'il se ferme automatiquement. À moins que je ne sois complètement fou, les deux: test-xhtml11 et [ sln.6bitt.com/public/test-html5.html spell ( test- html5) rendent le reste de la page dans la balise <a>. Allez-y et inspectez avec un inspecteur Web de votre choix.<a id="hi"/> rest of doc
, mais il a été traité comme<a id="hi"> rest of doc</a>
. (Et l'analyse des éléments de la page le montre aussi.) Mon erreur: j'ai regardé les éléments affichés et non la source brute. Pensez-vous que la réponse devrait être modifiée à la lumière de cette observation?name
attribut crée également des variables globales (voir stackoverflow.com/questions/3434278/… ), vous pouvez donc aussi bien utiliser l'id
attribut comme cible des URL d'identifiant de fragment, comme prévu.Sur bitbucket.org, la solution votée ne fonctionnerait pas. Au lieu de cela, lorsque vous utilisez des en-têtes (avec ##), il est possible de les référencer en tant qu'ancres en les préfixant comme # markdown-header-my-header-name, où # markdown-header- est un préfixe implicite généré par le moteur de rendu, et le reste est le titre d'en-tête en bas de casse avec des tirets remplaçant les espaces.
Exemple
produira une ancre implicite comme celle-ci
L'URL complète avant chaque référence d'ancrage est facultative, c'est-à-dire
est équivalent à
à condition qu'ils soient sur la même page.
Source: https://bitbucket.org/tutorials/markdowndemo/overview (éditez la source de ce fichier .md et regardez comment les ancres sont faites).
la source
## My paragraph title
produira l'ancre suivanteuser-content-my-paragraph-title
, afin que vous puissiez la référencer avec [du texte] (# user-content-my-paragraph-title). Cependant, je n'ai pas trouvé de documentation officielle pour cela.[linky](#header)
était une ancre suffisante et fonctionnait également lors de sa publication sur Gist.Utilisez a
name
. L'utilisation d'unid
n'est pas nécessaire en HTML 5 et créera des variables globales dans votre JavaScriptVoir la spécification HTML 5, 5.9.8 Navigation vers un identificateur de fragment - les deux
id
etname
sont utilisés.Il est important de savoir que la plupart des navigateurs transforment toujours les identifiants en variables globales . Voici un test rapide . L'utilisation d'un
name
évite la création de globaux et tout conflit pouvant en résulter.Exemple utilisant un nom:
Et l'ancre de destination:
la source
name
etid
est différente.fineuploader
, vous ne pourrez pas utiliser lefineuploader
module. Éviter de créer des globaux inutiles permet d'éviter ces conflits.Markdown Anchor prend en charge le hachage, donc un lien vers une ancre dans la page serait simplement
[Pookie](#pookie)
La génération de l'ancre n'est pas réellement prise en charge dans Gruber Markdown, mais dans d'autres implémentations, telles que Markdown Extra .
Dans Markdown Extra, l'ID d'ancrage est ajouté à un en-tête ou un sous-titre avec
{#pookie}
.Github Flavored Markdown dans les pages du référentiel Git (mais pas dans Gists) génère automatiquement des ancres avec plusieurs balises de balisage sur tous les en-têtes (h1, h2, h3, etc.), notamment:
id="user-content-HEADERTEXT"
class="anchor"
href="#HEADERTEXT"
aria-hidden="true"
(c'est pour une icône de lien svg qui s'affiche au survol de la souris)Hors icône aria / svg, quand on écrit:
# Header Title
Github génère:
<h1><a id="user-content-header-title" class="anchor" href="#header-title">Header Title</a></h1>
Par conséquent, il suffit de ne rien faire pour créer les liens d'en-tête et vous pouvez toujours les lier avec:
[Header Title](#header-title)
la source
Il n'y a pas de syntaxe facilement disponible pour le faire dans la syntaxe Markdown d'origine, mais Markdown Extra fournit un moyen d'attribuer au moins des ID aux en-têtes - que vous pouvez ensuite lier facilement. Notez également que vous pouvez utiliser du HTML standard dans Markdown et Markdown Extra, et que l'
name
attribut a été remplacé par l'id
attribut dans les versions plus récentes de HTML.la source
Pour tous ceux qui recherchent une solution à ce problème dans GitBook. C'est ainsi que je l'ai fait fonctionner (dans GitBook). Vous devez baliser explicitement votre en-tête, comme ceci:
Puis liez à cette ancre comme ceci
La solution et des exemples supplémentaires peuvent être trouvés ici: https://seadude.gitbooks.io/learn-gitbook/
la source
Tard dans la soirée, mais je pense que cet ajout pourrait être utile pour les personnes qui travaillent avec
rmarkdown
. Dansrmarkdown
y a un support intégré pour les références aux en-têtes dans votre document.Tout en-tête défini par
peut être référencé par
Voici un
.rmd
fichier autonome minimal qui montre ce comportement. Il peut être tricoté sur.pdf
et.html
.la source
En utilisant la dernière Markdown, vous devriez pouvoir utiliser la syntaxe suivante:
[](){:name='anchorName'}
Cela devrait créer le code HTML suivant:
<a name="anchorName"></a>
Si vous vouliez que l'ancre ait du texte, ajoutez simplement le texte de l'ancre entre crochets:
[Some Text](){:name='anchorName'}
la source
Maruku
connaît que cette syntaxe. Voir le babelmark.Pour les générateurs de démarques les plus courants. Vous avez une ancre auto-générée simple dans chaque en-tête. Par exemple avec pandoc , l'ancre générée sera un slug case kebab de votre en-tête.
En fonction de l'analyseur Markdown que vous utilisez, l'ancre peut changer (prenez l'exemple des réponses symbolrush et La muerte Peluda, elles sont différentes!). Voir ce babelmark où vous pouvez voir les ancres générées en fonction de votre implémentation de démarque .
la source