Fix #36 and reduce code repetitions
parent
b15b9b8b08
commit
f66f5af562
|
@ -42,18 +42,21 @@ func rawToPretty(config interface{}, parent *frontmatter) interface{} {
|
|||
arrays := []*frontmatter{}
|
||||
fields := []*frontmatter{}
|
||||
|
||||
if parent.Type == "array" {
|
||||
for index, element := range config.([]interface{}) {
|
||||
if utils.IsMap(element) {
|
||||
objects = append(objects, handleObjects(element, parent, string(index)))
|
||||
} else if utils.IsSlice(element) {
|
||||
arrays = append(arrays, handleArrays(element, parent, string(index)))
|
||||
cnf := map[string]interface{}{}
|
||||
|
||||
if reflect.TypeOf(config) == reflect.TypeOf(map[interface{}]interface{}{}) {
|
||||
for key, value := range config.(map[interface{}]interface{}) {
|
||||
cnf[key.(string)] = value
|
||||
}
|
||||
} else if reflect.TypeOf(config) == reflect.TypeOf([]interface{}{}) {
|
||||
for key, value := range config.([]interface{}) {
|
||||
cnf[string(key)] = value
|
||||
}
|
||||
} else {
|
||||
fields = append(fields, handleFlatValues(element, parent, string(index)))
|
||||
cnf = config.(map[string]interface{})
|
||||
}
|
||||
}
|
||||
} else if parent.Type == "object" {
|
||||
for name, element := range config.(map[string]interface{}) {
|
||||
|
||||
for name, element := range cnf {
|
||||
if utils.IsMap(element) {
|
||||
objects = append(objects, handleObjects(element, parent, name))
|
||||
} else if utils.IsSlice(element) {
|
||||
|
@ -62,9 +65,6 @@ func rawToPretty(config interface{}, parent *frontmatter) interface{} {
|
|||
fields = append(fields, handleFlatValues(element, parent, name))
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log.Panic("Parent type not allowed.")
|
||||
}
|
||||
|
||||
sort.Sort(sortByTitle(objects))
|
||||
sort.Sort(sortByTitle(arrays))
|
||||
|
|
Loading…
Reference in New Issue