From 09979dcab01643349cee425b71fa3b4db24f8d60 Mon Sep 17 00:00:00 2001 From: Mitch Riedstra Date: Sun, 20 Sep 2020 20:56:53 -0400 Subject: Save the index in memory and only rebuild if cleared --- page/page.go | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'page/page.go') diff --git a/page/page.go b/page/page.go index 6e1d7d5..c5230c6 100644 --- a/page/page.go +++ b/page/page.go @@ -135,10 +135,17 @@ func (p Page) String() string { return fmt.Sprintf("Page: %s", p.Path) } +var pageIndex map[string]PageList + // Index returns a map of all pages below the current Page's Path seperated // into their respective tags If a Page has multiple tags it will be listed // under each func (p *Page) Index() (map[string]PageList, error) { + if pageIndex != nil { + return pageIndex, nil + } + fmt.Fprintln(os.Stderr, "Rebuilding index...") + out := make(map[string]PageList) var pageErr error @@ -173,5 +180,7 @@ func (p *Page) Index() (map[string]PageList, error) { return nil }) + pageIndex = out + return out, nil } -- cgit v1.2.3