1158

<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)

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

4

12 に答える 12

1355

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

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

本日より、GitHub はマークアップ ファイル内の相対リンクをサポートします
GitHub 自体でドキュメントを表示するか、別のマークアップ レンダラーを使用してローカルでドキュメントを表示するかに関係なく、異なるドキュメント ファイル間で直接リンクできるようになりました。

リンク定義とその仕組みの例が必要ですか? ここにマークダウンがあります。
絶対リンクの代わりに:

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

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

[a relative link](other_file.md)
[a relative link](path%20with%20spaces/other_file.md)

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

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

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

Marcono1234がコメントに追加

また便利: リンクが で始まる場合/、リポジトリのルートに相対的です (マークダウン ファイルがサブディレクトリにネストされているかどうかに関係なく)。


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

InvisibleWolfanswerに記載されているように、ターゲット リンクがディレクトリでスペースがある場合は%20、スペースごとに使用する必要があります。

于 2011-10-05T08:39:27.347 に答える
28

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

もっと似たようなものが欲しいと思います

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

またはREADME自体を指す

[README](your-project-name/blob/master/your-subfolder/README.md)
于 2012-08-31T16:16:44.817 に答える
25

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 ライブラリの作成者です。

于 2014-11-22T17:27:47.130 に答える
16

ターゲットリンクが名前にスペースを含むディレクトリである場合、上記のソリューションのいずれも機能しないため、これを追加したかっただけです。ターゲット リンクがディレクトリで、スペースがある場合、\ でスペースをエスケープしても、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)
于 2017-09-13T05:46:37.473 に答える
8

でリポジトリのルートからの相対 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>
于 2012-08-16T18:37:39.003 に答える
5

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

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

ブロブ、ツリー、またはリポジトリ名は必要なく、魅力的に機能します。

于 2013-10-22T04:01:18.383 に答える
5

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」パスを「../」でスキップし、将来変更される可能性があるリポジトリ名を指定せずにリポジトリ ツリーのマスター ブランチに移動することです。

于 2016-01-05T17:40:29.537 に答える