本指南介绍如何直接链接到 Discourse 帖子或主题中的标题,使用户能够高效地浏览长篇帖子。
所需用户级别:所有用户
在长篇帖子中添加标题可以提高内容的可读性,并允许用户直接链接到特定部分。这对于浏览大量的讨论和文档特别有用。
摘要
本指南涵盖:
- 使用 Markdown 创建标题
- 直接链接到帖子中的特定标题
使用 Markdown 创建标题
要在 Markdown 中创建标题,请在文本行前加上一个或多个 # 字符。# 字符的数量对应于标题级别。以下是一些示例:
## 这是一个二级标题
后面是一小段文字。
### 这是一个三级标题
再后面是一小段文字。
渲染后的效果如下:
这是一个二级标题
后面是一小段文字。
这是一个三级标题
再后面是一小段文字。
直接链接到标题
要共享指向帖子中特定标题的直接链接:
- 悬停在标题上,旁边会出现一个链接图标:
。
- 点击链接图标,浏览器地址栏中的 URL 将更新为指向该标题的直接链接。
- 从地址栏复制更新后的 URL 以与他人共享。
链接图标仅在桌面(非触摸屏)设备上悬停在标题上时才会显示。在触摸屏和移动设备上,锚点链接存在于页面中,但不可见。
了解标题锚点 URL
当您单击标题的链接图标时,地址栏中的 URL 会使用以下格式的片段进行更新:
#p-{postId}-{slugified-heading}-{number}
例如,帖子 12345 中标题为“Getting Started”的链接会生成一个类似 #p-12345-getting-started-1 的 URL 片段。末尾的数字是基于标题在帖子中位置的顺序计数器。
最佳实践
- 使用描述性的标题以清晰地总结内容。
- 在适当的情况下,使用分层标题来组织您的帖子。
- 确保标题一致且合乎逻辑,以提高可读性。
- 请注意,编辑标题文本或更改标题顺序将更改其锚点 URL,这可能会导致现有链接失效。
常见问题解答
我能链接到帖子的任何部分吗?
您可以链接到任何使用 Markdown 正确格式化的标题,只要它不在引用块或引文块内。这些块内的标题不会生成锚点链接。
标题链接在不同的帖子之间有效吗?
是的!当在其他主题中使用或在别处共享时,这些链接会直接指向帖子中的标题。
附加资源
73 个赞
one1
51
我在这个网站或我自己的网站上都看不到链接图标。无论是在火狐浏览器还是 Chrome 浏览器中都看不到。
是否发生了什么变化?
one1
53
当我鼠标悬停时,什么也看不到。
似乎确实存在一些东西,但没有显示任何图标。
一个后续问题…
我假设如果更改标题的文本,链接就会断开。
编辑补充:不仅当标题更改时锚点会更改,而且如果在现有标题之前插入另一个标题,则标题上的数字后缀也会更改。这似乎脆弱得毫无用处。
唯一安全的解决方法是将标题包装在 html a 标签中并为其指定一个 id,对吗?
再次编辑补充:我尝试了将标题文本包装在 a 标签中,以及仅在标题文本之前放置空标签。两种 id 都不起作用。我还尝试了 span 标签,结果同样失败。
one1
54
是的,我可以在 DOM 中将其找到为 before:
我使用的是 Windows 11。
我能让链接图标出现的方法是复制链接,然后在新标签页中打开该链接(带有 # 和 id)。这样链接图标就会一直显示(无需悬停),但其他链接图标仍然不会在悬停时出现。
one1
55
我可以顶一下这个帖子吗?我想知道我是不是遗漏了关于在帖子中链接的某些显而易见的东西。
我遇到了同样的问题。图标在那里,但它的不透明度设置为零,所以它不可见。
.cooked h1 a.anchor, .cooked h2 a.anchor, .cooked h3 a.anchor, .cooked h4 a.anchor, .cooked h5 a.anchor, .cooked h6 a.anchor, .d-editor-preview h1 a.anchor, .d-editor-preview h2 a.anchor, .d-editor-preview h3 a.anchor, .d-editor-preview h4 a.anchor, .d-editor-preview h5 a.anchor, .d-editor-preview h6 a.anchor
Specificity: (0,2,2)
{
opacity: 0;
transition: opacity .25s;
}
我也看不到原帖中的图标,所以这排除了我实例上的任何自定义样式。
我使用的是 Chrome。
1 个赞
作为另一个独立的问题,我发现(隐藏的)图标提供的链接在同一主题中无法使用。如果图标给我:
https://forum.example.com/t/testing-anchors/63647#p-311503-heading-1
我必须仅使用 #p-311503-heading-1 来创建我的链接,而不是完整的网址。如果我将完整网址粘贴到浏览器中,它是可以工作的。
1 个赞