in links.go [26:62]
func (s Header) Links() []Link {
links := make([]Link, 0)
for _, chunk := range strings.Split(string(s), ",") {
l := Link{URL: "", Rel: "", Params: make(map[string]string)}
for _, part := range strings.Split(chunk, ";") {
part = strings.Trim(part, " ")
if part == "" {
continue
}
if part[0] == '<' && part[len(part)-1] == '>' {
l.URL = strings.Trim(part, "<>")
continue
}
key, val := parseParam(part)
if key == "" {
continue
}
if strings.ToLower(key) == "rel" {
l.Rel = val
continue
}
l.Params[key] = val
}
if l.URL != "" {
links = append(links, l)
}
}
return links
}