From 8e4a992dbd40641e3e0bb76f1e81db0e49bc3147 Mon Sep 17 00:00:00 2001 From: Niklas Fasching Date: Tue, 20 Aug 2024 15:56:53 +0200 Subject: [PATCH] Parse switches in code block params There's has a special case for parameters that start with `-` and come directly after the language. See [1] [1] https://orgmode.org/manual/Literal-Examples.html#FOOT117 --- org/block.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/org/block.go b/org/block.go index 6907eaa..92469f6 100644 --- a/org/block.go +++ b/org/block.go @@ -157,7 +157,15 @@ func splitParameters(s string) []string { parameters, parts := []string{}, strings.Split(s, " :") lang, rest := strings.TrimSpace(parts[0]), parts[1:] if lang != "" { - parameters = append(parameters, lang) + xs := strings.Fields(lang) + parameters = append(parameters, xs[0]) + for i := 1; i < len(xs); i++ { + k, v := xs[i], "" + if i+1 < len(xs) && xs[i+1][0] != '-' { + v, i = xs[i+1], i+1 + } + parameters = append(parameters, k, v) + } } for _, p := range rest { kv := strings.SplitN(p+" ", " ", 2)