mirror of https://github.com/jlelse/GoBlog
Use module for template strings
This commit is contained in:
parent
3858ffd9b8
commit
93849d289b
3
go.mod
3
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
|
||||
|
|
6
go.sum
6
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=
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue