# README
Sherlock

Relentless Metadata Inspector
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.
Supported Formats
ā ActivityPub/ActivityStreams
ā MicroFormats
ā Open Graph
In Progress
š§ WebFinger
š§ JSON-LD (Linked)
š§ Twitter Metadata
š§ Microdata
š§ RDFa
š§ oEmbed data provider
Using Sherlock
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)
Using Sherlock with Hannibal
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.