Parse notes title and body

pull/6/head
Mickaël Menu 4 years ago
parent 6dc9a65d21
commit b78609269b
No known key found for this signature in database
GPG Key ID: 53D73664CD359895

@ -84,7 +84,9 @@ func metadata(path file.Path) (Metadata, error) {
return metadata, err
}
contentStr := string(content)
metadata.Body = contentStr
contentParts := Parse(contentStr)
metadata.Title = contentParts.Title
metadata.Body = contentParts.Body
metadata.WordCount = len(strings.Fields(contentStr))
metadata.Checksum = fmt.Sprintf("%x", sha256.Sum256(content))

@ -0,0 +1,26 @@
package note
import (
"regexp"
"strings"
)
type Content struct {
Title string
Body string
}
var contentRegex = regexp.MustCompile(`(?m)^#\s+(.+?)\s*$`)
func Parse(content string) Content {
var res Content
if match := contentRegex.FindStringSubmatchIndex(content); len(match) >= 4 {
res.Title = content[match[2]:match[3]]
res.Body = strings.TrimSpace(content[match[3]:])
} else {
res.Body = strings.TrimSpace(content)
}
return res
}
Loading…
Cancel
Save