docs: Make null booleans falsy in the docs helper

This commit is contained in:
Bjørn Erik Pedersen 2024-01-31 12:34:28 +01:00
parent bd66d30295
commit 51615440bf
No known key found for this signature in database
3 changed files with 18 additions and 4 deletions

View file

@ -195,7 +195,7 @@ url: %s
configProvider := func() docshelper.DocProvider { configProvider := func() docshelper.DocProvider {
conf := hugolib.DefaultConfig() conf := hugolib.DefaultConfig()
conf.CacheDir = "" // The default value does not make sense in the docs. conf.CacheDir = "" // The default value does not make sense in the docs.
defaultConfig := parser.LowerCaseCamelJSONMarshaller{Value: conf} defaultConfig := parser.NullBoolJSONMarshaller{Wrapped: parser.LowerCaseCamelJSONMarshaller{Value: conf}}
return docshelper.DocProvider{"config": defaultConfig} return docshelper.DocProvider{"config": defaultConfig}
} }

View file

@ -1076,9 +1076,9 @@ config:
wrapStandAloneImageWithinParagraph: true wrapStandAloneImageWithinParagraph: true
renderHooks: renderHooks:
image: image:
enableDefault: null enableDefault: false
link: link:
enableDefault: null enableDefault: false
renderer: renderer:
hardWraps: false hardWraps: false
unsafe: false unsafe: false

View file

@ -25,9 +25,23 @@ import (
// Regexp definitions // Regexp definitions
var ( var (
keyMatchRegex = regexp.MustCompile(`\"(\w+)\":`) keyMatchRegex = regexp.MustCompile(`\"(\w+)\":`)
nullEnableBoolRegex = regexp.MustCompile(`\"(enable\w+)\":null`)
) )
type NullBoolJSONMarshaller struct {
Wrapped json.Marshaler
}
func (c NullBoolJSONMarshaller) MarshalJSON() ([]byte, error) {
b, err := c.Wrapped.MarshalJSON()
if err != nil {
return nil, err
}
i := bytes.Index(b, []byte("enableDefault"))
return nullEnableBoolRegex.ReplaceAll(b, []byte(`"$1": false`)), nil
}
// Code adapted from https://gist.github.com/piersy/b9934790a8892db1a603820c0c23e4a7 // Code adapted from https://gist.github.com/piersy/b9934790a8892db1a603820c0c23e4a7
type LowerCaseCamelJSONMarshaller struct { type LowerCaseCamelJSONMarshaller struct {
Value any Value any