Browse Source

docs: Make null booleans falsy in the docs helper

pull/11954/head
Bjørn Erik Pedersen 2 years ago
parent
commit
51615440bf
Failed to extract signature
  1. 2
      commands/gen.go
  2. 4
      docs/data/docs.yaml
  3. 16
      parser/lowercase_camel_json.go

2
commands/gen.go

@ -195,7 +195,7 @@ url: %s
configProvider := func() docshelper.DocProvider {
conf := hugolib.DefaultConfig()
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}
}

4
docs/data/docs.yaml

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

16
parser/lowercase_camel_json.go

@ -25,9 +25,23 @@ import (
// Regexp definitions
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
type LowerCaseCamelJSONMarshaller struct {
Value any

Loading…
Cancel
Save