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 } func removeFootnoteHRs(site pubmodel.Site, dom *goquery.Document) error { dom.Find("div.footnotes > hr").Remove() return nil }