ryn*_*nop 736 markdown github github-flavored-markdown
有没有办法创建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)
Run Code Online (Sandbox Code Playgroud)
这将允许我在同一分支内从一个.md链接到另一个.并且不必担心我所在的分支(避免必须执行包含github.com分支名称的绝对URL).
这是我的意思的一个工作示例:
这是预期的,因为此时起始URL位于分支中.现在我如何让它在存储库根目录下的README.md中获取当前分支?
更新:我针对此功能请求针对GitHub 打开了一个问题.
Von*_*onC 857
2013年1月30日更新,16个月后:
从今天开始,GitHub支持标记文件中的相对链接.
现在,您可以直接链接不同的文档文件,无论是在GitHub本身上查看文档,还是在本地查看,使用不同的标记渲染器.您想要链接定义的示例以及它们如何工作?这是给你的Markdown.
而不是绝对链接:Run Code Online (Sandbox Code Playgroud)[a link](https://github.com/user/repo/blob/branch/other_file.md)
...你可以使用相对链接:
Run Code Online (Sandbox Code Playgroud)[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上的标记问题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
Run Code Online (Sandbox Code Playgroud)
小智 77
例如,您有一个如下所示的回购:
project/
text.md
subpro/
subtext.md
subsubpro/
subsubtext.md
subsubpro2/
subsubtext2.md
Run Code Online (Sandbox Code Playgroud)
subtext.md
in 的相对链接text.md
可能如下所示:
[this subtext](subpro/subtext.md)
Run Code Online (Sandbox Code Playgroud)
subsubtext.md
in 的相对链接text.md
可能如下所示:
[this subsubtext](subpro/subsubpro/subsubtext.md)
Run Code Online (Sandbox Code Playgroud)
subtext.md
in 的相对链接subsubtext.md
可能如下所示:
[this subtext](../subtext.md)
Run Code Online (Sandbox Code Playgroud)
subsubtext2.md
in 的相对链接subsubtext.md
可能如下所示:
[this subsubtext2](../subsubpro2/subsubtext2.md)
Run Code Online (Sandbox Code Playgroud)
text.md
in 的相对链接subsubtext.md
可能如下所示:
[this text](../../text.md)
Run Code Online (Sandbox Code Playgroud)
woo*_*uwu 15
我发现适用于相关文件夹的内容:
[link text](subfolder/subsubfolder/relevantfolder/)
Run Code Online (Sandbox Code Playgroud)
其中相关文件夹是您尝试链接到的文件夹。文件夹名称后面需要有反斜杠。我尝试在路径中包含项目名称和树/主目录以及之前答案中建议的其他内容,这会导致不存在的页面错误。子文件夹是整个存储库项目文件夹中的一个文件夹。
因此,文件链接的形式如下:
[link text](subfolder/subsubfolder/relevantfolder/index.html)
Run Code Online (Sandbox Code Playgroud)
如果所需的文件不在任何文件夹或子文件夹中,则链接很简单:
[link text](README.md)
Run Code Online (Sandbox Code Playgroud)
例如,自述文件不位于任何子文件夹中,因此这可能是您用于自述文件的确切相对链接。
Gaj*_*jus 14
截至2013年1月31日,Github markdown 支持文件的相对链接.
[a relative link](markdown_file.md)
Run Code Online (Sandbox Code Playgroud)
但是,此评论主题中讨论了一些缺陷.
作为替代方案,您可以使用Gitdown构建存储库的完整URL,甚至使它们分支识别,例如
{"gitdown": "gitinfo", "name": "url"} // https://github.com/gajus/gitdown
{"gitdown": "gitinfo", "name": "branch"} // master
Run Code Online (Sandbox Code Playgroud)
Gitdown是一个GitHub降价预处理器.它简化了与维护GitHub存储库的文档页面相关的常见任务,例如生成目录,包括变量,生成URL以及在处理输入时获取有关存储库本身的信息.Gitdown与您的构建脚本无缝集成.
我是Gitdown图书馆的作者.
Ala*_*ars 13
GitHub可以通过最少的工作使这更好.这是一个解决方法.
我想你想要更像的东西
[Your Title](your-project-name/tree/master/your-subfolder)
Run Code Online (Sandbox Code Playgroud)
或者指向README本身
[README](your-project-name/blob/master/your-subfolder/README.md)
Run Code Online (Sandbox Code Playgroud)
祝好运
在文件中,当您想要创建指向与相同或基于链接.md
相关的任何相关文件的链接时:project folder
URL
在
.md
文件中添加在框中显示名称,然后在此框中[]
打开添加,之后它将自动获取您选择文件夹的所有现有文件夹名称形式,然后添加“/”它将显示内部或“文件夹”。这意味着它将自动获取路径,最后创建您的 URL。()
/
file
例子:
[Enter Showing Name](/users/4000266/heysushil)
Run Code Online (Sandbox Code Playgroud)
该行显示如下: 输入显示名称
URLs
到.md
文件遵循相同的过程,仅更改
()
框路径,URL
如下所示:
[HeySushil - YouTube](https://youtube.com/heysushil)
Run Code Online (Sandbox Code Playgroud)
这看起来像HeySushil - YouTube
/
注意:请记住,添加框后无需手动添加强制,()
它将自动获取所有现有的folders
和files
.
只是想添加这个,因为如果目标链接是名称中包含空格的目录,则上述解决方案都不起作用.如果目标链接是一个目录并且它有空间,那么即使用\来转义空间也不会在Github上呈现链接.只有适合我的解决方案是%20
用于每个空间.
例如:如果目录结构是这样的话
Top_dir
|-----README.md
|-----Cur_dir1
|----Dir A
|----README.md
|----Dir B
|----README.md
Run Code Online (Sandbox Code Playgroud)
要Dir A
在README.md中建立链接,Top_dir
可以执行以下操作:
[Dir 1](Cur_dir1/Dir%20A)
Run Code Online (Sandbox Code Playgroud)
您可以链接到文件,但不能链接到文件夹,请记住,Github将/blob/master/
在您的相对链接之前添加(文件夹缺少该部分,因此它们无法链接,HTML <a>
标签或Markdown链接也无法链接).
所以,如果我们有一个文件myrepo/src/Test.java
,它将有一个网址,如:
https://github.com/WesternGun/myrepo/blob/master/src/Test.java
Run Code Online (Sandbox Code Playgroud)
要在自述文件中链接它,我们可以使用:
[This is a link](src/Test.java)
Run Code Online (Sandbox Code Playgroud)
或:<a href="src/Test.java">This is a link</a>
.
(我猜,master
代表master
分支,当文件在另一个分支时它会有所不同.)
您可以使用repo根目录中的相对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>
Run Code Online (Sandbox Code Playgroud)
我不确定我是否在这里看到这个选项。您可以/folder
在存储库中创建一个并直接使用它:
[a relative link](/folder/myrelativefile.md)
Run Code Online (Sandbox Code Playgroud)
不需要 blob、树或存储库名称,它的工作方式就像一个魅力。
如果你想要一个到你在 GitHub 上的 wiki 页面的相对链接,使用这个:
Read here: [Some other wiki page](path/to/some-other-wiki-page)
Run Code Online (Sandbox Code Playgroud)
如果您想要链接到存储库中的文件,让我们说,要引用某个头文件,并且 wiki 页面位于 wiki 的根目录,请使用以下命令:
Read here: [myheader.h](../tree/master/path/to/myheader.h)
Run Code Online (Sandbox Code Playgroud)
最后一个的基本原理是跳过带有“../”的“/wiki”路径,并在不指定存储库名称的情况下转到存储库树中的主分支,这在将来可能会发生变化。
这个问题很老了,但它似乎仍然很重要,因为将readme.md的相对引用放到Github上的wiki页面并不容易.
我玩了一下,这个相对链接似乎工作得很好:
[Your wiki page](../../wiki/your-wiki-page)
这两个../
将删除/blob/master/
并使用您的基地作为起点.我没有尝试过其他存储库而不是Github(可能存在兼容性问题).
归档时间: |
|
查看次数: |
377225 次 |
最近记录: |