webentwicklung-frage-antwort-db.com.de

GitHub relativer Link in Markdown-Datei

Gibt es eine Möglichkeit, einen URL-Anker, <a>, aus einer Markdown-Datei zu einer anderen Datei im selben Repository und Zweig (auch als Link relativ zum aktuellen Zweig bezeichnet) zu erstellen?

Zum Beispiel habe ich in der Hauptniederlassung eine README.md-Datei, die ich gerne wie folgt machen würde:

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

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

Auf diese Weise kann ich innerhalb eines Zweigs von einer .md-Datei zu einer anderen verknüpfen und muss mich nicht darum kümmern, in welchem ​​Zweig ich mich befinde (ich muss keine absolute URL eingeben, die den Namen des Zweigs von github.com enthält).

Hier ist ein funktionierendes Beispiel für das, was ich meine:

  1. GOTO http://github.com/rynop/testRel , Link funktioniert nicht.
  2. GOTO http://github.com/rynop/testRel/blob/master/README.md , Link funktioniert.

Dies wird erwartet, da sich zu diesem Zeitpunkt die Start-URL in der Verzweigung befindet. Wie kann ich nun den aktuellen Zweig in der README.md im Stammverzeichnis des Repositorys abrufen?

Update : Ich habe für diese Feature-Anfrage ein Problem gegen GitHub geöffnet.

693
rynop

Update 30. Januar 2013 , 16 Monate später:

GitHub Blog Post Relative Links in Markup-Dateien :

Ab heute unterstützt GitHub relative Links in Markup-Dateien .
Jetzt können Sie direkt zwischen verschiedenen Dokumentationsdateien verknüpfen, unabhängig davon, ob Sie die Dokumentation auf GitHub selbst oder lokal mit einem anderen Markup-Renderer anzeigen.

Sie möchten Beispiele für Linkdefinitionen und deren Funktionsweise? Hier ist ein Markdown für dich.
Anstelle eines absoluten Links:

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

... können Sie einen relativen Link verwenden:

[a relative link](other_file.md)

und wir werden sicherstellen, dass es mit user/repo/blob/branch/other_file.md verknüpft wird.

Wenn Sie eine Problemumgehung wie [a workaround link](repo/blob/master/other_file.md) verwendet haben, müssen Sie Ihre Dokumentation aktualisieren, um die neue Syntax zu verwenden.

Dies bedeutet auch, dass Ihre Dokumentation nun problemlos für sich alleine stehen kann, ohne immer auf GitHub zu verweisen.


Update 20. Dezember 2011:

Die GitHub-Markup-Ausgabe 84 wird derzeit von technoweenie geschlossen, mit dem Kommentar:

Wir haben versucht, hierfür ein <base> -Tag hinzuzufügen, aber dies führt zu Problemen mit anderen relativen Links auf der Site.


12. Oktober 2011:

Wenn Sie sich die nformatierte Quelle des README.md von Markdown selbst (!) Ansehen, werden relative Pfade nicht verwendet. Es scheint nicht unterstützt zu werden.
Hier finden Sie Referenzen wie:

[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
805
VonC

Zum Beispiel haben Sie ein Repo wie das folgende:

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

Der relative Link zu subtext.md in text.md könnte folgendermaßen aussehen:

[this subtext](subpro/subtext.md)

Der relative Link zu subsubtext.md in text.md könnte folgendermaßen aussehen:

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

Der relative Link zu subtext.md in subsubtext.md könnte folgendermaßen aussehen:

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

Der relative Link zu subsubtext2.md in subsubtext.md könnte folgendermaßen aussehen:

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

Der relative Link zu text.md in subsubtext.md könnte folgendermaßen aussehen:

[this text](../../text.md)
69
mathsyouth

Stand: 31. Januar 2013 Github markdown nterstützt relative Links zu Dateien .

[a relative link](markdown_file.md)

Es gibt jedoch einige Mängel, die in diesem Kommentarthread erörtert .

Alternativ können Sie Gitdown verwenden, um vollständige URLs zum Repository zu erstellen, und sie sogar auf eine Verzweigung aufmerksam machen, z.

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

Gitdown ist ein GitHub-Markdown-Präprozessor. Es rationalisiert allgemeine Aufgaben im Zusammenhang mit der Pflege einer Dokumentationsseite für ein GitHub-Repository, z. Generieren des Inhaltsverzeichnisses, einschließlich Variablen, Generieren von URLs und Abrufen von Informationen zum Repository selbst zum Zeitpunkt der Verarbeitung der Eingabe. Gitdown lässt sich nahtlos in Ihre Erstellungsskripte integrieren.

Ich bin der Autor der Gitdown-Bibliothek.

14
Gajus

GitHub könnte dies mit minimaler Arbeit viel besser machen. Hier ist ein Workaround.

Ich denke du willst etwas ähnlicheres

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

oder auf das README selbst verweisen

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

Viel Glück

12
Alan Viars

Ich wollte dies nur hinzufügen, weil keine der oben genannten Lösungen funktioniert hat, wenn der Ziel-Link ein Verzeichnis mit Leerzeichen im Namen ist. Wenn der Ziel-Link ein Verzeichnis ist und über Speicherplatz verfügt, wird der Link auf Github nicht gerendert, selbst wenn der Speicherplatz mit\umgangen wird. Die einzige Lösung, die für mich funktioniert hat, ist die Verwendung von %20 für jedes Leerzeichen.

z. B .: Wenn dies die Verzeichnisstruktur ist

Top_dir
|-----README.md
|-----Cur_dir1
      |----Dir A
           |----README.md
      |----Dir B
           |----README.md

So stellen Sie eine Verknüpfung zu Dir A in README.md her, die in Top_dir vorhanden ist:

[Dir 1](Cur_dir1/Dir%20A)
7
InvincibleWolf

Sie können auf eine Datei verlinken, aber nicht auf Ordner. Beachten Sie, dass Github /blob/master/ hinzufügt, bevor Sie einen relativen Link erstellen (und in Ordnern fehlt dieser Teil, sodass sie weder mit HTML <a> -Tags verknüpft werden können oder Markdown-Link).

Wenn wir also eine Datei in myrepo/src/Test.Java haben, hat sie eine URL wie:

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

Und um es in der Readme-Datei zu verlinken, können wir Folgendes verwenden:

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

oder: <a href="src/Test.Java">This is a link</a>.

(Ich denke, master repräsentiert den Zweig master und unterscheidet sich, wenn sich die Datei in einem anderen Zweig befindet.)

7
WesternGun

Sie können relative URLs aus dem Stammverzeichnis Ihres Repos mit <a href=""> verwenden. Angenommen, Ihr Repo heißt testRel, schreiben Sie Folgendes in 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>
6
Jon Chase

Diese Frage ist ziemlich alt, aber sie scheint immer noch wichtig zu sein, da es nicht einfach ist, relative Verweise von readme.md auf Wiki-Seiten auf Github zu setzen.

Ich habe ein bisschen rumgespielt und dieser relative Link scheint ziemlich gut zu funktionieren:

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

Die beiden ../ entfernen /blob/master/ und verwenden Ihre Basis als Ausgangspunkt. Ich habe dies jedoch nicht in anderen Repositorys als Github versucht (möglicherweise treten Kompatibilitätsprobleme auf).

5
Alex

Ich bin nicht sicher, ob ich diese Option hier sehe. Sie können einfach einen /folder in Ihrem Repository erstellen und direkt verwenden:

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

Es wird kein Blob-, Tree- oder Repository-Name benötigt und es funktioniert wie ein Zauber.

Wenn du einen relativen Link zu deiner Wiki-Seite auf GitHub haben willst, benutze diesen:

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

Wenn Sie einen Link zu einer Datei im Repository wünschen, sagen wir, um auf eine Header-Datei zu verweisen, und die Wiki-Seite sich im Stammverzeichnis des Wikis befindet, gehen Sie folgendermaßen vor:

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

Der letzte Grund ist, den Pfad "/ wiki" mit "../" zu überspringen und zum Hauptzweig in der Repository-Struktur zu wechseln, ohne den Namen des Repositorys anzugeben, der sich in Zukunft möglicherweise ändert.

2
elomage