🗃️ Support DefaultLanguage property in FileSystem Site repo
This commit is contained in:
parent
ae9f1cae4a
commit
6eafdd4b86
|
@ -16,11 +16,12 @@ import (
|
|||
|
||||
type (
|
||||
Site struct {
|
||||
Title string `yaml:"title"`
|
||||
TimeZone TimeZone `yaml:"timeZone"`
|
||||
BaseURL URL `yaml:"baseUrl"`
|
||||
Params map[string]any `yaml:",inline"`
|
||||
Content []byte `yaml:"-"`
|
||||
Title string `yaml:"title"`
|
||||
TimeZone TimeZone `yaml:"timeZone"`
|
||||
DefaultLanguage Language `yaml:"defaultLanguage"`
|
||||
BaseURL URL `yaml:"baseUrl"`
|
||||
Params map[string]any `yaml:",inline"`
|
||||
Content []byte `yaml:"-"`
|
||||
}
|
||||
|
||||
TimeZone struct {
|
||||
|
@ -31,6 +32,10 @@ type (
|
|||
*url.URL `yaml:"-"`
|
||||
}
|
||||
|
||||
Language struct {
|
||||
domain.Language `yaml:"-"`
|
||||
}
|
||||
|
||||
fileSystemSiteRepository struct {
|
||||
dir fs.FS
|
||||
}
|
||||
|
@ -66,13 +71,14 @@ func (repo *fileSystemSiteRepository) Get(ctx context.Context, lang domain.Langu
|
|||
}
|
||||
|
||||
return &domain.Site{
|
||||
File: domain.NewFile(target),
|
||||
Language: lang,
|
||||
Title: data.Title,
|
||||
BaseURL: data.BaseURL.URL,
|
||||
TimeZone: data.TimeZone.Location,
|
||||
Params: data.Params,
|
||||
Languages: make([]domain.Language, 0),
|
||||
File: domain.NewFile(target),
|
||||
DefaultLanguage: data.DefaultLanguage.Language,
|
||||
Language: lang,
|
||||
Title: data.Title,
|
||||
BaseURL: data.BaseURL.URL,
|
||||
TimeZone: data.TimeZone.Location,
|
||||
Params: data.Params,
|
||||
Languages: make([]domain.Language, 0),
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
@ -124,6 +130,24 @@ func (u URL) MarshalYAML() (any, error) {
|
|||
return u.URL.String(), nil
|
||||
}
|
||||
|
||||
func (l *Language) UnmarshalYAML(value *yaml.Node) error {
|
||||
if value.IsZero() {
|
||||
return nil
|
||||
}
|
||||
|
||||
l.Language = domain.NewLanguage(value.Value)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (l Language) MarshalYAML() (any, error) {
|
||||
if l.Language == domain.LanguageUnd {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
return l.Language.Lang(), nil
|
||||
}
|
||||
|
||||
func NewSite() *Site {
|
||||
return &Site{
|
||||
Params: make(map[string]any),
|
||||
|
|
|
@ -64,7 +64,7 @@ func TestGet(t *testing.T) {
|
|||
switch p.String() {
|
||||
default:
|
||||
return false
|
||||
case "File", "Language":
|
||||
case "File", "Language", "DefaultLanguage":
|
||||
return true
|
||||
}
|
||||
}, cmp.Ignore())); diff != "" {
|
||||
|
|
Loading…
Reference in New Issue