mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-25 22:00:58 +02:00
committed by
Bjørn Erik Pedersen
parent
a3af4fe46e
commit
86e8dd62f0
@@ -19,6 +19,7 @@ import (
|
||||
"errors"
|
||||
"strings"
|
||||
|
||||
"github.com/chaseadamsio/goorgeous"
|
||||
toml "github.com/pelletier/go-toml"
|
||||
|
||||
"gopkg.in/yaml.v2"
|
||||
@@ -154,6 +155,8 @@ func DetectFrontMatter(mark rune) (f *frontmatterType) {
|
||||
return &frontmatterType{[]byte(TOMLDelim), []byte(TOMLDelim), HandleTOMLMetaData, false}
|
||||
case '{':
|
||||
return &frontmatterType{[]byte{'{'}, []byte{'}'}, HandleJSONMetaData, true}
|
||||
case '#':
|
||||
return &frontmatterType{[]byte("#+"), []byte("\n"), HandleOrgMetaData, false}
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
@@ -189,3 +192,7 @@ func HandleJSONMetaData(datum []byte) (interface{}, error) {
|
||||
err := json.Unmarshal(datum, &f)
|
||||
return f, err
|
||||
}
|
||||
|
||||
func HandleOrgMetaData(datum []byte) (interface{}, error) {
|
||||
return goorgeous.OrgHeaders(datum)
|
||||
}
|
||||
|
@@ -21,6 +21,8 @@ import (
|
||||
"regexp"
|
||||
"strings"
|
||||
"unicode"
|
||||
|
||||
"github.com/chaseadamsio/goorgeous"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -91,9 +93,11 @@ func (p *page) Metadata() (meta interface{}, err error) {
|
||||
|
||||
if len(frontmatter) != 0 {
|
||||
fm := DetectFrontMatter(rune(frontmatter[0]))
|
||||
meta, err = fm.Parse(frontmatter)
|
||||
if err != nil {
|
||||
return
|
||||
if fm != nil {
|
||||
meta, err = fm.Parse(frontmatter)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
return
|
||||
@@ -129,6 +133,12 @@ func ReadFrom(r io.Reader) (p Page, err error) {
|
||||
return nil, err
|
||||
}
|
||||
newp.frontmatter = fm
|
||||
} else if newp.render && goorgeous.IsKeyword(firstLine) {
|
||||
fm, err := goorgeous.ExtractOrgHeaders(reader)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
newp.frontmatter = fm
|
||||
}
|
||||
|
||||
content, err := extractContent(reader)
|
||||
|
Reference in New Issue
Block a user