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
|
go 1.16
|
||||||
|
|
||||||
require (
|
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/PuerkitoBio/goquery v1.6.1
|
||||||
github.com/andybalholm/cascadia v1.2.0 // indirect
|
github.com/andybalholm/cascadia v1.2.0 // indirect
|
||||||
github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de
|
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/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
|
||||||
cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
|
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=
|
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-20210522162520-9788c89266a4 h1:p3c/vCY6MUADNXWCYI/hsZ8ZEvN7LtvwHzK2B8Y6BSk=
|
||||||
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/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 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
|
||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
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=
|
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,
|
"asset": assetFileName,
|
||||||
"assetsri": assetSRI,
|
"assetsri": assetSRI,
|
||||||
"string": getTemplateStringVariant,
|
"string": appTs.GetTemplateStringVariantFunc(),
|
||||||
"include": func(templateName string, data ...interface{}) (template.HTML, error) {
|
"include": func(templateName string, data ...interface{}) (template.HTML, error) {
|
||||||
if len(data) == 0 || len(data) > 2 {
|
if len(data) == 0 || len(data) > 2 {
|
||||||
return "", errors.New("wrong argument count")
|
return "", errors.New("wrong argument count")
|
||||||
|
|
|
@ -1,61 +1,16 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
ts "git.jlel.se/jlelse/template-strings"
|
||||||
"path/filepath"
|
|
||||||
|
|
||||||
"gopkg.in/yaml.v3"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const stringsDir = "templates/strings"
|
var appTs *ts.TemplateStrings
|
||||||
const defaultStrings = "default"
|
|
||||||
const variantFileExt = ".yaml"
|
|
||||||
|
|
||||||
var templateStrings map[string]map[string]string
|
func initTemplateStrings() (err error) {
|
||||||
|
var blogLangs []string
|
||||||
func initTemplateStrings() error {
|
for _, b := range appConfig.Blogs {
|
||||||
templateStrings = map[string]map[string]string{}
|
blogLangs = append(blogLangs, b.Lang)
|
||||||
variants := []string{defaultStrings}
|
|
||||||
for _, blog := range appConfig.Blogs {
|
|
||||||
variants = append(variants, blog.Lang)
|
|
||||||
}
|
}
|
||||||
for _, variant := range variants {
|
appTs, err = ts.InitTemplateStrings("templates/strings", ".yaml", "default", blogLangs...)
|
||||||
variantStrings := map[string]string{}
|
return err
|
||||||
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
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue