Ole*_*Pro 13 markdown github readme
(我需要它适用于任何叉子)
所以看起来它是提供到根目录中某个文件的链接的唯一方法:
the [Root](/README.md)
要么
the [Root](../README.md)
(例如,如果它位于/doc/README.md)
同时我可以在不引用文件的情况下引用任何文件夹
the [Doc](/doc)
但是,如果我尝试将链接放到根文件夹:
the [real root](/)
the [real root](../)
我会有这样的链接
https://github.com/UserName/RepoName/ blob/master
不像
https://github.com/UserName/RepoName/ blob/master / doc
指404
所以,如果我不想在根目录中引用README.md(我可能根本就没有)
Ole*_*Pro 18
经过一些研究,我发现了这样的解决方案:
[the real relative root of any fork](/../../)
它总是指向默认分支.对我来说没关系,所以这取决于你
PS
通过这样的技巧,您还可以访问以下功能:
[test](/../../tree/test)
- 链接到另一个分支
[doc/readme.md](/../../edit/master/doc/readme.md)
- 在编辑器中打开
[doc/readme.md](/../../delete/master/doc/readme.md)
- 要求删除文件
[doc/readme.md](/../../commits/master/doc/readme.md)
- 历史
[doc/readme.md](/../../blame/master/doc/readme.md)
- 责备模式
[doc/readme.md](/../../raw/master/doc/readme.md)
- 行模式(将重定向)
[doc/](/../../new/master/doc/)
- 要求创建新文件
[doc/](/../../upload/master/doc/)
- 要求上传文件
[find](/../../find/test)
- 找到文件
您可以直接链接到文件 ( ../README.md
),也可以简单地使用完整的绝对 URL 直接链接到存储库根目录:https://github.com/UserName/RepoName
在 GitHub 上使用相对链接效果不太好。请注意以下两个 URL 之间的区别:
https://github.com/UserName/RepoName/tree/master/somedir
https://github.com/UserName/RepoName/blob/master/somedir/somefile
Run Code Online (Sandbox Code Playgroud)
请注意,第一个指向目录,第二个指向文件。然而,在“RepoName”之后,我们可以选择其中之一tree
(对于目录)或blob
文件。因此,两者之间的相对联系将无法正常发挥作用。在 GitHub 上,您不能使用相对链接来链接文件和目录。但是,您可以在两个文件之间链接(因为两个 URL 都包含blob
)。因此,如果您想从somefile
回链接到README.md
根目录,您可以这样做:
[README](../README.md)
Run Code Online (Sandbox Code Playgroud)
这将为您提供 URL:
https://github.com/UserName/RepoName/blob/master/somedir/../README.md
Run Code Online (Sandbox Code Playgroud)
这将被标准化为
https://github.com/UserName/RepoName/blob/master/README.md
Run Code Online (Sandbox Code Playgroud)
但是,如果您只想指向存储库的根目录(或任何其他目录),那么最好使用完整的 URL。毕竟,如果有人下载了您的存储库并在本地查看源代码,则存储库根目录的相对 URL 将与在 GitHub 上查看文件时不同。在这种情况下,您可能无论如何都想将他们指向 GitHub。因此,您应该使用:
[root](https://github.com/UserName/RepoName)
Run Code Online (Sandbox Code Playgroud)
这样做的另一个优点是,如果您的文档在其他地方发布(可能是文档托管服务),该链接仍将指向 GitHub 存储库,而不是托管服务上的某个随机页面。毕竟,项目根目录下的自述文件不太可能包含docs/
在所述托管服务上的目录内容中。
也许这有助于理解 GitHub 的 URL 方案是如何工作的。我说“大概”是因为我没有内部知识,只是对这些类型的系统通常如何设计的一般了解。
GitHub 不提供平面文件。相反,他们的服务器将 URL 分开,并使用各个部分返回正确的响应。URL 结构看起来像这样:
https://github.com/<username>/<repository name>/<resource type>/<branch>/<resource path>
Run Code Online (Sandbox Code Playgroud)
、username
、和是 GitHub 相当任意且唯一的方式,以确保它们从正确的位置提取信息repository name
。resource type
branch
问题resource type
在于他们可能不会从工作树中提取文件。相反,他们通过较低级别直接从存储库本身提取文件/目录列表。在这种情况下,获取文件与获取目录列表有很大不同,并且需要不同的代码路径。因此,您不能请求带有resource path
指向树(目录)的 blob(文件),反之亦然。服务器感到困惑并返回错误。
关键是 GitHub 的服务器运行的规则略有不同。resource path
您可以使用相对 URL 在URL 的部分内移动,但是一旦您更改了 URL 的resource type
部分resource path
,那么如果您不更改resource type
URL 的部分,那么 GitHub 的整个方案就会被破坏。然而,浏览器(或 HTML 或 Markdown)对此一无所知,并且相对 URL 无法弥补这一点。因此,除非您了解所有微妙之处,否则您无法可靠地使用相对 URL 在 GitHub 存储库中移动。有时使用绝对链接更好。
归档时间: |
|
查看次数: |
7335 次 |
最近记录: |