yao/sui/core/interfaces.go
2023-09-28 10:11:01 +08:00

55 lines
1.1 KiB
Go

package core
// SUIs the loaded SUI instances
var SUIs = map[string]SUI{}
// SUI is the interface for the SUI
type SUI interface {
GetTemplates() ([]ITemplate, error)
GetTemplate(name string) (ITemplate, error)
UploadTemplate(src string, dst string) (ITemplate, error)
}
// ITemplate is the interface for the ITemplate
type ITemplate interface {
Pages() ([]IPage, error)
Page(route string) (IPage, error)
Blocks() ([]IBlock, error)
Block(name string) (IBlock, error)
Components() ([]IComponent, error)
Component(name string) (IComponent, error)
Assets() []string
Locales() []SelectOption
Themes() []SelectOption
}
// IPage is the interface for the page
type IPage interface {
Load() error
EditorRender(request *Request) (*ResponseEditor, error)
// Render()
// Html()
// Script()
// Style()
// Data()
// Compile()
// Locale()
}
// IBlock is the interface for the block
type IBlock interface {
Compile() (string, error)
Load() error
}
// IComponent is the interface for the component
type IComponent interface {
Compile() (string, error)
Load() error
}