You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
938 B
Go

package cabret
import (
"log"
)
func init() {
log.SetFlags(0)
}
const MatchResultKey = "MatchResult"
type MatchResult struct {
File string
Captures map[string]string
}
type Map map[string]any
type File struct {
Path string
Content
}
// MetadataOnly is a mime type representing an item that only holds metadata
const MetadataOnly = "metadata-only"
type Content struct {
// Type for known content formats is just the mime-type
Type string
// Data is the content of the file
Data []byte
// Metadata is any extra data of the file (e.g. yaml frontmatter) or injected by plugins
Metadata Map
}
type Operation interface {
Configure(options map[string]any) error
}
type Context struct {
Files []string
}
2 years ago
type ListOperation interface {
Operation
ProcessList(ctx *Context, items []Content) ([]Content, error)
2 years ago
}
type ItemOperation interface {
Operation
ProcessItem(ctx *Context, item Content) (*Content, error)
2 years ago
}