首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在渲染的Github Pages README.md上生成目录(ToC)?

在GitHub Pages上为README.md文件生成目录(Table of Contents,简称ToC)可以通过使用Markdown扩展语法来实现。以下是具体的步骤和示例代码:

基础概念

目录(ToC):在文档中,目录是一个列出文档主要部分及其对应页码的列表,方便读者快速定位到感兴趣的内容。

相关优势

  1. 提高可读性:读者可以快速了解文档结构并跳转到感兴趣的部分。
  2. 增强用户体验:特别是在长文档中,目录能显著提升用户的浏览效率。

类型与应用场景

  • 静态ToC:适用于内容不经常变动的文档。
  • 动态ToC:适用于内容频繁更新且需要实时反映变化的文档。

实现方法

GitHub Pages支持使用Jekyll等静态站点生成器,可以通过添加插件或手动编写代码来生成ToC。

方法一:使用Markdown扩展语法

在README.md文件的顶部添加以下代码块:

代码语言:txt
复制
<!-- TOC -->

- [标题1](#标题1)
  - [子标题1.1](#子标题11)
  - [子标题1.2](#子标题12)
- [标题2](#标题2)

<!-- /TOC -->

然后,在每个标题下方添加锚点:

代码语言:txt
复制
## 标题1 {#标题1}

### 子标题1.1 {#子标题11}

### 子标题1.2 {#子标题12}

## 标题2 {#标题2}

方法二:使用Jekyll插件

如果你使用Jekyll来构建你的GitHub Pages站点,可以安装jekyll-toc插件来自动生成目录。

  1. 在你的_plugins目录下创建一个名为toc_generator.rb的文件,并添加以下内容:
代码语言:txt
复制
module Jekyll
  class TocGenerator < Generator
    safe true
    priority :low

    def generate(site)
      site.pages.each do |page|
        if page.extname == '.md'
          toc = page.data['toc'] || {}
          toc_content = "<ul>"
          page.data['toc_items'].each do |item|
            toc_content += "<li><a href='##{item[:anchor]}'>#{item[:title]}</a></li>"
          end
          toc_content += "</ul>"
          page.content = "#{toc_content}\n\n#{page.content}"
        end
      end
    end
  end
end
  1. 在你的_config.yml文件中添加以下配置:
代码语言:txt
复制
toc:
  enabled: true
  1. 在你的Markdown文件中使用以下语法来定义目录项:
代码语言:txt
复制
{% raw %}
{% toc %}
{% endraw %}

遇到问题及解决方法

问题:生成的目录没有正确显示或链接失效。 原因:可能是锚点ID与标题不匹配,或者Markdown解析器没有正确处理扩展语法。 解决方法

  1. 确保锚点ID与标题完全匹配,包括大小写和空格。
  2. 使用在线Markdown编辑器预览你的文件,检查目录是否正确生成。
  3. 如果使用Jekyll插件,确保插件已正确安装并在_config.yml中启用。

通过以上方法,你应该能够在GitHub Pages上的README.md文件中成功生成目录。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

团队技术文档构建利器vuepress上手实践

团队技术文档构建利器vuepress上手实践 toc Write By CS逍遥剑仙 我的主页: www.csxiaoyao.com GitHub: github.com/csxiaoyaojianxian...一个 vuepress 网站是一个由 Vue、Vue Router 和 Webpack 驱动的单页应用。在构建时,创建一个服务端渲染(SSR)的版本,然后通过虚拟访问每一条路径来渲染对应的HTML。...目录结构 项目创建完后,最简的目录结构如下: ├─ docs │ ├─ README.md │ └─ .vuepress │ └─ config.js └─ package.json 官方推荐的完整目录结构如下...GitHub Pages 部署 发布 GitHub Pages 需要在 .vuepress/config.js 中设置正确的 base。...github.io/ # git push -f git@github.com:/.git master:gh-pages cd - 设置package.json

2.4K94

团队技术文档构建利器vuepress上手实践

GitHub Pages 部署 8....一个 vuepress 网站是一个由 Vue、Vue Router 和 Webpack 驱动的单页应用。在构建时,创建一个服务端渲染(SSR)的版本,然后通过虚拟访问每一条路径来渲染对应的HTML。...目录结构 项目创建完后,最简的目录结构如下: ├─ docs │ ├─ README.md │ └─ .vuepress │ └─ config.js └─ package.json 官方推荐的完整目录结构如下...3.1.3 侧边栏(sidebar) themeConfig.sidebar 侧边栏一般用于文档的目录索引,可以直接在 config.js 中配置链接数组,也在页面中配置 sidebar:auto 自动生成侧边栏目录...GitHub Pages 部署 发布 GitHub Pages 需要在 .vuepress/config.js 中设置正确的 base。

1.3K20
  • Markdown 拓展-使用 vue.press 生成网站

    你可以使用 Markdown在新窗口打开 来书写内容(如文档、博客等),然后 VuePress 会帮助你生成一个静态网站来展示它们。...一个 VuePress 站点本质上是一个由 Vue在新窗口打开 和 Vue Router在新窗口打开 驱动的单页面应用 (SPA)。 路由会根据你的 Markdown 文件的相对路径来自动生成。...在构建过程中,我们会为 VuePress 站点创建一个服务端渲染 (SSR) 的版本,然后通过虚拟访问每一条路径来渲染对应的 HTML 。...目录 如果你想要把当前页面的目录添加到 Markdown 内容中,你可以使用 [[toc]] 语法。 代码块 下列代码块扩展是在 Node 端进行 Markdown 解析的时候实现的。...无论你是单独部署到 nginx 还是 GitHub Pages、Gitlab Pages 上。否则可能会样式文件找不到导致网页加载不正常。

    1.5K10

    Windows系统使用Docsify文档编辑器搭建个人博客并一键发布公网

    前言 本文主要介绍如何在Windows环境本地部署 Docsify 这款以 markdown 为中心的文档编辑器,并即时生成您的文档博客网站,结合cpolar内网穿透还能将博客一键发布至公网允许所有人访问...如果你想要开始使用他,只需要创建一个index.html就可以开始编写文档并直接部署在GitHub Pages。...,可以在文中添加表情 兼容IE11 支持服务端渲染SSR 接下来,讲解如何在本地部署Docsify。.../docs 目录下创建的几个文件 index.html 入口文件 README.md 会做为主页内容渲染 .nojekyll 用于阻止 GitHub Pages 忽略掉下划线开头的文件 直接编辑 docs...开启渲染封面功能后在文档根目录创建 _coverpage.md 文件。渲染效果如本文档。 index.html window.

    21010

    使用gitbook快速搭建文档中心

    ,主要分两类,一类是动态的,有数据库,有后台管理界面,可以在后台管理中去发布文档;一种是静态的,基本就是提供写好的markdown,然后部署到服务器上,用特定技术预先渲染成html,再利用nginx之类的指向这些.../guides/blogging image-20231021161050857 该网站的搜索效果是做不出来的,这个是对接了专门的搜索网站 对应的github:https://github.com/enspiral...,node目前最新的长期支持版本是v18.18.2,但是,在centos7.9上,都是用不了的。...可以看下面的具体报错,是node v18版本依赖了高版本的glic库,而这个库在centos 7.9上没有;同时,也需要安装高版本的gcc,才能运行不报错,而这个高版本的gcc在centos 7.9上也没有...编译为html 其实在执行上面的npx honkit serve后,就生成了index.html和相关的资源文件,在当前目录的_book目录下: image-20231021170724174 编译的命令

    3K10

    关于 Markdown 的一些奇技淫巧

    自从几年前开始在 GitHub 玩耍,接触到 Markdown 之后,就一发不可收拾,在各种文档编辑上,有条件用 Markdown 的尽量用,不能用的创造条件也要用——README、博客、公众号、接口文档等等全都是...展示数学公式 如果是在 GitHub Pages,可以参考 http://wanguolin.github.io/mathmatics_rending/ 使用 MathJax 来优雅地展示数学公式(非图片...网页上部的输入框里输入 LaTeX 公式,比如 $x=\frac{-b\pm\sqrt{b^2-4ac}}{2a} 在网页下部拷贝 URL Encoded 的内容,比如以上公式生成的是 https:...有时候维护一份比较长的文档,希望能够自动根据文档中的标题生成目录(Table of Contents),并且当标题有变化时自动更新目录,能减轻工作量,也不易出错。...如果你使用 Vim 编辑器,那可以使用我维护的插件 vim-markdown-toc 来帮你完美地解决此事: english.gif 插件地址:https://github.com/mzlogin/vim-markdown-toc

    1.1K11

    关于 Markdown 的一些奇技淫巧

    自从几年前开始在 GitHub 玩耍,接触到 Markdown 之后,就一发不可收拾,在各种文档编辑上,有条件用 Markdown 的尽量用,不能用的创造条件也要用——README、博客、公众号、接口文档等等全都是...展示数学公式 如果是在 GitHub Pages,可以参考 http://wanguolin.github.io/mathmatics_rending/ 使用 MathJax 来优雅地展示数学公式(非图片...有时候维护一份比较长的文档,希望能够自动根据文档中的标题生成目录(Table of Contents),并且当标题有变化时自动更新目录,能减轻工作量,也不易出错。...如果你使用 Vim 编辑器,那可以使用我维护的插件 vim-markdown-toc 来帮你完美地解决此事: ?...插件地址:https://github.com/mzlogin/vim-markdown-toc 如果你使用其它编辑器,一般也能找到对应的解决方案,比如 Atom 编辑器的 markdown-toc 插件

    1.9K20

    用 Markdown 写一本自己的电子书吧(二)自动篇

    只有将页面和页面内引用到的资源信息进行汇总,最终才能生成全书的 资源清单、书脊 和 导航目录。 这就需要我们在过程中一边渲染和生成文件,一边整理相关信息。...最后由它统筹生成上面提到的基础信息,打包成书,随后清理临时目录。...2) 转换目录结构,渲染全书 之前我们在 book.config 内定义的 pages 字段是一个树形结构,便于我们日常灵活调整和更新,但最终需要生成的资源清单和书脊却是一维线性的(与真实书籍的纸张排列一样...并且我们对 list 内节点的引用的方式,保留原目录数据的基本树形结构,便于之后生成树形的导航目录。...前者我们可以根据之前的 pageTree 递归拼出目录部分的 html 结构,再通过通用的 render() 函数渲染生成,并加入到 manifestList 内: const parseToc = (

    1.9K10

    【如何使用Docsify即时将你的文档转换成一个美观且易用的博客网站】

    传统的静态站点生成器如 GitBook 和 Hexo 虽然功能强大,但在使用过程中往往会遇到一些繁琐的步骤,比如需要生成大量的 HTML 文件、配置复杂的服务器设置等。...这意味着你不再需要复杂的路由器设置或昂贵的公网 IP 地址,只需几行简单的配置就能让你的内容瞬间触达全球。接下来,讲解如何在本地部署 Docsify。1..../docs 目录下创建的几个文件index.html 入口文件README.md 会做为主页内容渲染.nojekyll 用于阻止 GitHub Pages 忽略掉下划线开头的文件直接编辑 docs/README.md...侧边栏、导航栏和封面都建议采用默认的文件渲染:这里举例官网的封面配置文件封面配置文件(_coverpage.md)封面的生成同样是从 markdown 文件渲染来的。...开启渲染封面功能后在文档根目录创建 _coverpage.md 文件。渲染效果如本文档。index.html window.

    6100

    号外,码云 Markdown 解析器更换为 CommonMark 解析器

    码云 CommonMark 解析器 之前码云的解析器基于用户的反馈做了很多定制化的修改。 但是随着使用码云的用户越来越多,以及越来越多的Github用户往码云上迁移,我们收到了很多用户反馈。...始料不及,在Github正常解析渲染的Readme在码云上渲染出来的结果却有所出入。 ? ? 讨论再三,我们决定将码云的 Markdown 解析器更换为 CommonMark。 更改后的差异如下。...01 标题#后面需要有空格才会正确渲染标题 ? 02 正确解析形如 Map> 的文本 ?...07 解决内容中不留空格无法加粗的问题 ? 08 支持--构建表格 ? ? 09 不再支持[TOC] 标准的Markdown是不支持[TOC]标签的,可以通过a标签的方式自行创建目录。 ?...码云上Readme后缀说明 码云为了适应不同种类的开源项目的Readme显示,有不同的优先显示规则,如下: 如一个项目有Readme.osc.md 也有 Readme.md,那么在码云上则优先显示 Readme.osc.md

    1.6K80

    Jekyll 文章侧边索引导航

    Jekyll 生成目录的方案   如参考资料 1 中所提到的,如果想要在 Jekyll 中实现文章目录,有三种不同的方案可供选择: 第一种方案   利用完整的标签来生成静态目录,可以看到在本文的开头就是这样的一个实例...缺点在于 Github Pages 不支持这类自定义插件,你可能需要使用自定义的 workflow.yml 文件来指导 Github Action 来编译生成静态文件。...如果不怎么了解 Github Action,恐怕这种方式部署在 Github Pages 上也不是很省心。...实践   从上述三种方案综合来看,第三种方案能够同时支持自动生成目录和 Github Pages,比较适合预期的需求。...目录生成   目录生成这里直接采用的是上述的第三种方案。具体在 post 模板页使用 toc 模块的代码如最后所示。

    1.6K30
    领券