Something went wrong. Try again.
A framework using Svelte to generate a website for one's TTRPG notes with buttons that activate Foundry commands
Something went wrong. Try again.
1.3 kB · 77 lines
Go
at go
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778package noteButtons
import ( "fmt" "strings")
func parseArgs(input string) (map[string]string, error) { args := make(map[string]string)
for len(input) > 0 { input = strings.TrimSpace(input)
if input == "" { break }
// Find the '=' eq := strings.IndexByte(input, '=')
if eq == -1 { return nil, fmt.Errorf("expected '='") }
key := strings.TrimSpace(input[:eq]) input = strings.TrimSpace(input[eq+1:])
if key == "" { return nil, fmt.Errorf("empty argument name") }
var value string
if strings.HasPrefix(input, `"`) { // Quote value input = input[1:]
end := strings.IndexByte(input, '"')
if end == -1 { return nil, fmt.Errorf("unterminated quoted value for %q", key) }
value = input[:end] input = input[end+1:] } else { // Unquoted value, consume until whitespace end := strings.IndexAny(input, " \t\r\n")
if end == -1 { value = input input = "" } else { value = input[:end] input = input[end:] } }
args[key] = value }
return args, nil}
func formatSkill(skill string) string { words := strings.Split(skill, "-")
for i, word := range words { words[i] = capitalize(word) }
return strings.Join(words, " ")}
func capitalize(s string) string { return strings.ToUpper(string(s[0])) + s[1:]}