diff --git a/docs/content/en/getting-started/configuration-markup.md b/docs/content/en/getting-started/configuration-markup.md
index e19bbe47fb6..10f9685b0e4 100644
--- a/docs/content/en/getting-started/configuration-markup.md
+++ b/docs/content/en/getting-started/configuration-markup.md
@@ -116,6 +116,12 @@ endLevel
ordered
: Whether or not to generate an ordered list instead of an unordered list.
+pre
+: HTML to immediately precede the outer list element. Default value is ``.
+
## Markdown Render Hooks
diff --git a/hugolib/page__per_output.go b/hugolib/page__per_output.go
index f59b5f9b545..5aa42e5dbd0 100644
--- a/hugolib/page__per_output.go
+++ b/hugolib/page__per_output.go
@@ -137,6 +137,8 @@ func newPageContentOutput(p *pageState, po *pageOutput) (*pageContentOutput, err
cfg.TableOfContents.StartLevel,
cfg.TableOfContents.EndLevel,
cfg.TableOfContents.Ordered,
+ &cfg.TableOfContents.Pre,
+ &cfg.TableOfContents.Post,
),
)
} else {
diff --git a/markup/goldmark/convert_test.go b/markup/goldmark/convert_test.go
index 2b66a191003..f7bb0ad82ca 100644
--- a/markup/goldmark/convert_test.go
+++ b/markup/goldmark/convert_test.go
@@ -162,7 +162,7 @@ description
toc, ok := b.(converter.TableOfContentsProvider)
c.Assert(ok, qt.Equals, true)
- tocHTML := toc.TableOfContents().ToHTML(1, 2, false)
+ tocHTML := toc.TableOfContents().ToHTML(1, 2, false, nil, nil)
c.Assert(tocHTML, qt.Contains, "TableOfContents")
}
diff --git a/markup/goldmark/toc_test.go b/markup/goldmark/toc_test.go
index f8fcf79d4d9..38494232607 100644
--- a/markup/goldmark/toc_test.go
+++ b/markup/goldmark/toc_test.go
@@ -60,7 +60,7 @@ And then some.
c.Assert(err, qt.IsNil)
b, err := conv.Convert(converter.RenderContext{Src: []byte(content), RenderTOC: true})
c.Assert(err, qt.IsNil)
- got := b.(converter.TableOfContentsProvider).TableOfContents().ToHTML(2, 3, false)
+ got := b.(converter.TableOfContentsProvider).TableOfContents().ToHTML(2, 3, false, nil, nil)
c.Assert(got, qt.Equals, `