summaryrefslogtreecommitdiffstats
path: root/markup
diff options
context:
space:
mode:
Diffstat (limited to 'markup')
-rw-r--r--markup/highlight/config.go9
-rw-r--r--markup/highlight/config_test.go17
2 files changed, 24 insertions, 2 deletions
diff --git a/markup/highlight/config.go b/markup/highlight/config.go
index 9013dd072..b1f6d4603 100644
--- a/markup/highlight/config.go
+++ b/markup/highlight/config.go
@@ -198,7 +198,7 @@ func parseHightlightOptions(in string) (map[string]any, error) {
for _, v := range strings.Split(in, ",") {
keyVal := strings.Split(v, "=")
- key := strings.ToLower(strings.Trim(keyVal[0], " "))
+ key := strings.Trim(keyVal[0], " ")
if len(keyVal) != 2 {
return opts, fmt.Errorf("invalid Highlight option: %s", key)
}
@@ -216,6 +216,12 @@ func normalizeHighlightOptions(m map[string]any) {
return
}
+ // lowercase all keys
+ for k, v := range m {
+ delete(m, k)
+ m[strings.ToLower(k)] = v
+ }
+
baseLineNumber := 1
if v, ok := m[linosStartKey]; ok {
baseLineNumber = cast.ToInt(v)
@@ -232,7 +238,6 @@ func normalizeHighlightOptions(m map[string]any) {
if vs, ok := v.(string); ok {
m[k] = vs != "false"
}
-
case hlLinesKey:
if hlRanges, ok := v.([][2]int); ok {
for i := range hlRanges {
diff --git a/markup/highlight/config_test.go b/markup/highlight/config_test.go
index ab92ecf36..23da29ab6 100644
--- a/markup/highlight/config_test.go
+++ b/markup/highlight/config_test.go
@@ -53,4 +53,21 @@ func TestConfig(t *testing.T) {
c.Assert(cfg.LineNoStart, qt.Equals, 32)
c.Assert(cfg.Hl_Lines, qt.Equals, "3-8 10-20")
})
+
+ c.Run("applyOptionsFromMap", func(c *qt.C) {
+ cfg := DefaultConfig
+ err := applyOptionsFromMap(map[string]any{
+ "noclasses": true,
+ "lineNos": "inline", // mixed case key, should work after normalization
+ "linenostart": 32,
+ "hl_lines": "3-8 10-20",
+ }, &cfg)
+
+ c.Assert(err, qt.IsNil)
+ c.Assert(cfg.NoClasses, qt.Equals, true)
+ c.Assert(cfg.LineNos, qt.Equals, true)
+ c.Assert(cfg.LineNumbersInTable, qt.Equals, false)
+ c.Assert(cfg.LineNoStart, qt.Equals, 32)
+ c.Assert(cfg.Hl_Lines, qt.Equals, "3-8 10-20")
+ })
}