+### Hooks
+
+🧸📔 Bjørn recognizes the following hooks (defined on the global
+object) when it runs :—
+
+- **`globalThis.bjørnTransformEntryHTML(document, metadata)`:**
+ Receives a document and a metadata object for each generated HTML
+ entry.
+
+- **`globalThis.bjørnTransformFeedAtom(document, metadata)`:** Receives
+ a document and a metadata object for each generated Atom feed index.
+
+- **`globalThis.bjørnTransformFeedHTML(document, metadata)`:** Receives
+ a document and a metadata object for each generated HTML feed index.
+
+- **`globalThis.bjørnTransformHead(headElement, metadata, type)`:**
+ Receives a `<head>` element, a metadata object, and a type value of
+ either `"entry"` or `"feed"`.
+
+- **`globalThis.bjørnTransformMetadata(metadata, type)`:** Receives a
+ metadata object, and a type value of either `"entry"` or `"feed"`.
+ Use this to provide any initial transformations to the metadata prior
+ to document generation.
+
+Naturally, when running 🧸📔 Bjørn normally from the command line, all
+of these hooks are undefined. You can write your own small build script
+to define them, and run that instead :—
+
+```js
+#!/usr/bin/env -S deno run --allow-read --allow-write
+// custom_build.js
+
+// Define your hooks first…
+globalThis.bjørnTransformHead = (headElement, metadata, type) => {
+ Array.from(headElement.children)
+ .find(($) => $.localName == "title")
+ .textContent += " | My Cool Site";
+};
+
+// Then run the script…
+await import("./build.js");
+```