Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • oss/utilities/documentation-manager
1 result
Show changes
Commits on Source (2)
......@@ -14,11 +14,13 @@ import (
"github.com/gomarkdown/markdown/ast"
markdownHTML "github.com/gomarkdown/markdown/html"
"github.com/gomarkdown/markdown/parser"
"github.com/gosimple/slug"
"github.com/mattn/go-shellwords"
"github.com/tdewolff/minify/v2"
minHTML "github.com/tdewolff/minify/v2/html"
"github.com/yuin/goldmark"
"github.com/yuin/goldmark/extension"
goldmarkParser "github.com/yuin/goldmark/parser"
goldmarkHTML "github.com/yuin/goldmark/renderer/html"
"gitlab.schukai.com/oss/utilities/documentation-manager/environment"
"gitlab.schukai.com/oss/utilities/documentation-manager/translations"
......@@ -223,7 +225,7 @@ func buildTree(body string) *Tree[DocumentNode] {
obj := newTree[DocumentNode]()
ptr := obj
doc.Find("h1,h2,h3,h4").Each(func(k int, s *goquery.Selection) {
doc.Find("h1,h2,h3,h4,h5,h6").Each(func(k int, s *goquery.Selection) {
e := s.Get(0)
t := []rune(e.DataAtom.String())
l := t[1:len(t)]
......@@ -234,7 +236,15 @@ func buildTree(body string) *Tree[DocumentNode] {
aID, found := s.Attr("id")
if !found {
aID = "rel-" + e.DataAtom.String()
if title, err := s.Html(); err == nil {
aID = slug.Make(title)
} else {
aID = "" + e.DataAtom.String() + "-" + randomID()
}
s.SetAttr("id", aID)
}
payload := DocumentNode{
......@@ -589,8 +599,21 @@ func renderHook(w io.Writer, node ast.Node, entering bool) (ast.WalkStatus, bool
func createHtmlFromMarkdown(text string) string {
md := goldmark.New(
goldmark.WithExtensions(extension.GFM),
goldmark.WithParserOptions(),
goldmark.WithExtensions(
extension.GFM,
extension.DefinitionList,
extension.Footnote,
extension.Typographer,
extension.Linkify,
extension.Table,
extension.Strikethrough,
extension.TaskList),
goldmark.WithParserOptions(
goldmarkParser.WithAutoHeadingID(),
goldmarkParser.WithAttribute(),
goldmarkParser.WithHeadingAttribute(),
),
goldmark.WithRendererOptions(
goldmarkHTML.WithUnsafe(),
),
......
......@@ -24,6 +24,8 @@ require (
github.com/go-chi/chi/v5 v5.0.7 // indirect
github.com/go-chi/docgen v1.2.0 // indirect
github.com/go-chi/httprate v0.5.3 // indirect
github.com/gosimple/slug v1.13.1 // indirect
github.com/gosimple/unidecode v1.0.1 // indirect
github.com/tdewolff/parse/v2 v2.6.5 // indirect
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
go.uber.org/atomic v1.9.0 // indirect
......
......@@ -29,6 +29,10 @@ github.com/gookit/color v1.5.1 h1:Vjg2VEcdHpwq+oY63s/ksHrgJYCTo0bwWvmmYWdE9fQ=
github.com/gookit/color v1.5.1/go.mod h1:wZFzea4X8qN6vHOSP2apMb4/+w/orMznEzYsIHPaqKM=
github.com/gookit/color v1.5.2 h1:uLnfXcaFjlrDnQDT+NCBcfhrXqYTx/rcCa6xn01Y8yI=
github.com/gookit/color v1.5.2/go.mod h1:w8h4bGiHeeBpvQVePTutdbERIUf3oJE5lZ8HM0UgXyg=
github.com/gosimple/slug v1.13.1 h1:bQ+kpX9Qa6tHRaK+fZR0A0M2Kd7Pa5eHPPsb1JpHD+Q=
github.com/gosimple/slug v1.13.1/go.mod h1:UiRaFH+GEilHstLUmcBgWcI42viBN7mAb818JrYOeFQ=
github.com/gosimple/unidecode v1.0.1 h1:hZzFTMMqSswvf0LBJZCZgThIZrpDHFXux9KeGmn6T/o=
github.com/gosimple/unidecode v1.0.1/go.mod h1:CP0Cr1Y1kogOtx0bJblKzsVWrqYaqfNOnHzpgWw4Awc=
github.com/jessevdk/go-flags v1.5.0 h1:1jKYvbxEjfUl0fmqTCOfonvskHHXMjBySTLW4y9LFvc=
github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4=
github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8=
......
{
"version": "1.1.5"
"version": "1.1.6"
}
\ No newline at end of file