两种实现方式:
- 生成器在渲染时,生成目录,由模板加载;
- 模板内的 js 脚本自动寻找标题等元素,并为标题生成 id 及目录。
生成器渲染
引入 golang 版本的 markdown to html 引擎,可获取对应的标题列表,或手动编写查找规则获取。将获得的目录保存在模板数据里,并修改 html 文本,为标题加上对应的目录 id,再由模板加载目录数据并显示。
不过因为模板数据存在 markdown 和 html 两种数据格式,如果模板加载 markdown 数据,则此方式无效,目录的渲染将与生成器无关。
全局 js 脚本渲染
与渲染数学公式、图表的方式类似,使用全局 js 脚本,查找并保存当前页面的标题列表。
不过这种方式对模板开发不太友好,需要使用 js 渲染目录 UI,无法使用 golang 模板语法去渲染。
两种实现方式:
生成器渲染
引入 golang 版本的 markdown to html 引擎,可获取对应的标题列表,或手动编写查找规则获取。将获得的目录保存在模板数据里,并修改 html 文本,为标题加上对应的目录 id,再由模板加载目录数据并显示。
不过因为模板数据存在 markdown 和 html 两种数据格式,如果模板加载 markdown 数据,则此方式无效,目录的渲染将与生成器无关。
全局 js 脚本渲染
与渲染数学公式、图表的方式类似,使用全局 js 脚本,查找并保存当前页面的标题列表。
不过这种方式对模板开发不太友好,需要使用 js 渲染目录 UI,无法使用 golang 模板语法去渲染。