From ba3c501ec516e1cc58870708a83874b10fc4584a Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Thu, 23 Jul 2026 21:25:27 +0200 Subject: config,web: web_versions — which version checkboxes start toggled on in lectio-web MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/config/config.go | 7 +++++++ internal/config/config.toml | 1 + internal/config/config_test.go | 3 +++ internal/web/server.go | 3 +++ 4 files changed, 14 insertions(+) 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} } -- cgit v1.3