weiro/providers/sitebuilder/processors.go

38 lines
745 B
Go
Raw Permalink Normal View History

2026-03-08 22:32:32 +00:00
package sitebuilder
import (
"net/url"
"strings"
"github.com/PuerkitoBio/goquery"
"lmika.dev/lmika/weiro/models/pubmodel"
)
type postMDProcessor func(site pubmodel.Site, dom *goquery.Document) error
func uploadAbsoluteURL(site pubmodel.Site, dom *goquery.Document) error {
siteURL, err := url.Parse(site.BaseURL)
if err != nil {
return err
}
dom.Find("img").Each(func(i int, s *goquery.Selection) {
srcUrl := s.AttrOr("src", "")
if site.BaseURL == "" {
return
} else if strings.HasPrefix(srcUrl, "http:") || strings.HasPrefix(srcUrl, "https:") {
return
}
pu, err := url.Parse(srcUrl)
if err != nil {
return
}
absURL := siteURL.ResolveReference(pu)
s.SetAttr("src", absURL.String())
})
return nil
}