Dispatching Webmentions with a Netlify build plugin
Published
Last updated
This site uses a static site generator to build plain HTML pages. Since there's no database to add, update, or delete pages from, determining when to dispatch mentions can be challenging! Here's how I use a Netlify build plugin and an atom feed to manage it.
The Webmention spec requires that a mention should be sent whenever a link is added or removed from a page, or the page one is on is updated or deleted. The recipient will receive an HTTP post which looks the same whatever happened. It's up to them to determine what changed.
Netlify provides hooks for various stages of the build, and a plugin may use as
many as it needs. I use the onPostBuild
and onSuccess
hooks. The former is
called when the build is complete, but before it is deployed. This gives me
access to the old atom feed and pages over the network (the old version of the
site is still deployed), and new versions in the build directory. Mentions are
gathered and kept until the onSuccess
hook. This hook fires when the site is
deployed. It's important to wait for the deployment because the receiver of a
mention may automatically check the content of the source URL to know what
happened.
If you prefer to read code, check it out here.
This is just the beginning! I plan to port other capabilities over to Netlify build plugins in time.
Mentions
Mention from Julian Elve on : ...I then found the approach documented by Mark Everitt which compares the RSS feed before and after the build and pushes webmentions for all new items, and have adapted his code.