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

3
你好:我已经为我的存储库和GitHub页面创建了readme.md文件。但是,当我创建格式为h2/##或h3/###等的标题时,自动创建了页内锚链接。我尝试了不同的标题格式方式,如##、

、--- --,但结果都一样。每个标题都会出现这种情况。这发生在存储库中的readme.md文件和转换为GitHub页面的文件中。我在chrome浏览器和edge浏览器中进行了测试,行为相同。 # 示例将创建标题和一个不想要的页内链接 ## 示例将创建标题和一个不想要的页内链接
这是一个具有此行为的页面:https://burrittresearch.com/ 我的目标是能够在Markdown中格式化标题,而无需自动创建这些链接。
谢谢!

2个回答

1

这些是来自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;
}

0

GitHub在github/Markup中记录了他们的标记处理过程。请注意,Markdown在第一步中被转换为HTML,但不会向标题添加任何锚点。然而,在与Markdown解析分开的第4步中,文档中的所有标题都会添加锚点。这适用于所有内容,无论是来自Markdown、ReStructured Text、textile、asscidoc等,也不仅限于Markdown。

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

然而,与GitHub Pages不同的是,默认情况下,GitHub Pages使用Jekyll将Markdown文件转换为HTML。 Jekyll包含一些选项来控制Markdown的处理方式,包括auto_ids选项。关闭该选项(设置为false),Jekyll将不再为每个标题添加ID。然而,这是Kramdown的一个选项,但据我所知,GitHub Pages使用的是GitHub Flavored Markdown变体的Commonmark,它没有任何此类选项。就此而言,GFM规范也没有指示标题将被分配ID(所以我不确定这些ID来自哪里)。您可以尝试配置Jekyll使用关闭了auto_ids选项的Kramdown。 配置选项“可以在放置在站点根目录中的_config.yml_config.toml文件中指定。”

作为一个替代方案,您可以在本地安装Jekyll(或任何其他静态网站生成器),然后在上传到GitHub Pages之前构建网站。只需在网站根目录中包含一个名为.nojekyll的空文件,GitHub将不会通过Jekyll运行您的文件。通过这种方式,您可以完全控制页面的内容和格式。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接