sorting content list on /author page by file modtime: working on issue #1
This commit is contained in:
+18
-3
@@ -7,7 +7,9 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
"git.stephensearles.com/stephen/acedoc"
|
"git.stephensearles.com/stephen/acedoc"
|
||||||
|
|
||||||
@@ -15,7 +17,11 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func (t tmplData) Content() ([]string, error) {
|
func (t tmplData) Content() ([]string, error) {
|
||||||
var files []string
|
type file struct {
|
||||||
|
name string
|
||||||
|
modtime time.Time
|
||||||
|
}
|
||||||
|
var files = []file{}
|
||||||
|
|
||||||
err := filepath.Walk(path.Join(t.Site.Root, "content"), func(name string, fi os.FileInfo, err error) error {
|
err := filepath.Walk(path.Join(t.Site.Root, "content"), func(name string, fi os.FileInfo, err error) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -31,16 +37,25 @@ func (t tmplData) Content() ([]string, error) {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
files = append(files, name)
|
files = append(files, file{name, fi.ModTime()})
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
|
||||||
|
sort.Slice(files, func(i, j int) bool {
|
||||||
|
return files[i].modtime.Before(files[j].modtime)
|
||||||
|
})
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return files, nil
|
var filenames []string
|
||||||
|
for _, file := range files {
|
||||||
|
filenames = append(filenames, file.name)
|
||||||
|
}
|
||||||
|
|
||||||
|
return filenames, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t tmplData) ContentTypes() ([]string, error) {
|
func (t tmplData) ContentTypes() ([]string, error) {
|
||||||
|
|||||||
Reference in New Issue
Block a user