关于go:Golang-语雀内容系统5-详情页Toc导航栏

实现性能

  • 减少文章详情页Toc文章目录

实现思路

对文章内容提取 h1, h2, h3, h4, h5 标签与锚,这里咱们将采纳到第三方包

  • github.com/PuerkitoBio/goquery
// handler/post.go

html = `
<h1 id="H55oy1">语雀文章内容</h1>
<h2 id="H55oy2">语雀文章内容</h2>
<h3 id="H55oy3">语雀文章内容</h3>
<h4 id="H55oy4">语雀文章内容</h4>
<h5 id="H55oy5">语雀文章内容</h5>
`
doc, _ := goquery.NewDocumentFromReader(strings.NewReader(html))

var navs []*Nav
doc.Find("h1, h2, h3, h4, h5").Each(func(i int, s *goquery.Selection) {
    // ...
    navs = append(navs, &Nav{
        ID: "",
        Title: "",
        Level: "",
    })
})

type Nav struct {
    ID string
    Title string
    Level int
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理