From 93849d289bf7a4a6a3c4154a9212f5dfe76c383b Mon Sep 17 00:00:00 2001 From: Jan-Lukas Else Date: Sun, 23 May 2021 10:09:41 +0200 Subject: [PATCH] Use module for template strings --- go.mod | 3 ++- go.sum | 6 +++-- render.go | 2 +- templateStrings.go | 61 ++++++---------------------------------------- 4 files changed, 15 insertions(+), 57 deletions(-) diff --git a/go.mod b/go.mod index e954d00..1af8412 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,8 @@ module git.jlel.se/jlelse/GoBlog go 1.16 require ( - git.jlel.se/jlelse/goldmark-mark v0.0.0-20210522161410-1a4509a3e844 + git.jlel.se/jlelse/goldmark-mark v0.0.0-20210522162520-9788c89266a4 + git.jlel.se/jlelse/template-strings v0.0.0-20210523080439-57437f8d23ee github.com/PuerkitoBio/goquery v1.6.1 github.com/andybalholm/cascadia v1.2.0 // indirect github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de diff --git a/go.sum b/go.sum index e43375a..c72bdc4 100644 --- a/go.sum +++ b/go.sum @@ -12,8 +12,10 @@ cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqCl cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -git.jlel.se/jlelse/goldmark-mark v0.0.0-20210522161410-1a4509a3e844 h1:fZ2a31wUVzEnhJAgz9jyoRWoSRTc1NgzB+y7grI4aJU= -git.jlel.se/jlelse/goldmark-mark v0.0.0-20210522161410-1a4509a3e844/go.mod h1:ZFhxwbX+afhgbzh5rpkSJUp6vIduNPtIGDrsWpIcHTE= +git.jlel.se/jlelse/goldmark-mark v0.0.0-20210522162520-9788c89266a4 h1:p3c/vCY6MUADNXWCYI/hsZ8ZEvN7LtvwHzK2B8Y6BSk= +git.jlel.se/jlelse/goldmark-mark v0.0.0-20210522162520-9788c89266a4/go.mod h1:ZFhxwbX+afhgbzh5rpkSJUp6vIduNPtIGDrsWpIcHTE= +git.jlel.se/jlelse/template-strings v0.0.0-20210523080439-57437f8d23ee h1:zun+B6UygGTYm+OBxK9eoPUHSd3M7AebIxXJyFyZzR4= +git.jlel.se/jlelse/template-strings v0.0.0-20210523080439-57437f8d23ee/go.mod h1:KA7sVmsYAMxpPUBdDSSzShP8+sKLM16wnpKVk8ltaA0= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= diff --git a/render.go b/render.go index c0ec927..8412b5f 100644 --- a/render.go +++ b/render.go @@ -121,7 +121,7 @@ func initRendering() error { }, "asset": assetFileName, "assetsri": assetSRI, - "string": getTemplateStringVariant, + "string": appTs.GetTemplateStringVariantFunc(), "include": func(templateName string, data ...interface{}) (template.HTML, error) { if len(data) == 0 || len(data) > 2 { return "", errors.New("wrong argument count") diff --git a/templateStrings.go b/templateStrings.go index d3e30ba..3949d7d 100644 --- a/templateStrings.go +++ b/templateStrings.go @@ -1,61 +1,16 @@ package main import ( - "os" - "path/filepath" - - "gopkg.in/yaml.v3" + ts "git.jlel.se/jlelse/template-strings" ) -const stringsDir = "templates/strings" -const defaultStrings = "default" -const variantFileExt = ".yaml" +var appTs *ts.TemplateStrings -var templateStrings map[string]map[string]string - -func initTemplateStrings() error { - templateStrings = map[string]map[string]string{} - variants := []string{defaultStrings} - for _, blog := range appConfig.Blogs { - variants = append(variants, blog.Lang) +func initTemplateStrings() (err error) { + var blogLangs []string + for _, b := range appConfig.Blogs { + blogLangs = append(blogLangs, b.Lang) } - for _, variant := range variants { - variantStrings := map[string]string{} - f, err := os.Open(filepath.Join(stringsDir, variant+variantFileExt)) - if err != nil { - if os.IsNotExist(err) { - continue - } - return err - } - err = yaml.NewDecoder(f).Decode(variantStrings) - if err != nil { - return err - } - templateStrings[variant] = variantStrings - } - return nil -} - -func getTemplateStringVariant(input ...string) (result string) { - var lang, name string - if l := len(input); l == 1 { - lang = appConfig.Blogs[appConfig.DefaultBlog].Lang - name = input[0] - } else if l == 2 { - lang = input[0] - name = input[1] - } else { - // Wrong number of input strings - return "" - } - m, ok := templateStrings[lang] - if !ok { - m = templateStrings[defaultStrings] - } - result, ok = m[name] - if !ok { - result = templateStrings[defaultStrings][name] - } - return + appTs, err = ts.InitTemplateStrings("templates/strings", ".yaml", "default", blogLangs...) + return err }