Lien relatif GitHub dans le fichier Markdown

y a-t-il un moyen de créer un point d'ancrage D'URL, <a> , un lien à partir d'un fichier Markdown, vers un autre fichier dans le même dépôt et la même branche (alias un lien relatif à la branche courante)?

par exemple, dans la branche principale j'ai un README.fichier md, que je voudrais faire quelque chose comme:

# My Project
is really really cool. My Project has a subdir named myLib, see below.

## myLib documentation
see documentation [here](myLib/README.md)

Cela me permettrait de créer un lien depuis un .md à l'autre dans la même direction et ne pas avoir à vous soucier de la branche, je suis dans (éviter avoir à faire une URL absolue qui inclut github.com nom de la succursale).

voici un exemple pratique de ce que je veux dire:

  1. GOTO http://github.com/rynop/testRel , link ne fonctionne pas.
  2. GOTO http://github.com/rynop/testRel/blob/master/README.md , link works.

ceci est attendu parce qu'à ce point L'URL de départ est dans la branche. Maintenant, comment puis-je l'obtenir pour récupérer la branche actuelle dans le README.md à la racine du dépôt?

Update : j'ai ouvert un issue contre GitHub pour cette requête de caractéristique.

559
demandé sur Peter Mortensen 2011-10-05 00:12:23

10 réponses

mise à jour 30 janvier 2013 , 16 mois plus tard:

GitHub Blog liens Relatifs au balisage des fichiers :

à partir d'aujourd'hui, GitHub supporte les liens relatifs dans les fichiers de markup .

Vous pouvez maintenant établir un lien direct entre différents fichiers de documentation, que vous consultiez la documentation sur GitHub ou non., ou localement, en utilisant un renderer markup différent.

Vous voulez des exemples de définitions et comment ils fonctionnent? Voici un peu de Markdown pour vous.

Au lieu d'un lien absolu:

[a link](https://github.com/user/repo/blob/branch/other_file.md)

...vous pouvez utiliser un lien relatif:

[a relative link](other_file.md)

et nous nous assurerons qu'il soit relié à user/repo/blob/branch/other_file.md .

si vous utilisez une solution comme [a workaround link](repo/blob/master/other_file.md) , vous aurez pour mettre à jour votre documentation pour utiliser la nouvelle syntaxe.

cela signifie aussi votre documentation peut maintenant être facilement autonome, sans toujours pointer vers GitHub .


mise à jour du 20 décembre 2011:

Le GitHub problème de marquage 84 est actuellement fermé par technoweenie , avec le commentaire:

nous avons essayé d'ajouter une étiquette <base> pour cela, mais cela cause des problèmes avec d'autres liens relatifs sur le site.


12 octobre 2011:

si vous regardez la source brute de la README.md de Markdown lui-même(!), les chemins relatifs ne semblent pas être supportés.

Vous trouverez des références comme:

[r2h]: http://github.com/github/markup/tree/master/lib/github/commands/rest2html
[r2hc]: http://github.com/github/markup/tree/master/lib/github/markups.rb#L13
656
répondu VonC 2016-03-11 20:05:50

par exemple, vous avez un repo comme le suivant:

project/
    text.md
    subpro/
       subtext.md
       subsubpro/
           subsubtext.md
       subsubpro2/
           subsubtext2.md

Le lien relatif à subtext.md dans text.md pourrait ressembler à ceci:

[this subtext](subpro/subtext.md)

Le lien relatif à subsubtext.md dans text.md pourrait ressembler à ceci:

[this subsubtext](subpro/subsubpro/subsubtext.md)

Le lien relatif à subtext.md dans subsubtext.md pourrait ressembler à ceci:

[this subtext](../subtext.md)

Le lien relatif à subsubtext2.md dans subsubtext.md pourrait ressembler à ceci:

[this subsubtext2](../subsubpro2/subsubtext2.md)

Le lien relatif à text.md dans subsubtext.md pourrait ressembler à ceci:

[this text](../../text.md)
38
répondu mathsyouth 2017-03-27 09:38:36

GitHub pourrait rendre cela beaucoup mieux avec un travail minimal. Ici, c'est un travail autour de.

je pense que vous voulez quelque chose de plus comme

[Your Title](your-project-name/tree/master/your-subfolder)

ou pour pointer vers le fichier lisez-moi

[README](your-project-name/blob/master/your-subfolder/README.md)

Bonne Chance

8
répondu Alan Viars 2012-08-31 16:16:44

en date du 31 janvier 2013 GitHub markdown supporte les liens relatifs aux fichiers .

[a relative link](markdown_file.md)

cependant, il ya quelques lacunes qui ont été discuté dans ce fil de commentaires .

comme alternative, vous pouvez utiliser Gitdown pour construire URLs complètes pour le dépôt et même les rendre branche conscient, par exemple

{"gitdown": "gitinfo", "name": "url"} // https://github.com/gajus/gitdown
{"gitdown": "gitinfo", "name": "branch"} // master

Gitdown est un préprocesseur de markdown GitHub. Il simplifie les tâches courantes associées à la maintenance d'une page de documentation pour un dépôt GitHub, par exemple générer une table des matières, y compris des variables, générer des URLs et obtenir des informations sur le dépôt lui-même au moment du traitement de l'entrée. Gitdown s'intègre parfaitement à vos scripts de construction.

je suis l'auteur de la bibliothèque Gitdown.

8
répondu Gajus 2017-05-23 12:34:47

vous pouvez utiliser les URLs relatives de la racine de votre repo avec <a href=""> . En supposant que votre pension s'appelle testRel , mettez ce qui suit dans testRel/README.md :

# My Project
is really really cool. My Project has a subdir named myLib, see below.

## myLib docs
see documentation:
    * <a href="testRel/myLib">myLib/</a>
    * <a href="testRel/myLib/README.md">myLib/README.md</a>
4
répondu Jon Chase 2012-08-16 18:37:39

cette question est assez ancienne, mais elle semble toujours importante, car il n'est pas facile de mettre des références relatives de readme.md to wiki pages on Github.

j'ai joué un peu autour et ce lien relatif semble fonctionner assez bien:

[Your wiki page](../../wiki/your-wiki-page)

les deux ../ supprimeront /blob/master/ et utiliseront votre base comme point de départ. Je n'ai pas essayé cela sur d'autres dépôts que Github, cependant (il peut y avoir des problèmes de compatibilité).

3
répondu Alex 2017-02-17 19:38:55

vous pouvez créer un lien vers le fichier, mais pas vers les dossiers, et gardez à l'esprit que Github ajoutera /blob/master/ avant votre lien relatif(et les dossiers n'ont pas cette partie de sorte qu'ils ne peuvent pas être liés, ni avec les balises HTML <a> ou lien Markdown).

donc, si nous avons un fichier dans myrepo/src/Test.java , il aura une url comme:

https://github.com/WesternGun/myrepo/blob/master/src/Test.java

et pour le relier dans le fichier readme, nous pouvons utiliser:

[This is a link](src/Test.java)

ou: <a href="src/Test.java">This is a link</a> .

(je suppose, master représente master de la branche, et il diffère lorsque le fichier est dans une autre branche.)

3
répondu WesternGun 2018-05-19 16:58:18

Je ne suis pas sûr de voir cette option ici. Vous pouvez simplement créer un /folder dans votre dépôt et l'utiliser directement:

[a relative link](/folder/myrelativefile.md)

aucun blob ou arbre ou nom de dépôt N'est nécessaire, et cela fonctionne comme un charme.

2
répondu Antonio Carlos Ribeiro 2016-04-09 14:28:25

voulait juste ajouter ceci parce qu'aucune des solutions ci-dessus ne fonctionnait si le lien cible est un répertoire avec des espaces dans son nom. Si le lien cible est un répertoire et qu'il y a de l'espace, alors même l'espace échappant avec \ ne rend pas le lien sur Github. Seule solution travaillée pour moi est d'utiliser %20 pour chaque espace.

par exemple: si la structure du répertoire est celle-ci

Top_dir
|-----README.md
|-----Cur_dir1
      |----Dir A
           |----README.md
      |----Dir B
           |----README.md
"151950920 De" faire lien Dir A dans README.md présent dans Top_dir vous pouvez faites ceci:

[Dir 1](Cur_dir1/Dir%20A)
2
répondu InvincibleWolf 2018-03-22 16:26:53

si vous voulez un lien relatif vers votre page wiki sur GitHub, utilisez ceci:

Read here: [Some other wiki page](path/to/some-other-wiki-page)

si vous voulez un lien vers un fichier dans le dépôt, disons, pour référencer un fichier d'en-tête, et que la page wiki est à la racine du wiki, utilisez ceci:

Read here: [myheader.h](../tree/master/path/to/myheader.h)

la raison pour la dernière est de sauter le chemin" /wiki "avec"../ ", et passer à la branche master dans l'arborescence du dépôt sans spécifier le nom du dépôt, qui peut changer dans avenir.

1
répondu elomage 2016-04-09 14:30:41