ensure reasonable ordering of declarations in source
1 file changed, 92 insertions(+), 93 deletions(-)
changed files
M domain/content/posts.go → domain/content/posts.go
@@ -22,11 +22,6 @@ "github.com/adrg/frontmatter" mapset "github.com/deckarep/golang-set/v2" ) -var SkipList = []string{ - "LICENSE", - "taplo.toml", -} - type PostMatter struct { Date time.Time Description string@@ -62,72 +57,21 @@ StaticFiles []string Tags mapset.Set[string] } -var postURLReplacer = strings.NewReplacer( - "index.md", "", - ".md", "/", -) - -func (cc *Collection) GetPost(filename string) (*Post, error) { - fp := filepath.Join(cc.config.Root, filename) - url := path.Join("/", postURLReplacer.Replace(filename)) + "/" - cs, err := cc.config.Repo.GetFileLog(filename) - if err != nil { - return nil, fault.Wrap( - err, - fmsg.With(fmt.Sprintf("could not get commit log for file %s", filename)), - ) +var ( + postURLReplacer = strings.NewReplacer( + "index.md", "", + ".md", "/", + ) + pageURLReplacer = strings.NewReplacer( + "index.md", "", + ".md", "", + ) + SkipList = []string{ + "LICENSE", + "taplo.toml", } - post := &Post{ - Input: filename, - Basename: filepath.Base(url), - URL: url, - PostMatter: &PostMatter{}, - Commits: cs, - } - - err = parse(fp, post) - if err != nil { - return nil, err - } - - return post, nil -} - -var pageURLReplacer = strings.NewReplacer( - "index.md", "", - ".md", "", ) -func (cc *Collection) GetPage(filename string) (*Post, error) { - fp := filepath.Join(cc.config.Root, filename) - url := path.Join("/", pageURLReplacer.Replace(filename)) - cs, err := cc.config.Repo.GetFileLog(filename) - if err != nil { - return nil, fault.Wrap( - err, - fmsg.With(fmt.Sprintf("could not get commit log for file %s", filename)), - ) - } - post := &Post{ - Input: filename, - Basename: filepath.Base(url), - URL: url, - PostMatter: &PostMatter{}, - Commits: cs, - } - - err = parse(fp, post) - if err != nil { - return nil, err - } - - if post.Date.IsZero() && len(cs) > 1 { - post.Date = cs[0].Date - } - - return post, nil -} - func parse(fp string, post *Post) error { content, err := os.Open(fp) if err != nil {@@ -158,6 +102,40 @@ return buf.String(), nil } +func NewContentCollection(config *Config, log *log.Logger) (*Collection, error) { + cc := &Collection{ + Posts: []*Post{}, + Tags: mapset.NewSet[string](), + Pages: []*Post{}, + StaticFiles: []string{}, + config: config, + log: log, + } + + err := filepath.WalkDir(config.Root, func(filename string, d fs.DirEntry, err error) error { + if err != nil { + return err + } + filename, err = filepath.Rel(config.Root, filename) + if err != nil { + return err + } + + log.Debug("walking", "filename", filename) + + return cc.HandleFile(filename, d) + }) + + slices.SortFunc(cc.Posts, func(a, b *Post) int { + return b.Date.Compare(a.Date) + }) + + if err != nil { + return nil, fault.Wrap(err, fmsg.With("could not walk directory")) + } + + return cc, nil +} func (cc *Collection) HandleFile(filename string, d fs.DirEntry) error { switch { case strings.HasPrefix(filename, ".") &&@@ -195,37 +173,58 @@ return nil } -func NewContentCollection(config *Config, log *log.Logger) (*Collection, error) { - cc := &Collection{ - Posts: []*Post{}, - Tags: mapset.NewSet[string](), - Pages: []*Post{}, - StaticFiles: []string{}, - config: config, - log: log, +func (cc *Collection) GetPost(filename string) (*Post, error) { + fp := filepath.Join(cc.config.Root, filename) + url := path.Join("/", postURLReplacer.Replace(filename)) + "/" + cs, err := cc.config.Repo.GetFileLog(filename) + if err != nil { + return nil, fault.Wrap( + err, + fmsg.With(fmt.Sprintf("could not get commit log for file %s", filename)), + ) } - - err := filepath.WalkDir(config.Root, func(filename string, d fs.DirEntry, err error) error { - if err != nil { - return err - } - filename, err = filepath.Rel(config.Root, filename) - if err != nil { - return err - } + post := &Post{ + Input: filename, + Basename: filepath.Base(url), + URL: url, + PostMatter: &PostMatter{}, + Commits: cs, + } - log.Debug("walking", "filename", filename) + err = parse(fp, post) + if err != nil { + return nil, err + } - return cc.HandleFile(filename, d) - }) + return post, nil +} - slices.SortFunc(cc.Posts, func(a, b *Post) int { - return b.Date.Compare(a.Date) - }) +func (cc *Collection) GetPage(filename string) (*Post, error) { + fp := filepath.Join(cc.config.Root, filename) + url := path.Join("/", pageURLReplacer.Replace(filename)) + cs, err := cc.config.Repo.GetFileLog(filename) + if err != nil { + return nil, fault.Wrap( + err, + fmsg.With(fmt.Sprintf("could not get commit log for file %s", filename)), + ) + } + post := &Post{ + Input: filename, + Basename: filepath.Base(url), + URL: url, + PostMatter: &PostMatter{}, + Commits: cs, + } + err = parse(fp, post) if err != nil { - return nil, fault.Wrap(err, fmsg.With("could not walk directory")) + return nil, err + } + + if post.Date.IsZero() && len(cs) > 1 { + post.Date = cs[0].Date } - return cc, nil + return post, nil }