package template import ( "fmt" "strings" ) func parseShortTemplate(input Slice) (Block, error) { split := strings.Split(cleanTemplate(input), "|") if len(split) < 1 { return Block{}, fmt.Errorf("invalid short template") } block := Block{ Type: DataBlock, Path: strings.TrimSpace(split[0]), Codec: CodecText, content: input, } if len(split) > 1 { for option := range strings.SplitSeq(split[1], ",") { switch strings.TrimSpace(option) { case "number": block.Codec = CodecNumber case "text": block.Codec = CodecText case "hashtags": block.Codec = CodecHashtags case "optional": block.Optional = true default: return block, fmt.Errorf("unknown codec option: %s", option) } } } return block, nil }