diff options
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/frontmatter/parser.go | 15 | ||||
| -rw-r--r-- | internal/storage/b2.go | 7 |
2 files changed, 13 insertions, 9 deletions
diff --git a/internal/frontmatter/parser.go b/internal/frontmatter/parser.go index 1a521c0..20512d9 100644 --- a/internal/frontmatter/parser.go +++ b/internal/frontmatter/parser.go @@ -1,8 +1,8 @@ package frontmatter import ( + "bytes" "fmt" - "regexp" "time" "gopkg.in/yaml.v3" @@ -16,18 +16,21 @@ type Metadata struct { Thumbnail string `yaml:"thumbnail"` Tags []string `yaml:"tags"` Geolocation string `yaml:"geolocation"` + Timezone string `yaml:"timezone"` } func ParseFrontmatter(content []byte) (metadata *Metadata, markdown []byte, err error) { - frontmatterRegex := regexp.MustCompile(`^---\s*\r?\n([\s\S]*?)\r?\n---\s*\r?\n([\s\S]*)$`) - matches := frontmatterRegex.FindSubmatch(content) + if !bytes.HasPrefix(content, []byte("---\n")) { + return nil, content, nil + } - if len(matches) != 3 { + end := bytes.Index(content[4:], []byte("\n---\n")) + if end == -1 { return nil, content, nil } - yamlContent := matches[1] - markdownContent := matches[2] + yamlContent := content[4 : end+4] + markdownContent := content[end+9:] metadata = &Metadata{} if err := yaml.Unmarshal([]byte(yamlContent), &metadata); err != nil { diff --git a/internal/storage/b2.go b/internal/storage/b2.go index 0c4b673..0d92707 100644 --- a/internal/storage/b2.go +++ b/internal/storage/b2.go @@ -60,9 +60,9 @@ func (sc *B2StorageClient) Scan() ([]string, error) { continue } - //if !strings.Contains(attrs.ContentType, "text/metadata") { - // continue - //} + if !strings.HasSuffix(obj.Name(), ".md") { + continue + } filePaths = append(filePaths, strings.TrimPrefix(obj.Name(), sc.prefix)) } @@ -125,6 +125,7 @@ func (sc *B2StorageClient) WriteMetadata(path string, metadata *frontmatter.Meta "thumbnail": metadata.Thumbnail, "tags": strings.Join(metadata.Tags, ","), "geolocation": metadata.Geolocation, + "timezone": metadata.Timezone, "metadata-last-update-sha1": oldAttrs.SHA1, }} |