79

在 GitHub wiki 页面上,如果我输入:

www.foobar.com

GitHub 自动假定这是一个 URL,并将文本作为指向http://www.foobar.com的超链接。但是,有时我不想创建超链接。有没有办法阻止这种行为?也许某种降价?

4

7 回答 7

92

2021 年 11 月更新,VSCode 1.63:

这个问题应该通过问题 136198 “markdown preview wrongly created links”得到缓解

虽然"markdown.preview.linkify": false将完全禁用链接功能,但设置md.linkify.fuzzyLinkfalse仅对没有http(s) 标头的链接禁用它。
我认为这是一个更好的选择,并且它已经得到了markdown-it的支持。


原始答案(2014):这不仅限于 wiki 页面,并且是GFM(GitHub Flavored Markdown)url 自动链接功能的一部分。

将它们放入 `` 可以工作,但将 url 显示为代码:foo http://example.combar.

foo `http://example.com` bar

另一个技巧(在这个要点中提到)是

ht<span>tp://</span>example.com 

这会将 http://example.com 显示为常规文本。

在您的情况下(没有 http://)

w<span>ww.</span>foobar.com

这也会将 www.foobar.com 显示为常规文本。

geekley在评论中补充道:

对于电子邮件,您可以使用foo<span>@</span>example.com


Venryx评论中建议更短/更清洁的解决方案:

只需在破坏 URL 可检测性的位置添加一个void 元素标签(我更喜欢<area>),例如。就在第一个点之前。

例子:www<area>.foobar.com

于 2014-09-07T06:55:19.203 回答
33

此外,如果您遇到 URL 自动链接以外的问题,我发现转义了 . 也可以。

例子:

foobar.web -> foobar&#46;web
于 2019-07-22T19:38:54.690 回答
10

您可以使用零宽度空格来防止大多数自动链接器将字符解释为 URL

https这是一个在and之间插入零宽度空间的示例:

https​://example.com/

要插入一个,您可以从上面的网址或此页面复制

另请参阅推特上的此线程

于 2020-02-19T18:15:12.567 回答
9

您也可以只对冒号(或任何其他标点符号)应用反斜杠转义,如下所示:

http\://www.foobar.com
于 2019-06-22T06:31:59.733 回答
5

建议使用零宽度不间断空间
在 HTML 中可用作 Unicode 字符参考:&#xfeff;&#65279;

好处是:

  • 防止自动链接(显然)
  • 无形的
  • 没有意外的换行符
  • 源代码可读

例子

http对于在和之间插入的网址:
https​&amp;#65279;://example.com/→ https​://example.com/

@对于在:
user@&#65279;example.com→ user@example.com之后插入的电子邮件

于 2020-10-25T18:52:52.870 回答
1

我建议这只是一个更完整且当前正确的答案。

有人提出 VSCode 的行为与 Github 不同。似乎 Github 自动 URL 处理作用于“www”。前缀(可能是其他触发器),而 VSCode 会自动转换任何以IANA 注册的国家代码 TLD后缀结尾的句点/句号分隔的文本。VSCode 不会自动补全任何以“www”开头的文本。就像 Github 一样。比较下面的三个图像,并注意标签的位置以及每个环境如何呈现文本。

请注意,抑制所有自动 URL 呈现的唯一机制是(最丑陋的)在每个句点之前放置一个标签。标签是什么可能并不重要。'span' 可能适用于所有情况。我使用“nowiki”是因为它在此处在 MediaWiki 以及也许在其他地方是一致的。

然而,了解规则后,抑制自动 URL 呈现的“答案”似乎取决于文本。

  • 如果它以“www.”开头,请使用丑陋的解决方案。查看 Github 渲染的最后两行,并注意最后一个句点之前的标签将禁止仅对文本的最后部分进行渲染。
  • 但是,如果文本不以“www.”开头,则在最后一个句点之前的单个标签就足以满足 VSC 和 GH 的要求。
  • 两种环境都受评估文本的规则的约束。在某些时候,其中一个或两个可能会自动转换 .gov、.net、其他常见 TLD,并最终转换任何有效的 ggTLD,如 .online、.xyz 或 .aaa。为了使您的文本适应未来,请考虑对所有此类文本使用丑陋的方法,其中文本不是将使用反引号呈现的代码。
  • 实际标签似乎并不重要,无论是<nowiki/><span/>还是<k>。我个人推荐nowiki,因为它已经是为此目的而公认的标签。
  • 关于&#HTML 编码,我尝试了这里的建议,文本没有被处理。我在这里没有包含示例,但您可以随意用字符编码替换任何文本标记,看看它是如何为您工作的。

VSCode 编辑器:
原始 VSCode 降价

VSCode 预览:
在 VSCode 降价预览中呈现的相同代码

Github 自述文件.md:
相同的代码推送到 repo 并由 Github 呈现

于 2021-08-23T17:54:23.197 回答
0

就我而言,

# some&#46;thing
在 title 中使用过,然后我得到一个没有外部链接的标题。

某物


[some.thing](#something)
用作链接。
“#something”来自网络中预览的链接。

于 2021-05-04T10:45:34.510 回答