feat: public API, SEO and existing surfaces

This commit is contained in:
Florian Sylvain committed 2026-11-03 03:58:10 +01:00
1 parent 45fbbc33b1
commit c390fcfe8d
103 files changed
+4476 -231

No files matched your search

@@ -9,6 +9,8 @@ import (
var socialLocalePattern = regexp.MustCompile(`^([A-Za-z]{2,3})_([A-Za-z]{2})$`)
var regionPattern = regexp.MustCompile(`^[A-Za-z]{2}$`)
func NormalizeSocialLocale(tag string, social *string) (*string, error) {
if social == nil {
return nil, nil
@@ -25,25 +27,38 @@ func NormalizeSocialLocale(tag string, social *string) (*string, error) {
return &normalized, nil
}
func SocialLocaleState(row Row) string {
func SocialLocaleState(row Row, siteLocale *string) string {
if row.SocialLocale != nil {
return SocialLocaleSet
}
if _, region, found := strings.Cut(row.Tag, "-"); found && region != "" {
if EffectiveSocialLocale(row, siteLocale) != nil {
return SocialLocaleDerived
}
return SocialLocaleNotSet
}
func EffectiveSocialLocale(row Row) *string {
switch SocialLocaleState(row) {
case SocialLocaleSet:
func EffectiveSocialLocale(row Row, siteLocale *string) *string {
if row.SocialLocale != nil {
return row.SocialLocale
case SocialLocaleDerived:
}
if _, region, found := strings.Cut(row.Tag, "-"); found && region != "" {
derived := strings.Replace(row.Tag, "-", "_", 1)
return &derived
}
return nil
return borrowedSocialLocale(row.Tag, siteLocale)
}
func borrowedSocialLocale(tag string, siteLocale *string) *string {
if siteLocale == nil {
return nil
}
tagLanguage, _, _ := strings.Cut(tag, "-")
parts := strings.Split(*siteLocale, "-")
if len(parts) < 2 || !strings.EqualFold(parts[0], tagLanguage) || !regionPattern.MatchString(parts[1]) {
return nil
}
borrowed := strings.ToLower(parts[0]) + "_" + strings.ToUpper(parts[1])
return &borrowed
}
func normalizeEntries(entries []Entry) ([]Entry, error) {