nirvash/archetype/adapter.go

39 lines
723 B
Go

package archetype
import (
"time"
)
type BuildStatus struct {
Success bool
Message string
}
type Page struct {
Title string
Content string
Edited time.Time
Error string
}
type ConfigOption struct {
Name string
Type string
}
type Adapter interface {
Init(cfg *Config)
Name() string
EditableSlugs() bool
BuildOptions() []string
GetConfig() map[ConfigOption]string
SetConfig(map[ConfigOption]string) error
ListPages() map[string]string
GetPage(string) Page
FormatPage(string) string
FormattingHelp() string
CreatePage(slug, title, content string) error
SavePage(oldSlug, newSlug, title, content string) error
DeletePage(slug string) error
Build(buildOptions map[string][]string) BuildStatus
}