From ed1fc6854a634f7fcff7d1a500c40e7502031ea7 Mon Sep 17 00:00:00 2001 From: "Gabriel A. Giovanini" Date: Sat, 1 Nov 2025 17:48:02 +0100 Subject: feat: Add option to configure dark/light themes --- pkg/config/config.go | 38 ++++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) (limited to 'pkg/config/config.go') diff --git a/pkg/config/config.go b/pkg/config/config.go index c00586b..ff969ec 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -39,6 +39,11 @@ type ( Public bool } + SyntaxHighlight struct { + Dark string + Light string + } + // configuration represents file configuration. // fields needs to be exported to cmp to work configuration struct { @@ -50,7 +55,7 @@ type ( Repositories []*GitRepositoryConfiguration RootReadme string Scans []*scan - SyntaxHighlight string + SyntaxHighlight SyntaxHighlight Hostname string } @@ -75,7 +80,7 @@ type ( removeSuffix bool repositories []*GitRepositoryConfiguration rootReadme string - syntaxHighlight string + syntaxHighlight SyntaxHighlight hostname string } ) @@ -129,7 +134,11 @@ func (c *ConfigurationRepository) GetOrderBy() OrderBy { } func (c *ConfigurationRepository) GetSyntaxHighlight() string { - return c.syntaxHighlight + return c.syntaxHighlight.Light +} + +func (c *ConfigurationRepository) GetSyntaxHighlightDark() string { + return c.syntaxHighlight.Dark } func (c *ConfigurationRepository) GetListenAddr() string { @@ -371,9 +380,26 @@ func setAESKey(block scfg.Block, listenAddr *string) error { return setString(scanDir, listenAddr) } -func setSyntaxHighlight(block scfg.Block, listenAddr *string) error { - scanDir := block.Get("syntax-highlight") - return setString(scanDir, listenAddr) +func setSyntaxHighlight(block scfg.Block, sh *SyntaxHighlight) error { + shDir := block.Get("syntax-highlight") + if shDir == nil { + return nil + } + + themes := shDir.Params + if len(themes) > 2 || len(themes) == 0 { + return errors.New("syntax-highlight must contains at most two params and at least one, light then dark theme name") + } + + sh.Light = themes[0] + if len(themes) > 1 { + sh.Dark = themes[1] + } else { + // if dark is not set use light + sh.Dark = sh.Light + } + + return nil } func setOrderby(block scfg.Block, orderBy *string) error { -- cgit v1.2.3