some updates

This commit is contained in:
Max Richter
2025-08-17 01:21:15 +02:00
parent cc8f967f07
commit 40b9be887d
7 changed files with 74 additions and 60 deletions

View File

@@ -1,7 +1,6 @@
package blocks
import (
"fmt"
"strings"
)
@@ -11,7 +10,7 @@ type TemplateType int
const (
InvalidTemplate TemplateType = iota
ShortTemplate
LongTemplate
ExtendedTemplate
)
// DetectTemplateType checks if the template is short or long.
@@ -36,36 +35,12 @@ func DetectTemplateType(tmpl string) TemplateType {
// }
if strings.Contains(trimmed, "\n") &&
(strings.Contains(trimmed, "path:") || strings.Contains(trimmed, "codec:")) {
return LongTemplate
return ExtendedTemplate
}
return InvalidTemplate
}
// CodecType represents the type of codec used to encode/render a value
type CodecType string
const (
CodecText CodecType = "text"
CodecNumber CodecType = "number"
CodecYaml CodecType = "yaml"
CodecList CodecType = "list"
)
func parseCodecType(input string) (CodecType, error) {
switch input {
case "number":
return CodecNumber, nil
case "yaml":
return CodecYaml, nil
case "list":
return CodecList, nil
case "text":
return CodecText, nil
}
return CodecText, fmt.Errorf("unknown codec: '%s'", input)
}
type BlockType string
const (
@@ -73,11 +48,18 @@ const (
MatchingBlock BlockType = "matching" // everything outside data blocks
)
type BlockField struct {
Path string
CodecType CodecType
Required bool
}
type TemplateBlock struct {
Type BlockType
Path string
Codec CodecType
Required bool
Fields []BlockField
content string
}