在Github

时间:2016-08-17 04:07:37

标签: github markdown

有谁知道如何创建指向其他维基页面标题的链接?

我知道如果我有一个标题##Header name,我可以使用(#header-name)作为我的链接链接到该页面,但我想从另一个页面链接到该标题。这可能吗?

即。我想有一个目录,可以链接到每个维基页面的子部分以及页面本身。

编辑:我的意思是除了使用网址链接之外的其他方式 http://github.com/project/wiki/Wiki-Page#header-name

4 个答案:

答案 0 :(得分:5)

编辑1 :以前完全错了,我只是读了一下。所以我们在GitHub Wiki中也有这种新的支持! (相对较新。)

您也可以这样做:

[[ Link text | page_title#header_title ]]

这对你来说可能会更好! TIL因为这个答案here。您可以看到我使用前提条件链接执行此操作,您可以看到我的其他链接以另一种方式工作。我有时间做一些更新!

编辑1 :仍然有用,但绝对不是唯一的方式

所以我之前回答了一个问题,你应该避免GitHub上的绝对链接(即https://github.com/user/repo_name/..。)

然而,一个好的方法(以及在维基的唯一方式编辑1 :完全不是唯一的方式)做你需要的东西可以这样看:

[Header link](/user/repository_name/wiki/page_name#title)

不幸的是,Wiki会支持这种联系。这将根据GitHub更改您的目录页面(您可以看到它将是https://github.com/(the您要点击的链接)`

我实际上已经开始在here的Wiki上做这样的事情。在我的补充工具栏中,您可以看到我有一个入门页面,然后它的一个子部分是一个先决条件标题,它将正确地引导人们到他们需要去的地方。您可以在任何页面上执行相同的操作。它有点冗长,但值得一试,因为如果需要你可以很容易地改变一些东西。这也是区分大小写的,因为它会改变它们的位置,所以请确保在你的链接中,页面是正确的情况,你的标题都是小写的。

希望这有帮助!

答案 1 :(得分:2)

您只需为标头分配ID即可链接到标头。例如,你在一个名为Abc的页面中有“Extension”标题。  # <a id="extension"></a> Extensions
你有另一个页面“呼叫中心”,你想转到abc扩展,你可以使用降价的参考链接,即“[扩展] [1]由代理处理” [1]: url-of-abc/#extension

答案 2 :(得分:0)

我在编辑1 中测试了Maxwell的“好方法”到Github中另一个页面的link to the header,它运行良好。

#[crux-ports Installation](/user/crux-ports/blob/master/README.md#installation)

答案 3 :(得分:0)

markdown 为标题生成 slug 并将其转换为 id,示例

# [ topic ][ color ]

将转换为

<h1 id="topic--color" data-line="643" class="code-line">[ topic ][ color ]</h1>

因此,要链接它,您可以将其写为 [color](#topic--color)

如果目标锚点在另一个页面(假设文件名css.md)上,路径相对于当前降价页面,那么你可以把它写成[color](css.md#topic--color)

从 vscode 中附加 slugify 函数

// excerpt from https://github.com/yzhang-gh/vscode-markdown/blob/908d7ba5465a203e4299f346c179211d992ef468/src/util/slugify.ts

const str = '# [ topic ][ color ]';

const slug = encodeURI(
            str.trim()
                .replace(/\s+/g, "-") // Replace whitespace with -
                .replace(/[\]\[\!\'\#\$\%\&\'\(\)\*\+\,\.\/\:\;\<\=\>\?\@\\\^\_\{\|\}\~\`。,、;:?!…—·ˉ¨‘’“”々~‖∶"'`|〃〔〕〈〉《》「」『』.〖〗【】()[]{}]/g, "") // Remove known punctuators
                .replace(/^\-+/, "") // Remove leading -
                .replace(/\-+$/, "") // Remove trailing -
        );
        
 console.log(slug) // "topic--color"