Diffstat (limited to 'internal/frontmatter')
| -rw-r--r-- | internal/frontmatter/parser.go | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/internal/frontmatter/parser.go b/internal/frontmatter/parser.go deleted file mode 100644 index 942760c..0000000 --- a/internal/frontmatter/parser.go +++ /dev/null @@ -1,43 +0,0 @@ -package frontmatter - -import ( - "bytes" - "fmt" - "time" - - "gopkg.in/yaml.v3" -) - -type Metadata struct { - Title string `yaml:"title"` - ShortDescription string `yaml:"shortDescription"` - ActionDate string `yaml:"actionDate"` - PublishedTime time.Time `yaml:"publishedTime"` - Thumbnail string `yaml:"thumbnail"` - Tags []string `yaml:"tags"` - Geolocation string `yaml:"geolocation"` - Medley string `yaml:"medley"` - MedleyPart int `yaml:"medleyPart"` - ContentSettings map[string]string `yaml:"contentSettings"` -} - -func ParseFrontmatter(content []byte) (metadata *Metadata, markdown []byte, err error) { - if !bytes.HasPrefix(content, []byte("---\n")) { - return nil, content, nil - } - - end := bytes.Index(content[4:], []byte("\n---\n")) - if end == -1 { - return nil, content, nil - } - - yamlContent := content[4 : end+4] - markdownContent := content[end+9:] - - metadata = &Metadata{} - if err := yaml.Unmarshal([]byte(yamlContent), &metadata); err != nil { - return nil, nil, fmt.Errorf("failed to parse YAML frontmatter: %w", err) - } - - return metadata, markdownContent, nil -} |