Skip to content

Commit

Permalink
Refactor Org mode front matter: Introduce '#+KEY[]:' array notation
Browse files Browse the repository at this point in the history
Hugo requires some front matter values to be arrays (e.g. for taxonomies).
Org mode front matter syntax (`#+KEY: VALUE`) does however not support anything
but string values normally - which is why goorgeous hardcoded the values for
the keys tags, categories & aliases to be parsed as string arrays. This causes
problems with custom taxonomies.

A simple thing we can do instead is make keywords ending in '[]' be parsed as
string arrays.
  • Loading branch information
niklasfasching authored and bep committed Jun 8, 2019
1 parent b6867bf commit fad183c
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion parser/metadecoders/decoder.go
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,10 @@ func (d Decoder) unmarshalORG(data []byte, v interface{}) error {
frontMatter := make(map[string]interface{}, len(document.BufferSettings))
for k, v := range document.BufferSettings {
k = strings.ToLower(k)
if k == "tags" || k == "categories" || k == "aliases" {
if strings.HasSuffix(k, "[]") {
frontMatter[k[:len(k)-2]] = strings.Fields(v)
} else if k == "tags" || k == "categories" || k == "aliases" {
jww.WARN.Printf("Please use '#+%s[]:' notation, automatic conversion is deprecated.", k)
frontMatter[k] = strings.Fields(v)
} else {
frontMatter[k] = v
Expand Down

0 comments on commit fad183c

Please sign in to comment.