Create a struct with all of Hugo's config options

Primary motivation is documentation, but it will also hopefully simplify the code.

Also,

* Lower case the default output format names; this is in line with the custom ones (map keys) and how
it's treated all the places. This avoids doing `stringds.EqualFold` everywhere.

Closes #10896
Closes #10620
This commit is contained in:
Bjørn Erik Pedersen 2023-01-04 18:24:36 +01:00
parent 6aededf6b4
commit 241b21b0fd
337 changed files with 13377 additions and 14898 deletions

View file

@ -28,14 +28,18 @@ import (
type Config struct {
// Default markdown handler for md/markdown extensions.
// Default is "goldmark".
// Before Hugo 0.60 this was "blackfriday".
DefaultMarkdownHandler string
Highlight highlight.Config
// The configuration used by code highlighters.
Highlight highlight.Config
// Table of contents configuration
TableOfContents tableofcontents.Config
// Content renderers
Goldmark goldmark_config.Config
// Configuration for the Goldmark markdown engine.
Goldmark goldmark_config.Config
// Configuration for the Asciidoc external markdown engine.
AsciidocExt asciidocext_config.Config
}
@ -46,6 +50,8 @@ func Decode(cfg config.Provider) (conf Config, err error) {
if m == nil {
return
}
m = maps.CleanConfigStringMap(m)
normalizeConfig(m)
err = mapstructure.WeakDecode(m, &conf)