Markdown文件中的GitHub相对链接

有没有一种方法可以创build一个URL锚点,从一个Markdown文件中链接到同一个存储库和分支中的另一个文件(即相对于当前分支的链接)?

例如,在主分支中,我有一个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链接到另一个分支,而不必担心我在哪个分支(避免必须做一个包含github.com分支名称的绝对URL)。

这里是我的意思的一个工作例子:

  1. GOTO http://github.com/rynop/testRel ,链接不起作用。
  2. GOTO http://github.com/rynop/testRel/blob/master/README.md ,链接工程。

这是预料之中的,因为在这一点上起始URL是在分支。 现在我该如何获取它在存储库根目录下的README.md中的当前分支?

更新 :我打开了一个针对此function请求的GitHub的问题 。

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)[a workaround link](repo/blob/master/other_file.md) ,则必须更新文档以使用新的语法。

这也意味着您的文档现在可以轻松地独立存在,而不必总是指向GitHub


更新2011年12月20日:

GitHub标记问题84目前由technoweenieclosures,评论:

我们尝试为此添加一个<base>标记,但是会导致网站上的其他相关链接出现问题。


2011年10月12日:

如果您查看Markdown本身(!) README.md原始来源,则相对path似乎不受支持。
你会发现像这样的参考:

 [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 

例如,您有一个类似以下的回购:

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

subtext.md中的text.md的相关链接可能如下所示:

 [this subtext](subpro/subtext.md) 

subsubtext.mdtext.md的相关链接可能如下所示:

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

subtext.md中的subsubtext.md的相对链接可能如下所示:

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

subsubtext2.mdsubsubtext.md的相对链接可能如下所示:

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

text.mdsubsubtext.md的相对链接可能如下所示:

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

GitHub可以用最less的工作使这个好得多。 这是一个解决方法。

我想你想要更多的东西

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

或指向自述文件本身

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

祝你好运

截至2013年1月31日,Github markdown 支持文件的相关链接 。

 [a relative link](markdown_file.md) 

但是, 这个评论主题已经讨论了一些不足之处。

作为替代scheme,您可以使用Gitdown来构build完整的URL到存储库 ,甚至使它们分支感知,例如

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

Gitdown是一个GitHub降价预处理器。 它简化了与维护GitHub存储库的文档页面相关的常见任务,例如生成目录,包括variables,生成URL并在处理input时获取关于存储库本身的信息。 Gitdown与您的build筑脚本无缝集成。

我是Gitdown库的作者。

您可以使用<a href="">从您的回购的根目录的相对URL。 假设您的repo命名为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> 

我不确定在这里看到这个选项。 你可以在你的仓库中创build一个/folder并直接使用它:

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

没有blob或树或存储库的名称是必要的,它的作品就像一个魅力。

如果你想在GitHub上有一个你的wiki页面的相对链接,使用这个:

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

如果你想要一个到存储库中的文件的链接,让我们说,引用一些头文件,维基页面是在维基的根,使用这个:

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

最后一个的基本原理是用“../”跳过“/ wiki”path,然后转到存储库树中的master分支,而不指定存储库名称,将来可能会更改。

这个问题是相当古老的,但它似乎仍然很重要,因为从readme.md到Github上的wiki页面的相关引用并不容易。

我玩了一下,这个相对的链接似乎工作得很好:

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

这两个../将删除/blob/master/并使用您的基地作为起点。 我还没有比Github在其他软件库上尝试过,但(可能会有兼容性问题)。

只是想添加这个,因为如果目标链接是名称中有空格的目录,上述解决scheme都不起作用。 如果目标链接是一个目录,并且它有空格,那么甚至用\转义空格也不会在Github上显示链接。 唯一的解决scheme是为每个空间使用%20

例如:如果目录结构是这样的

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

要在Top_dir中的Top_dir中build立Dir A链接,你可以这样做:

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