Sherlock is a Go library that inspects a URL for any and all available metadata, pulling from whatever metadata formats are available, and returning it as an ActivityStreams 2.0 document.
The goal is to have a standard interface into all web content, regardless of competing data standards.
β ActivityPub/ActivityStreams
β MicroFormats
β Open Graph
π§ WebFinger
π§ JSON-LD (Linked)
π§ Twitter Metadata
π§ Microdata
π§ RDFa
π§ oEmbed data provider
client := sherlock.NewClient()
// If you only have a URL, then pass it in to .Load()
result, err := client.Load("https://my-url-here")
// If you have already downloaded a file, then pass it to .Parse()
result, err := sherlock.ParseHTML("https://original-url", &bytes.Buffer)
Sherlock can also be used as an http client for Hannibal, the ActivityPub library for Go. This allows many other online resources to look like they're ActivityPub-enabled.