// Package front provides YAML frontmatter unmarshalling. package front import ( "bytes" "gopkg.in/yaml.v2" ) // Delimiter. var delim = []byte("---") // Unmarshal parses YAML frontmatter and returns the content. When no // frontmatter delimiters are present the original content is returned. func Unmarshal(b []byte, v interface{}) (content []byte, err error) { if !bytes.HasPrefix(b, delim) { return b, nil } parts := bytes.SplitN(b, delim, 3) content = parts[2] err = yaml.Unmarshal(parts[1], v) return }