Use cast library for Hugo import

This commit is contained in:
Jan-Lukas Else 2020-09-19 13:07:58 +02:00
parent 80b3b604c0
commit 21670a0ccc
2 changed files with 8 additions and 11 deletions

2
go.mod
View File

@ -28,7 +28,7 @@ require (
github.com/pkg/errors v0.9.1 // indirect github.com/pkg/errors v0.9.1 // indirect
github.com/smartystreets/assertions v1.2.0 // indirect github.com/smartystreets/assertions v1.2.0 // indirect
github.com/spf13/afero v1.4.0 // indirect github.com/spf13/afero v1.4.0 // indirect
github.com/spf13/cast v1.3.1 // indirect github.com/spf13/cast v1.3.1
github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/spf13/viper v1.7.1 github.com/spf13/viper v1.7.1
github.com/stretchr/testify v1.6.1 // indirect github.com/stretchr/testify v1.6.1 // indirect

17
hugo.go
View File

@ -3,6 +3,7 @@ package main
import ( import (
"errors" "errors"
"github.com/jeremywohl/flatten" "github.com/jeremywohl/flatten"
"github.com/spf13/cast"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
"strconv" "strconv"
"strings" "strings"
@ -33,12 +34,8 @@ func parseHugoFile(fileContent string, path string) (*Post, error) {
return nil, err return nil, err
} }
// Read dates // Read dates
if flat["date"] != nil { post.Published = cast.ToString(flat["date"])
post.Published = flat["date"].(string) post.Updated = cast.ToString(flat["lastmod"])
}
if flat["lastmod"] != nil {
post.Updated = flat["lastmod"].(string)
}
// Read parameters // Read parameters
for _, fm := range appConfig.Hugo.Frontmatter { for _, fm := range appConfig.Hugo.Frontmatter {
var values []string var values []string
@ -46,11 +43,11 @@ func parseHugoFile(fileContent string, path string) (*Post, error) {
if strings.HasPrefix(fk, fm.Meta) { if strings.HasPrefix(fk, fm.Meta) {
trimmed := strings.TrimPrefix(fk, fm.Meta) trimmed := strings.TrimPrefix(fk, fm.Meta)
if len(trimmed) == 0 { if len(trimmed) == 0 {
values = append(values, value.(string)) values = append(values, cast.ToString(value))
} else { } else {
trimmed = strings.TrimPrefix(trimmed, ".") trimmed = strings.TrimPrefix(trimmed, ".")
if _, e := strconv.Atoi(trimmed); e == nil { if _, e := strconv.Atoi(trimmed); e == nil {
values = append(values, value.(string)) values = append(values, cast.ToString(value))
} }
} }
} }
@ -65,11 +62,11 @@ func parseHugoFile(fileContent string, path string) (*Post, error) {
if strings.HasPrefix(fk, "aliases") { if strings.HasPrefix(fk, "aliases") {
trimmed := strings.TrimPrefix(fk, "aliases") trimmed := strings.TrimPrefix(fk, "aliases")
if len(trimmed) == 0 { if len(trimmed) == 0 {
aliases = append(aliases, value.(string)) aliases = append(aliases, cast.ToString(value))
} else { } else {
trimmed = strings.TrimPrefix(trimmed, ".") trimmed = strings.TrimPrefix(trimmed, ".")
if _, e := strconv.Atoi(trimmed); e == nil { if _, e := strconv.Atoi(trimmed); e == nil {
aliases = append(aliases, value.(string)) aliases = append(aliases, cast.ToString(value))
} }
} }
} }