aboutsummaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
Diffstat (limited to 'internal')
-rw-r--r--internal/config/config.go7
-rw-r--r--internal/config/config.toml1
-rw-r--r--internal/config/config_test.go3
-rw-r--r--internal/web/server.go3
4 files changed, 14 insertions, 0 deletions
diff --git a/internal/config/config.go b/internal/config/config.go
index ebe687f..e501cf8 100644
--- a/internal/config/config.go
+++ b/internal/config/config.go
@@ -65,6 +65,7 @@ type Config struct {
WebPort int `toml:"web_port"`
WebDisplay string `toml:"web_display"`
WebMono bool `toml:"web_mono"`
+ WebVersions []string `toml:"web_versions"`
Parts map[string]map[string]bool `toml:"parts"`
}
@@ -94,6 +95,7 @@ func Default() Config {
WebPort: 0,
WebDisplay: "horizontal",
WebMono: false,
+ WebVersions: nil,
Parts: nil,
}
}
@@ -185,5 +187,10 @@ func validate(cfg Config) error {
if !validVersions[cfg.DefaultVersion] {
return fmt.Errorf("config: invalid default_version %q (must be one of pl, wuj, vul, grb, drb)", cfg.DefaultVersion)
}
+ for _, v := range cfg.WebVersions {
+ if !validVersions[v] {
+ return fmt.Errorf("config: invalid version %q in web_versions (must be one of pl, wuj, vul, grb, drb)", v)
+ }
+ }
return nil
}
diff --git a/internal/config/config.toml b/internal/config/config.toml
index f89a458..3554435 100644
--- a/internal/config/config.toml
+++ b/internal/config/config.toml
@@ -10,6 +10,7 @@ web_theme = "transfiguration" # default lectio-web theme (built-in order
web_port = 0 # lectio-web port; 0 = try 1099, then any free port
web_display = "horizontal" # default lectio-web layout ("uklad"): "horizontal" (stacked), "vertical" (columns), "interlinear" (verse-by-verse)
web_mono = false # lectio-web: monospace reading face for any theme (also a top-bar "mono" toggle)
+web_versions = [] # lectio-web: which versions start toggled on, e.g. ["wuj", "vul"]; empty = just default_version
# Hide reading parts you don't want. Every part shows by default; a part is
# hidden only when you uncomment its line below (each is preset to false =
diff --git a/internal/config/config_test.go b/internal/config/config_test.go
index d2f3203..ff513ea 100644
--- a/internal/config/config_test.go
+++ b/internal/config/config_test.go
@@ -41,6 +41,9 @@ func TestWebDefaults(t *testing.T) {
if def.WebMono {
t.Errorf("WebMono default should be false")
}
+ if len(def.WebVersions) != 0 {
+ t.Errorf("WebVersions default should be empty, got %v", def.WebVersions)
+ }
if def.WebTheme != "transfiguration" {
t.Errorf("WebTheme default wrong: got %q, want %q", def.WebTheme, "transfiguration")
}
diff --git a/internal/web/server.go b/internal/web/server.go
index 8c8afc6..50bf45d 100644
--- a/internal/web/server.go
+++ b/internal/web/server.go
@@ -80,6 +80,9 @@ func requestVersions(cfg config.Config, r *http.Request) []string {
if vs, ok := r.URL.Query()["v"]; ok && len(vs) > 0 {
return vs
}
+ if len(cfg.WebVersions) > 0 {
+ return append([]string(nil), cfg.WebVersions...)
+ }
return []string{cfg.DefaultVersion}
}