为什么标题会在GitHub readme.md markdown页面中自动创建链接?

时间:2020-08-24 20:48:21

标签: github markdown github-pages

您好:我已经为我的存储库和GitHub页面创建了readme.md文件。但是,当我创建格式为h2 / ##或h3 / ###等的标题时,会自动创建页内定位链接。我尝试了各种格式设置标题的方式,例如##,,---,但是得到的结果相同。它出现在每个标题上。这会在存储库中的readme.md文件中以及转换为GitHub页面的文件中发生。我已经在chrome浏览器和Edge浏览器中对其进行了测试,这是相同的行为。

# sample将创建标题和不需要的页内链接

## sample将创建标题和不需要的页内链接

这是一个行为如下的页面:https://burrittresearch.com/

我的目标是能够在markdown中格式化标题,而无需自动创建这些链接。

谢谢!

2 个答案:

答案 0 :(得分:0)

这些是GitHub页面上anchorjs默认CSS规则的一部分

<h2 id="skills">Skills
  <a class="anchorjs-link" 
     href="#skills" 
     aria-label="Anchor" 
     data-anchorjs-icon="" 
     style="font: 1em / 1 anchorjs-icons; padding-left: 0.375em;">
  </a>
</h2>

如果您的静态页面(如this one)包含其自己的CSS文件/规则集(如those ones),则可以添加以确保它们不可见:

.anchorjs-link {
  display: none !Important;
}

答案 1 :(得分:0)

GitHub在github/Markup中记录了其标记处理。请注意,Markdown在第一步中转换为HTML,该过程不会在标头中添加任何锚点。但是,在与Markdown解析分开的步骤4中,文档中的所有标头都添加了锚点。不论是否来自Markdown,ReStructured Text,纺织品,asscidoc等,所有内容都会完成此操作,并且不特定于Markdown。

请注意,以上内容仅适用于在github.com上显示的用户提供的内容。这是他们控制的网站,因此我们不必更改/覆盖该行为。

但是,与GitHub页面不同。默认情况下,GitHub Pages使用Jekyll将Markdown文件转换为HTML。 Jekyll包括多个options,以控制Markdown的处理方式,包括auto_ids选项。关闭该选项(将其设置为false),Jekyll将不再向每个标头添加ID。但是,这是一个Kramdown选项,但是据我了解,GitHub Pages使用Commonmark的GitHub Flavored Markdown变体,它没有任何此类选项。因此,GFM规范也没有指出标头也不会分配ID(因此我不确定这些ID的来源)。您可以尝试将Jekyll配置为在auto_ids选项关闭的情况下使用Kramdown。 Configuration options“可以在网站根目录中的_config.yml_config.toml文件中指定。”

或者,您可以在本地安装Jekyll(或任何其他static site generator)并构建网站,然后再上传到GitHub Pages。只需在站点根目录中包含一个名为.nojekyll的空文件,GitHub就不会通过Jekyll运行您的文件。这样,您就可以完全控制页面的内容和格式。