有没有办法创建URL锚点<a>
,从Markdown文件中链接到同一存储库和分支中的另一个文件(也就是相对于当前分支的链接)?
例如,在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链接到另一个。不必担心我所在的分支(避免必须执行包含github.com分支名称的绝对URL)。 / p>
这是我的意思的一个工作示例:
这是预期的,因为此时起始URL位于分支中。现在我如何让它在存储库根目录下的README.md中获取当前分支?
更新:我针对此功能请求针对GitHub打开了issue。
答案 0 :(得分:768)
更新 2013年1月30日,16个月后:
从今天开始, 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 markup issue 84目前由technoweenie关闭,评论为:
我们尝试为此添加
<base>
标记,但这会导致网站上其他相关链接出现问题。
2011年10月12日:
如果你看一下Markdown本身的 raw source of the 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
答案 1 :(得分:61)
例如,您有一个如下所示的回购:
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)
答案 2 :(得分:13)
截至2013年1月31日Github markdown supports relative links to files。
[a relative link](markdown_file.md)
但是,有一些不足之处discussed in this comment thread。
作为替代方案,您可以使用Gitdown构建full URLs to the repository,甚至让它们分支识别,例如。
{"gitdown": "gitinfo", "name": "url"} // https://github.com/gajus/gitdown
{"gitdown": "gitinfo", "name": "branch"} // master
Gitdown是一个GitHub降价预处理器。它简化了与维护GitHub存储库的文档页面相关的常见任务,例如:生成目录,包括变量,生成URL以及在处理输入时获取有关存储库本身的信息。 Gitdown与您的构建脚本无缝集成。
我是Gitdown图书馆的作者。
答案 3 :(得分:12)
GitHub可以通过最少的工作使这更好。这是一个解决方法。
我想你想要更像
的东西[Your Title](your-project-name/tree/master/your-subfolder)
或指向README本身
[README](your-project-name/blob/master/your-subfolder/README.md)
祝你好运
答案 4 :(得分:6)
您可以使用<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>
答案 5 :(得分:6)
只是想添加这个,因为如果目标链接是带有空格的目录,则上述解决方案都不起作用。如果目标链接是一个目录并且它有空间,那么甚至可以使用\来解除空间,并且不会在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 :(得分:6)
您可以链接到文件,但不能链接到文件夹,请记住,Github会在您的相对链接之前添加/blob/master/
(并且文件夹缺少该部分,因此它们无法链接,也不能与HTML {{1标签或Markdown链接)。
因此,如果我们在<a>
中有一个文件,则会有一个网址:
myrepo/src/Test.java
要在自述文件中链接它,我们可以使用:
https://github.com/WesternGun/myrepo/blob/master/src/Test.java
或:[This is a link](src/Test.java)
。
(我猜,<a href="src/Test.java">This is a link</a>
表示master
分支,当文件位于另一个分支时,它会有所不同。)
答案 7 :(得分:5)
这个问题很老了,但它似乎仍然很重要,因为将readme.md的相对引用放到Github上的wiki页面并不容易。
我玩了一下,这个相对链接看起来效果很好:
[Your wiki page](../../wiki/your-wiki-page)
两个../
将移除/blob/master/
并以您的基地为起点。我没有在Github上的其他存储库上试过这个(可能存在兼容性问题)。
答案 8 :(得分:4)
我不确定我是否在这里看到此选项。您可以在存储库中创建/folder
并直接使用它:
[a relative link](/folder/myrelativefile.md)
不需要blob或树或存储库名称,它就像魅力一样。
答案 9 :(得分:2)
如果你想在GitHub上找到你的wiki页面的相对链接,请使用:
Meteor.users.update(Meteor.userId(), {...})
如果你想要链接到存储库中的文件,让我们说,引用一些头文件,并且维基页面位于维基的根目录,请使用:
Meteor.users.findOne(author._id)
最后一个的基本原理是跳过带有“../”的“/ wiki”路径,然后转到存储库树中的主分支,而不指定存储库名称,将来可能会更改。
答案 10 :(得分:0)
只需遵循以下格式。
[TEXT TO SHOW](actual URL to navigate)