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)。
这里是我的意思的一个工作例子:
- GOTO http://github.com/rynop/testRel ,链接不起作用。
- 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.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)
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)