diff --git a/application/source/document/html.go b/application/source/document/html.go
index 1bbc2de1b8575c8bbf6760927b3c7ac90c4d2a73..0eea67d0c82b01f4800e1008092eebddcd871df8 100644
--- a/application/source/document/html.go
+++ b/application/source/document/html.go
@@ -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(),
 		),
diff --git a/application/source/go.mod b/application/source/go.mod
index 8c78711699d04406da7904d167c4b2a7a4377ce3..07a06531beac401570114188686a5560a1534d3f 100644
--- a/application/source/go.mod
+++ b/application/source/go.mod
@@ -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
diff --git a/application/source/go.sum b/application/source/go.sum
index af98c806bad3eaa228dead0c43087b75275ad970..dfefe4262d57d2fa390c6cd8272900c9473ad394 100644
--- a/application/source/go.sum
+++ b/application/source/go.sum
@@ -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=