diff --git a/assets/assets.go b/assets/assets.go new file mode 100644 index 0000000..3b6dc84 --- /dev/null +++ b/assets/assets.go @@ -0,0 +1,23 @@ +package assets + +import ( + "github.com/aerogo/manifest" + "github.com/konnakanji/konnakanji/components/css" + "github.com/konnakanji/konnakanji/components/js" +) + +var ( + Manifest *manifest.Manifest + JS string + CSS string +) + +// Load loads the website assets. +func Load() error { + JS = js.Bundle() + CSS = css.Bundle() + + var err error + Manifest, err = manifest.FromFile("manifest.json") + return err +} diff --git a/config.json b/config.json index db39324..fb1da3e 100644 --- a/config.json +++ b/config.json @@ -21,37 +21,6 @@ "/scripts", "/styles" ], - "manifest": { - "name": "Konna Kanji", - "short_name": "Konna Kanji", - "start_url": "/", - "display": "standalone", - "lang": "en", - "theme_color": "#1f1f1f", - "background_color": "#f5f5f5", - "icons": [ - { - "src": "images/brand/512.png", - "sizes": "512x512", - "type": "image/png" - }, - { - "src": "images/brand/248.png", - "sizes": "248x248", - "type": "image/png" - }, - { - "src": "images/brand/192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "images/brand/144.png", - "sizes": "144x144", - "type": "image/png" - } - ] - }, "ports": { "http": 4000, "https": 4001 diff --git a/go.mod b/go.mod index 2c7b938..4e9bb24 100644 --- a/go.mod +++ b/go.mod @@ -4,6 +4,7 @@ go 1.13 require ( github.com/aerogo/aero v1.2.1 + github.com/aerogo/manifest v0.1.4 github.com/akyoto/color v1.8.4 github.com/mattn/go-colorable v0.1.2 // indirect github.com/stretchr/testify v1.3.0 diff --git a/go.sum b/go.sum index e6c29cb..fc00432 100644 --- a/go.sum +++ b/go.sum @@ -17,6 +17,8 @@ github.com/aerogo/linter-performance v1.0.1 h1:/1Hak+7sxpO2AkjdMVcpkyurmA4YD77ED github.com/aerogo/linter-performance v1.0.1/go.mod h1:3ZXxPgQ0cEo0x6DCGZwXHrwKNYK86XvB5QRJR9s7Z6I= github.com/aerogo/linter-performance v1.0.3 h1:pYsmUd8jp6CVrFx+YNo9Gfdf222CKG2gCVjp8cljZNY= github.com/aerogo/linter-performance v1.0.3/go.mod h1:po6XSSbSgR30lazzqSRGV++a2omxYr2qjqFvcvUCH40= +github.com/aerogo/manifest v0.1.4 h1:JGRMJAANtgzhygMCMov6WgIRkiVuMgP3a+ossf//TJU= +github.com/aerogo/manifest v0.1.4/go.mod h1:3SvBzx0rCDNQ+C779aEj5ZyP0YWwdGPeEzsPM3VIOzg= github.com/aerogo/session v0.1.2 h1:f0X3YJQJcFhtmw47U60jdSsH18/T51SkhkhAuXwnYI8= github.com/aerogo/session v0.1.2/go.mod h1:A4S5dvAhpm+DRdQbno5Rn4Jvj0UVGJmOUKQXataNIDg= github.com/aerogo/session v0.1.4 h1:4OgQyUm3wxSsjNRReZhYdHX8X5lXnFp1W+M3EXr4a3E= diff --git a/layout/layout.pixy b/layout/layout.pixy index 4d5a306..f9ebee2 100644 --- a/layout/layout.pixy +++ b/layout/layout.pixy @@ -8,7 +8,7 @@ component Layout(ctx *aero.Context) title= ctx.App.Config.Title meta(name="viewport", content="width=device-width, initial-scale=1, user-scalable=no") - meta(name="theme-color", content=ctx.App.Config.Manifest.ThemeColor) + meta(name="theme-color", content=assets.Manifest.ThemeColor) meta(name="description", content="Learn Japanese Kanji with vocabulary lists based on various topics.") body app-view(loading="true") diff --git a/main.go b/main.go index 4468f0c..201e61e 100644 --- a/main.go +++ b/main.go @@ -4,9 +4,8 @@ import ( "strings" "github.com/aerogo/aero" + "github.com/konnakanji/konnakanji/assets" "github.com/konnakanji/konnakanji/components" - "github.com/konnakanji/konnakanji/components/css" - "github.com/konnakanji/konnakanji/components/js" ) var mainApp = aero.New() @@ -17,6 +16,7 @@ func main() { func configure(app *aero.Application) *aero.Application { configureHTTPS(app) + assets.Load() appCode := func(ctx *aero.Context) string { return ctx.HTML(components.Layout(ctx)) @@ -26,15 +26,15 @@ func configure(app *aero.Application) *aero.Application { app.Get("/test/*name", appCode) app.Get("/scripts", func(ctx *aero.Context) string { - return ctx.JavaScript(js.Bundle()) + return ctx.JavaScript(assets.JS) }) app.Get("/styles", func(ctx *aero.Context) string { - return ctx.CSS(css.Bundle()) + return ctx.CSS(assets.CSS) }) app.Get("/manifest.json", func(ctx *aero.Context) string { - return ctx.JSON(app.Config.Manifest) + return ctx.JSON(assets.Manifest) }) app.Get("/words/*file", func(ctx *aero.Context) string { diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..bf1e8ea --- /dev/null +++ b/manifest.json @@ -0,0 +1,31 @@ +{ + "name": "Konna Kanji", + "short_name": "Konna Kanji", + "start_url": "/", + "display": "standalone", + "lang": "en", + "theme_color": "#1f1f1f", + "background_color": "#f5f5f5", + "icons": [ + { + "src": "images/brand/512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "images/brand/248.png", + "sizes": "248x248", + "type": "image/png" + }, + { + "src": "images/brand/192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "images/brand/144.png", + "sizes": "144x144", + "type": "image/png" + } + ] +} \ No newline at end of file