MarkdownファイルのGitHub相対リンク


831

<a>Markdownファイル内から、同じリポジトリとブランチ内の別のファイルへのURLアンカー、リンク(別名、現在のブランチに対するリンク)を作成する方法はありますか?

たとえば、masterブランチにはREADME.mdファイルがあります。これを次のようにします。

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

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

これにより、同じブランチ内の1つの.mdから別の.mdにリンクでき、どのブランチにいるかを心配する必要がなくなります(github.comブランチ名を含む絶対URLを実行する必要がないようにします)。

ここに私が意味することの実際の例があります:

  1. GOTO http://github.com/rynop/testRel、リンクが機能しない。
  2. GOTO http://github.com/rynop/testRel/blob/master/README.md、リンクは機能します。

この時点では、開始URLがブランチにあるため、これは予想されます。リポジトリのルートにあるREADME.mdの現在のブランチを取得する方法を教えてください。

更新:この機能リクエストについて、GitHubに対する問題を公​​開しました。


21
最後に、相対リンクがサポートされるようになりました!私は私の答えを更新しました:)
VonC 2013年

これは、別の.mdを開こうとしたり、別のWebのhttp / sやhtml、さらには.jpg、.png、またはjpegページに移動したりする場合に役立つ情報ですが、Markdownで.pdfを開くにはどうすればよいですか。.mdファイルと同じディレクトリにある.pdfを開くための正しい構文を取得できません。誰かが.pdfを開くのを手伝ってくれる?
エルトン

この質問にはいくつかの解決策があります。stackoverflow.com
Oleg Pro

回答:


970

2013年1月30日更新、16か月後:

マークアップファイル内の GitHubブログ投稿の相対リンク

本日より、GitHubはマークアップファイル内の相対リンクをサポートします
これで、GitHub自体でドキュメントを表示する場合でも、別のマークアップレンダラーを使用してローカルで表示する場合でも、さまざまなドキュメントファイルを直接リンクできます。

リンク定義の例とそれらがどのように機能するかを知りたいですか?ここにあなたのためのいくつかのMarkdownがあります。
絶対リンクの代わりに:

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

…相対リンクを使用できます。

[a relative link](other_file.md)

にリンクされていることを確認しますuser/repo/blob/branch/other_file.md

のような回避策[a workaround link](repo/blob/master/other_file.md)を使用していた場合は、新しい構文を使用するようにドキュメントを更新する必要があります。

これはまた、常にGitHubを指さなくて、ドキュメントが簡単に独立できることを意味します


2011年12月20日更新:

GitHubのマークアップ問題84は、現在で閉じられているtechnoweenieコメントで、:

<base>このためにタグを追加しようとしましたが、サイト上の他の相対リンクで問題が発生します。


2011年10月12日:

あなたが見れば生のソースREADME.mdのMarkdownそのもの(!)の、相対パスはサポートされていないようです。
次のような参照があります。

[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

1
うーん..相対URLを作成できます([link] someDir / README.mdを試してください。アンカーが作成されます)-myRepo / tree / <$ curBranch> /pathToMd.mdのようなgithubブランチ対応の相対リンクが必要です。私はおそらくgithub.comで機能リクエストをオープンするでしょう
rynop

1
いいえ。github.com/rynop/testRelの完全な例を参照してください。ブランチを指定して相対リンクを作成することもできますが、そもそも私がしようとしていることの目的に反します。あるサブディレクトリの.mdから別のサブディレクトリにリンクしている場合、相対リンクは問題なく処理されると思います。リポジトリのルートにある.mdからリンクすると問題が発生します。
rynop

2
関連:あるWikiページから別のWikiページへのリンクに使用[Welcome](./wiki/Hello)できます。Helloは同じリポジトリ内の別のWikiページです。
ウェインブロス

1
@wizlbパスなしで試した[Welcome](Hello)ところ、Helloが同じリポジトリの別のWikiページである場合にも機能します。
Mottie 2013年

2
これは通常のWikiページで機能しますが、_Sidebar.mdファイルを追加した場合、Wikiホームページでのリンクの解決方法は、他のページとは異なります。私はここですべてを運なしで試しました。これまでに思いついた唯一のことは、2つの異なる_Sidebar.mdファイルを使用して、ファイルをサブディレクトリに整理することです。
NightOwl888

93

たとえば、次のようなリポジトリがあります。

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

subtext.mdin への相対リンクは次のtext.mdようになります。

[this subtext](subpro/subtext.md)

subsubtext.mdin への相対リンクは次のtext.mdようになります。

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

subtext.mdin への相対リンクは次のsubsubtext.mdようになります。

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

subsubtext2.mdin への相対リンクは次のsubsubtext.mdようになります。

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

text.mdin への相対リンクは次のsubsubtext.mdようになります。

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

1
私が見つけた1つのことは、リンクは大文字と小文字が区別されることで、私は予期していませんでした。
Andy Wiesendanger 2017

ディレクトリにスペースがある場合はどうなりますか?
リシャフ

16

2013年1月31日現在、Githubマークダウンはファイルへの相対リンクをサポートしています

[a relative link](markdown_file.md)

ただし、このコメントスレッドで説明されているいくつかの欠陥があります

別の方法として、Gitdownを使用してリポジトリへの完全なURLを作成し、ブランチに対応させることもできます。

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

GitdownはGitHubマークダウンプリプロセッサです。変数を含む目次の生成、URLの生成、入力の処理時のリポジトリ自体に関する情報の取得など、GitHubリポジトリのドキュメントページの管理に関連する一般的なタスクを合理化します。Gitdownはビルドスクリプトとシームレスに統合します。

私はGitdownライブラリの作者です。


1
@Thomasこれはスタックオーバーフローの利用規約の一部ですか?はいの場合は、リンクを共有してください。そのような要件の背後にある動機を知りたいのですが。
Gajus 2014年

5
「適切で適切な回答を投稿してください。すべてではないが一部が製品やWebサイトに関するものである場合は問題ありません。ただし、回答への所属を開示する必要があります。」stackoverflow.com/help/behavior
Thomas

1
これは、スタックオーバーフローがあまり避けようとしているメタ情報、つまり、主題外の議論を促進していると考えられます。
Gajus 2014年

14

GitHubは、最小限の作業でこれを大幅に改善できます。これが回避策です。

あなたはもっと何かが欲しいと思う

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

またはREADME自体を指す

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

幸運を


3
うん、これは今日私がやっていることです。ブランチ情報をリンクに焼きたくありません。それは相対的である必要があります。
rynop 2012

8

ターゲットリンクが名前にスペースが含まれるディレクトリである場合、上記のソリューションはどれも機能しないため、これを追加したかっただけです。ターゲットリンクがディレクトリであり、スペースがある場合、\でスペースをエスケープしても、リンクはGithubにレンダリングされません。私のために働いた唯一の解決策は%20、各スペースに使用しています。

例:ディレクトリ構造がこれである場合

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

Dir AREADME.mdに存在するリンクを作成するには、次のようにしTop_dirます。

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

8

ファイルにはリンクできますが、フォルダーにはリンクできません。また、Githubは/blob/master/相対リンクの前に追加することに注意してください(フォルダーにはその部分がないため、HTML <a>タグやMarkdownリンクを使用してリンクすることはできません)。

したがって、にファイルがある場合、次のmyrepo/src/Test.javaようなURLになります。

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

そして、それをreadmeファイルにリンクするには、以下を使用できます。

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

または:<a href="src/Test.java">This is a link</a>

(おそらく、ブランチをmaster表しmaster、ファイルが別のブランチにある場合は異なります。)


7

を使用して、リポジトリのルートからの相対URLを使用できます<a href="">。あなたのリポジトリがと名付けられていると仮定してtestRel、以下を入れてください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>

3
これは無効なmd構文
astroanu

6

この質問はかなり古いですが、readme.mdからGithubのWikiページへの相対参照を配置するのは簡単ではないため、依然として重要なようです。

私は少し遊んでみましたが、この相対リンクはかなりうまくいくようです:

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

2つ..//blob/master/、ベースを削除し、開始点として使用します。ただし、Github以外のリポジトリではこれを試していません(互換性の問題がある可能性があります)。


4

このオプションがここにあるかどうかわかりません。/folderリポジトリにを作成して直接使用できます。

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

ブロブ、ツリー、リポジトリ名は不要で、魅力のように機能します。


1
それは当たり前のことだと思うかもしれませんが、私にはうまくいきません。
Kmeixner

4

GitHub上のwikiページへの相対リンクが必要な場合は、次のようにします。

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

リポジトリ内のファイルへのリンクが必要な場合、ヘッダーファイルを参照し、WikiページがWikiのルートにある場合は、次のように使用します。

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

最後の理由は、「/ wiki」パスを「../」でスキップし、リポジトリ名を指定せずにリポジトリツリーのマスターブランチに移動することです。これは将来変更される可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.