Gitlab Markdown 支持对存储库结构中文件的引用,例如:
[README](doc/README)
或者
[README](doc/README#L13)
但是有没有办法引用这些文件中的文件和行,但是来自给定的提交,至少在 Wiki 中?
也许是这样的:
[README](1ab3fa71:doc/README#L13)
或使用文件哈希 ID,如:
[README](9a27b101#L13)
根据Gitlab 的文档(v11.5),官方不支持使用从 wiki 到存储库的相对链接(或者反过来):
注意:相对链接不允许引用 wiki 页面中的项目文件或项目文件中的 wiki 页面。这样做的原因是,在 GitLab 中,wiki 始终是一个单独的 Git 存储库。例如,当链接位于 wiki 降价文件中时,我是一个参考样式链接将指向 wikis/style 的链接。
但是,有一种语法目前似乎有效:
[[README|/../blob/1ab3fa71/doc/README#L13]]
Run Code Online (Sandbox Code Playgroud)
但请注意:同一段落的所有文本都将丢失!
我通过这样的措辞来解决这个问题,至少在Gitlab CE v11.3.0中呈现出预期的效果:
Here you see xyz:
* [[README|/../blob/1ab3fa71/doc/README#L13]]
Run Code Online (Sandbox Code Playgroud)
根锚定链接 ( /../blob/<version>/<path-to-file>) 确保它可以在每个 Wiki 页面上独立于其嵌套深度工作。当然,此语法也适用于分支名称或任何其他相关链接/../tree/1ab3fa71/doc,例如。
我发现,在大多数情况下,有效的一种方法是将鼠标悬停在相关文件中要引用的代码行上。执行此操作时,单击左侧装订线中显示的链接图标以复制线条引用。复制后,您可以在复制的 URI 中使用稍微修改过的路径版本。
以下是使用装订线图标复制链接的示例:
https://gitlab.com/settermjd/mezzio-sms-sender-api/-/blob/main/src/App/src/Handler/SMSReplyHandler.php#L23
Run Code Online (Sandbox Code Playgroud)
这是我在提交中使用的修改后的路径。请注意之前的父目录引用main/:
/../main/src/App/src/Handler/SMSReplyHandler.php#L23
Run Code Online (Sandbox Code Playgroud)
我意识到 gitlab wiki 中的文件引用是来自 wiki 存储库本身的文件引用,而不是来自项目存储库(源代码存储库)的文件。
但是,当您引用哈希时,它知道该哈希是引用提交还是文件,因此您可以引用项目存储库中的特定文件。
| 归档时间: |
|
| 查看次数: |
5106 次 |
| 最近记录: |