aboutsummaryrefslogtreecommitdiffhomepage
path: root/generate.go
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <fred@miniflux.net>2018-07-07 11:00:39 -0700
committerGravatar Frédéric Guillot <fred@miniflux.net>2018-07-07 11:00:39 -0700
commitca30800e6a6b234e178baab06f794e56233a9de3 (patch)
treec3ea80c67939432916f8247651c76ea49c09eed0 /generate.go
parent459bb4531f92f8663afb6f36aa9be5b789bd591f (diff)
Pre-generate themes stylesheets at build time
Diffstat (limited to 'generate.go')
-rw-r--r--generate.go26
1 files changed, 14 insertions, 12 deletions
diff --git a/generate.go b/generate.go
index debc24e..48c9800 100644
--- a/generate.go
+++ b/generate.go
@@ -116,23 +116,20 @@ func generateJSBundle(bundleFile string, srcFiles []string) {
bundle.Write(bundleFile)
}
-func generateCSSBundle(bundleFile string, srcFiles []string) {
+func generateCSSBundle(bundleFile string, themes map[string][]string) {
bundle := NewBundle("static", "Stylesheets")
+ m := minify.New()
+ m.AddFunc("text/css", css.Minify)
- for _, srcFile := range srcFiles {
- data := readFile(srcFile)
- filename := stripExtension(basename(srcFile))
-
- m := minify.New()
- m.AddFunc("text/css", css.Minify)
-
- minifiedData, err := m.Bytes("text/css", data)
+ for theme, srcFiles := range themes {
+ data := concat(srcFiles)
+ minifiedData, err := m.String("text/css", data)
if err != nil {
panic(err)
}
- bundle.Files[filename] = string(minifiedData)
- bundle.Checksums[filename] = checksum(minifiedData)
+ bundle.Files[theme] = minifiedData
+ bundle.Checksums[theme] = checksum([]byte(minifiedData))
}
bundle.Write(bundleFile)
@@ -184,7 +181,12 @@ func main() {
"ui/static/js/bootstrap.js",
})
- generateCSSBundle("ui/static/css.go", glob("ui/static/css/*.css"))
+ generateCSSBundle("ui/static/css.go", map[string][]string{
+ "default": []string{"ui/static/css/common.css"},
+ "black": []string{"ui/static/css/common.css", "ui/static/css/black.css"},
+ "sansserif": []string{"ui/static/css/common.css", "ui/static/css/sansserif.css"},
+ })
+
generateBinaryBundle("ui/static/bin.go", glob("ui/static/bin/*"))
generateBundle("sql/sql.go", "sql", "SqlMap", glob("sql/*.sql"))