diff --git a/docs/_docs/plugins/hooks.md b/docs/_docs/plugins/hooks.md
index 413ecdec..58b750ca 100644
--- a/docs/_docs/plugins/hooks.md
+++ b/docs/_docs/plugins/hooks.md
@@ -3,81 +3,75 @@ title: Hooks
permalink: /docs/plugins/hooks/
---
-Using hooks, your plugin can exercise fine-grained control over various aspects
-of the build process. If your plugin defines any hooks, Jekyll will call them
-at pre-defined points.
+Using hooks, your plugin can exercise fine-grained control over various aspects of the build process. If your plugin defines any hooks, Jekyll
+will call them at pre-defined points.
-Hooks are registered to a container and an event name. To register one, you
-call Jekyll::Hooks.register, and pass the container, event name, and code to
-call whenever the hook is triggered. For example, if you want to execute some
-custom functionality every time Jekyll renders a post, you could register a
-hook like this:
+Hooks are registered to an owner and an event name. To register one, you call `Jekyll::Hooks.register`, and pass the hook owner, event name,
+and code to call whenever the hook is triggered. For example, if you want to execute some custom functionality every time Jekyll renders a
+page, you could register a hook like this:
```ruby
-Jekyll::Hooks.register :posts, :post_render do |post|
- # code to call after Jekyll renders a post
+Jekyll::Hooks.register :pages, :post_render do |page|
+ # code to call after Jekyll renders a page
end
```
-Jekyll provides hooks for :site
, :pages
,
-:posts
, :documents
and :clean
. In all
-cases, Jekyll calls your hooks with the container object as the first callback
-parameter. All `:pre_render` hooks and the`:site, :post_render` hook will also
-provide a payload hash as a second parameter. In the case of `:pre_render`, the
-payload gives you full control over the variables that are available while
-rendering. In the case of `:site, :post_render`, the payload contains final
-values after rendering all the site (useful for sitemaps, feeds, etc).
+*Note: The `:post_convert` events mentioned hereafter is a feature introduced in v4.2.0.*
-The complete list of available hooks is below:
+Out of the box, Jekyll has pre-defined hook points for owners `:site`, `:pages`, `:documents` and `:clean`. Additionally, the hook points
+defined for `:documents` can be utilized for individual collections only by invoking the collection type instead. i.e. `:posts` for documents
+in collection `_posts` and `:movies` for documents in collection `_movies`. In all cases, Jekyll calls your hooks with the owner object as the
+first callback parameter.
+
+Every registered hook owner supports the following events — `:post_init`, `:pre_render`, `:post_convert`, `:post_render`, `:post_write`
+— however, the `:site` owner is set up to *respond* to *special event names*. Refer to the subsequent section for details.
+
+All `:pre_render` hooks and the `:site, :post_render` hook will also provide a `payload` hash as a second parameter. While in the case of
+`:pre_render` events, the payload gives you full control over the variables that are available during rendering, with the `:site, :post_render`
+event, the payload contains final values after rendering all the site (useful for sitemaps, feeds, etc).
+
+## Built-in Hook Owners and Events
+The complete list of available hooks:
Container | +Owner | Event | -Called | +Triggered at |
---|---|---|---|---|
+ |
Encompasses the entire site |
|
- Just after the site initializes, but before setup & render. Good - for modifying the configuration of the site. +Just after the site initializes. Good for modifying the configuration of the site. Triggered once per build / serve session |
|
-
|
|
- Just after site reset +Just after the site resets during regeneration |
||
-
|
|
- After site data has been read and loaded from disk +After all source files have been read and loaded from disk |
||
-
|
|
@@ -86,9 +80,6 @@ The complete list of available hooks is below:
|||
-
|
|
@@ -97,19 +88,17 @@ The complete list of available hooks is below:
|||
-
|
|
- After writing the whole site to disk +After writing all of the rendered files to disk |
||
+ |
Allows fine-grained control over all pages in the site |
|
||
-
|
|
@@ -130,9 +116,6 @@ The complete list of available hooks is below:
|||
-
|
|
@@ -141,9 +124,6 @@ The complete list of available hooks is below:
|||
-
|
|
@@ -152,9 +132,6 @@ The complete list of available hooks is below:
|||
-
|
|
@@ -163,8 +140,56 @@ The complete list of available hooks is below:
|||
+
Allows fine-grained control over all documents in the site including posts and documents in user-defined collections + |
+
|
+
+ Whenever any document is initialized + |
+ ||
+
|
+
+ Just before rendering a document + |
+ |||
+
|
+
+ + After converting the document content, but before rendering the document + layout + + |
+ |||
+
|
+
+ After rendering a document, but before writing it to disk + |
+ |||
+
|
+
+ After writing a document to disk + |
+ |||
Allows fine-grained control over all posts in the site without affecting documents in user-defined collections |
|
|||
-
|
|
@@ -185,20 +207,14 @@ The complete list of available hooks is below:
|||
-
|
|
- After converting the post content, but before rendering the post layout +After converting the post content, but before rendering the postlayout |
||
-
|
|
@@ -207,9 +223,6 @@ The complete list of available hooks is below:
|||
-
|
|
@@ -217,64 +230,10 @@ The complete list of available hooks is below:
|||
-
|
-
-
|
-
- Whenever a document is initialized - |
- ||
-
|
-
-
|
-
- Just before rendering a document - |
- ||
-
|
-
-
|
-
- After converting the document content, but before rendering the document layout - |
- ||
-
|
-
-
|
-
- After rendering a document, but before writing it to disk - |
- ||
-
|
-
-
|
-
- After writing a document to disk - |
- ||
Fine-grained control on the list of obsolete files determined to be deleted during the site's cleanup phase. |
|