Y a-t-il démarque pour l'équivalent de :
Take me to <a href="#pookie">pookie</a>
...
<a name="pookie">this is pookie</a>
Y a-t-il 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 correcte pour sauter 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 préoccuper de l'endroit où vous placez le point d'ancrage. Il est utile de le placer dans un en-tête. Par exemple :
### <a name="tith"></a>This is the Heading
fonctionne très bien. (Je ferais bien une démonstration ici, mais le moteur de rendu de SO supprime l'ancre).
id=
par rapport à name=
Une version antérieure de ce billet suggérait d'utiliser <a id='tith' />
en utilisant la syntaxe de fermeture automatique pour le XHTML, et en utilisant la syntaxe de fermeture automatique pour le id
au lieu de name
.
Le XHTML permet à toute balise d'être "vide" et "auto-fermée". En d'autres termes, le XHTML permet à toute balise d'être "vide" et "fermée", <tag />
est un raccourci pour <tag></tag>
une paire de balises appariées avec un corps vide. La plupart des navigateurs acceptent le XHTML, mais certains ne l'acceptent pas. Pour éviter les problèmes entre navigateurs, fermez la balise explicitement à l'aide de la commande <tag></tag>
comme recommandé ci-dessus.
Enfin, l'attribut name=
était obsolète dans le XHTML, et j'ai donc utilisé à l'origine la fonction id=
que tout le monde reconnaît. Cependant, HTML5 crée désormais une variable globale en JavaScript lors de l'utilisation de id=
et ce n'est pas forcément ce que vous souhaitez. Ainsi, l'utilisation de name=
est désormais susceptible d'être plus amicale.
(Merci à Slipp Douglas pour m'avoir expliqué le langage XHTML, et cloueuse pour avoir signalé l'effet de bord du HTML5 - voir les commentaires et cloueuse 's répondre pour plus de détails. name=
semble fonctionner partout, bien qu'il soit déprécié dans le XHTML).
Vous ne pouvez pas voir comment créer un lien vers votre démo d'en-tête après que StackOverflow ait rendu le HTML parce que leur rendu supprime votre <a> tag. C'est-à-dire que vous ne pouvez pas dans StackOverflow Markdown.
Cependant, cela fonctionnera avec d'autres moteurs de rendu Markdown plus libéraux, mais vous aurez besoin d'une fermeture <a> ; la balise <a> ne permet pas la fermeture automatique. De plus, j'ai constaté que mon navigateur sautait l'en-tête à moins que la balise <a> se trouve avant le contenu de l'en-tête. Des corrections ont été apportées à vos exemples.
Slipp : Merci pour l'explication. Les balises <a> qui se ferment d'elles-mêmes fonctionnent bien pour moi. Pouvez-vous donner une référence ?
Sur bitbucket.org, la solution votée ne fonctionnerait pas. Au lieu de cela, lorsque l'on utilise des en-têtes (avec ##), il est possible de les référencer comme des 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 de l'en-tête en minuscules, les espaces étant remplacés par des tirets.
Exemple
## My paragraph title
produira une ancre implicite comme celle-ci
#markdown-header-my-paragraph-title
L'URL complète précédant chaque référence d'ancre est facultative, c'est-à-dire
[Some text](#markdown-header-my-paragraph-title)
est équivalent à
[Some text](https://bitbucket.org/some_project/some_page#markdown-header-my-paragraph-title)
à condition qu'ils soient sur la même page.
Source : https://bitbucket.org/tutorials/markdowndemo/overview (éditer la source de ce fichier .md et regarder comment les ancres sont faites).
Cela peut aussi faire l'affaire. D'après ceci : confluence.atlassian.com/bitbucket/ bitbucket supporte l'extension Table des matières qui permet de générer automatiquement des liens. y sur la base des en-têtes du document. L'extension TOC est documentée ici : pythonhosted.org/Markdown/extensions/toc.html Ajoutez le texte "[TOC]" au début du document pour qu'il soit généré.
Dans Github, ## My paragraph title
produira l'ancre suivante user-content-my-paragraph-title
Vous pouvez donc y faire référence avec [Some text](#user-content-my-paragraph-title). Cependant, je n'ai pas trouvé de documentation officielle à ce sujet.
Utiliser un name
. L'utilisation d'un id
n'est pas nécessaire en HTML 5 et créera des variables globales dans votre JavaScript
Voir la spécification HTML 5, 5.9.8 Naviguer vers un identifiant de fragment - à la fois id
y name
sont utilisés.
Il est important de savoir que la plupart des navigateurs transforment encore les ID en variables globales . Voici un test rapide . L'utilisation d'un name
évite la création de globaux et les conflits qui peuvent en résulter.
Exemple d'utilisation d'un nom :
Take me to [pookie](#pookie)
Et l'ancre de destination :
### <a name="pookie"></a>Some heading
Le vote négatif. L'argument de la variable globale est faible puisque vous ne devriez pas définir (directement) des variables globales dans votre JS de toute façon, donc aucun conflit ne se produira. De plus, la sémantique de name
y id
sont différents.
@MarnenLaibow-Koser Personne ne discute de la définition de variables globales en JS. La création d'un identifiant en HTML crée une fenêtre globale window.someid dans la plupart des navigateurs.
Je sais. Mais à moins que votre propre JS définit des variables globales, le window.someID
Les variables ne font pas de mal.
Ancre Markdown prend en charge le hashmark, de sorte qu'un lien vers une ancre dans la page serait simplement [Pookie](#pookie)
La génération de l'ancre n'est pas prise en charge par Gruber Markdown, mais elle l'est dans d'autres implémentations, telles que Démonstration supplémentaire .
Dans Markdown Extra, l'identifiant de l'ancre est ajouté à l'en-tête ou au sous-titre avec la mention {#pookie}
.
Markdown à la sauce Github dans les pages du dépôt Git (mais pas dans les Gists) génère automatiquement des ancres avec plusieurs balises sur tous les en-têtes (h1, h2, h3, etc.), y compris :
id="user-content-HEADERTEXT"
class="anchor"
href="#HEADERTEXT"
aria-hidden="true"
(il s'agit d'une icône de lien svg qui s'affiche au survol de la souris)A l'exception de l'icône aria/svg, lorsqu'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 n'est pas nécessaire de créer les liens d'en-tête, et il est toujours possible d'y faire référence à l'aide d'un lien :
[Header Title](#header-title)
Pour tous ceux qui cherchent une solution à ce problème dans GitBook. Voici comment je l'ai fait fonctionner (dans GitBook). Vous devez baliser votre en-tête explicitement, comme ceci :
# My Anchored Heading {#my-anchor}
Créez ensuite un lien vers cette ancre comme suit
[link to my anchored heading](#my-anchor)
La solution, ainsi que d'autres exemples, sont disponibles ici : https://seadude.gitbooks.io/learn-gitbook/
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.