J'écris un grand document Markdown et je voudrais placer une table des matières de toutes sortes au début qui fournira des liens vers divers emplacements dans le document. Comment puis-je faire ceci?
J'ai essayé d'utiliser
[a link](# MyTitle)
où MyTitle
est un titre dans le document et cela n'a pas fonctionné.
markdown
multimarkdown
exclusion réciproque
la source
la source
Réponses:
Dans pandoc , si vous utilisez l'option
--toc
pour produire du html, une table des matières sera produite avec des liens vers les sections, et de retour à la table des matières à partir des en-têtes de section. Il est similaire avec les autres formats écrits par pandoc, comme LaTeX, rtf, rst, etc. Donc, avec la commandece peu de démarque:
produira ceci comme le corps du html:
la source
git clone
inséré dans le répertoire tmbundle le plus bas ou le plus externe,~/Library/Application\ Support/TextMate/Bundles
pour simplifier l'intégration.-1
à la première répétition de l'id,-2
à la seconde, etc.Github analyse automatiquement les balises d'ancrage de vos en-têtes. Vous pouvez donc effectuer les opérations suivantes:
Dans le cas ci-dessus, l'en-
Foo
tête a généré une balise d'ancrage avec le nomfoo
Remarque : un seul
#
pour toutes les tailles de titre, pas d'espace entre le#
nom de l' ancre, les noms des balises d'ancrage doivent être en minuscules et délimités par des tirets si plusieurs mots .Mise à jour
Fonctionne aussi avec la boîte
pandoc
.la source
[just](#like-this-one)
.## Foo
, essayez [c'est mon lien vers Foo] (# foo) ... c'est-à-dire: hachage unique , pas d'espace entre hachage et minuscule-kebab-case-name- de-têteEn expérimentant, j'ai trouvé une solution en utilisant
<div…/>
mais une solution évidente est de placer votre propre point d'ancrage dans la page où vous le souhaitez, ainsi:avant et
après la ligne à laquelle vous souhaitez «lier». Puis un lien de démarque comme:
n'importe où dans le document vous y emmène.
La
<div…/>
solution insère une division "factice" juste pour ajouter laid
propriété, ce qui peut potentiellement perturber la structure de la page, mais la<a name="abcde"/>
solution devrait être assez inoffensive.(PS: il peut être correct de placer l'ancre dans la ligne à laquelle vous souhaitez créer un lien, comme suit:
mais cela dépend de la façon dont Markdown traite cela. Je note, par exemple, que le formateur de réponses Stack Overflow en est satisfait!)
la source
## headers
.<div/>
plusieurs lignes ci-dessous seraient affectées. Au lieu de cela, je dois encapsuler le texte que je lie dans unediv
clause de balise complète et je dois RE-SPÉCIFIER le comportement à partir de zéro en utilisant du vrai HTML. Huer.<a name="head1"/>
par<a id="head1"/>
.Il s'agit peut-être d'un fil obsolète, mais pour créer des liens de document internes dans le démarquage dans Github, utilisez ...
(REMARQUE: #title en minuscules)
Une bonne question a été posée, j'ai donc modifié ma réponse;
Un lien interne peut être à toutes les tailles de titre à l' aide -
#
,##
,###
,####
j'ai créé un exemple rapide ci - dessous ... https://github.com/aogilvie/markdownLinkTestla source
(#dependencies-title)
indique à Github Markdown qu'il s'agit d'un lien interne. Le texte qui suit peut être de n'importe quelle taille de titre. Voici un exemple de test que j'ai fait ... https://github.com/aogilvie/markdownLinkTestoui, markdown le fait mais vous devez spécifier l'ancre de nom
<a name='xyx'>
.un exemple complet,
cela crée le lien
[tasks](#tasks)
plus loin dans le document, vous créez l'ancre nommée (quel que soit son nom).
notez que vous pouvez également l'enrouler autour de l'en-tête.
la source
Le manuel de pandoc explique comment créer un lien vers vos en-têtes, à l'aide de leur identifiant. Je n'ai pas vérifié la prise en charge de cela par d'autres analyseurs, mais il a été signalé que cela ne fonctionne pas sur github .
L'identifiant peut être spécifié manuellement:
ou vous pouvez utiliser l'identifiant généré automatiquement (dans ce cas
#my-heading-text
). Les deux sont expliqués en détail dans le manuel pandoc .REMARQUE : cela ne fonctionne que lors de la conversion en HTML , LaTex , ConTeXt , Textile ou AsciiDoc .
la source
Quelques éléments supplémentaires à garder à l'esprit si jamais vous avez envie de symboles dans les en-têtes vers lesquels vous souhaitez naviguer ...
... des choses comme
#
,;
,&
et:
de la position des chaînes sont généralement sont ignorées / rayées au lieu de échappé, et on peut également utiliser la citation des liens de style pour utiliser rapidement plus facile.Points bonus?
Juste au cas où quelqu'un se demanderait comment les images et autres liens d'une rubrique sont analysés en
id
...Avertissements
Le rendu MarkDown diffère d'un endroit à l'autre, donc des choses comme ...
... sur GitHub aura un élément avec
id
comme ...... où un assainissement à la vanille entraînerait une
id
de ...... ce qui signifie que l'écriture ou la compilation de fichiers MarkDown à partir de modèles nécessite soit de cibler une façon de slugifeing , soit d'ajouter des configurations et une logique de script pour les différentes façons intelligentes qui permettent de nettoyer le texte de l'en-tête.
la source
Solutions universelles
Cette question semble avoir une réponse différente selon l'implémentation du démarque.
En fait, la documentation officielle de Markdown est muette sur ce sujet.
Dans de tels cas, et si vous souhaitez une solution portable, vous pouvez utiliser HTML.
Avant tout en-tête, ou dans la même ligne d'en-tête, définissez un ID à l'aide d'une balise HTML.
Par exemple:
<a id="Chapter1"></a>
vous le verrez dans votre code mais pas dans le document rendu.
Exemple complet:
Voir un exemple complet (en ligne et modifiable) ici .
Pour tester cet exemple, vous devez ajouter un espace supplémentaire entre la liste de contenu et le premier chapitre ou réduire la hauteur de la fenêtre.
N'utilisez pas non plus d'espaces dans le nom des identifiants.
la source
## Chapter 1
a besoin d'une ligne ouverte au-dessus. (2). Le lien ne fonctionne pas ...<span id="Chapter1"><span>
Il n'y a pas une telle directive dans la spécification Markdown. Désolé.
la source
Gitlab utilise GitLab Flavored Markdown (GFM)
Ici, "tous les en-têtes rendus Markdown obtiennent automatiquement des ID"
On peut utiliser la souris pour:
copier et enregistrer le lien en utilisant le clic droit de la souris
Par exemple, dans le fichier README.md, j'ai un en-tête:
## series expansion formula of the Boettcher function
ce qui donne un lien:
Le préfixe peut être supprimé, le lien ici est simplement
ce qui signifie ici:
Maintenant, il peut être utilisé comme:
[series expansion formula of the Boettcher function](README.md#series-expansion-formula-of-the-boettcher-function)
On peut aussi le faire manuellement: remplacer les espaces par un trait d'union.
L'exemple en direct est ici
la source
En utilisant kramdown, il semble que cela fonctionne bien:
Je vois qu'il a été mentionné que
fonctionne efficacement, mais le premier pourrait être une bonne alternative pour les éléments autres que les en-têtes ou bien les en-têtes avec plusieurs mots.
la source
Depuis MultiMarkdown a été mentionné comme une option dans les commentaires.
Dans MultiMarkdown la syntaxe d'un lien interne est simple.
Pour tout titre du document, donnez simplement le nom du titre dans ce format
[heading][]
pour créer un lien interne.Pour en savoir plus, cliquez ici: MultiMarkdown-5 Cross-references .
la source
Encore plus de tours sur l'
<a name="">
astuce:la source
En plus des réponses ci-dessus,
Lors de la définition de l'option
number_sections: true
dans l'en-tête YAML:RMarkdown numérotera automatiquement vos sections.
Pour référencer ces sections numérotées automatiquement, mettez simplement ce qui suit dans votre fichier R Markdown:
[My Section]
Où
My Section
est le nom de la sectionCela semble fonctionner quel que soit le niveau de la section:
# My section
## My section
### My section
la source