web-dev-qa-db-ja.com

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

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

たとえば、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)

これにより、同じブランチ内である.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に対して issue を開いた。

653
rynop

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

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

今日から GitHubはマークアップファイル内の相対リンクをサポートしています
GitHub自体でドキュメントを表示しているかどうかにかかわらず、異なるマークアップレンダラーを使用してローカルでドキュメントを表示しているかどうかにかかわらず、さまざまなドキュメントファイルを直接リンクできます。

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

[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日:

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

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

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

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

subtext.md内のtext.mdへの相対リンクは、以下のようになります。

[this subtext](subpro/subtext.md)

subsubtext.md内のtext.mdへの相対リンクは、以下のようになります。

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

subtext.md内のsubsubtext.mdへの相対リンクは、以下のようになります。

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

subsubtext2.md内のsubsubtext.mdへの相対リンクは、以下のようになります。

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

text.md内のsubsubtext.mdへの相対リンクは、以下のようになります。

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

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のマークダウンプリプロセッサです。それはGitHubリポジトリのためのドキュメンテーションページを維持することに関連した一般的なタスクを合理化します。入力を処理するときに、変数を含む目次の生成、URLの生成、およびリポジトリ自体に関する情報の取得。 Gitdownはあなたの構築スクリプトとシームレスに統合します。

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

13
Gajus

GitHubは最小限の作業でこれをずっと良くすることができます。これが回避策です。

もっと好きなものがほしいと思います

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

またはREADME自体を指す

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

がんばろう

12
Alan Viars

<a href="">を使ってリポジトリのルートからの相対URLを使うことができます。リポジトリの名前が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>
6
Jon Chase

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

例:ディレクトリ構造がこれなら

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

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

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

ファイルにはリンクできますが、フォルダにはリンクできません。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>

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

6
WesternGun

この質問はかなり古くから行われていますが、readme.mdからGithubのwikiページへの相対参照を入れるのは容易ではないため、依然として重要です。

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

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

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

5
Alex

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

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

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

GitHubのウィキページへの相対リンクが必要な場合は、これを使用してください。

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"パスを "../"でスキップし、リポジトリ名を指定せずにリポジトリツリーのmasterブランチに行くことです。これは将来変更されるかもしれません。

2
elomage