diff --git a/doc/api/api.md b/doc/api/api.md index 830e5f4c4..b96fa0c8e 100644 --- a/doc/api/api.md +++ b/doc/api/api.md @@ -1,6 +1,6 @@ -# API @include embed_parameters @include http_api +@include hooks @include hooks_client-side @include hooks_server-side @include editorInfo diff --git a/doc/api/hooks.md b/doc/api/hooks.md new file mode 100644 index 000000000..c252aa840 --- /dev/null +++ b/doc/api/hooks.md @@ -0,0 +1,11 @@ +# Hooks +All hooks are called with two arguments: + +1. name - the name of the hook being called +2. context - an object with some relevant information about the context of the call + +## Return values +A hook should always return a list or undefined. Returning undefined is equivalent to returning an empty list. +All the returned lists are appended to each other, so if the return values where `[1, 2]`, `undefined`, `[3, 4,]`, `undefined` and `[5]`, the value returned by callHook would be `[1, 2, 3, 4, 5]`. + +This is, because it should never matter if you have one plugin or several plugins doing some work - a single plugin should be able to make callHook return the same value a set of plugins are able to return collectively. So, any plugin can return a list of values, of any length, not just one value. \ No newline at end of file diff --git a/doc/api/hooks_client-side.md b/doc/api/hooks_client-side.md index 50ec3f989..f706f6a12 100644 --- a/doc/api/hooks_client-side.md +++ b/doc/api/hooks_client-side.md @@ -1,11 +1,6 @@ # Client-side hooks Most of these hooks are called during or in order to set up the formatting process. -All hooks registered to these events are called with two arguments: - -1. name - the name of the hook being called -2. context - an object with some relevant information about the context of the call - ## documentReady Called from: src/templates/pad.html diff --git a/doc/api/hooks_server-side.md b/doc/api/hooks_server-side.md index 518e12130..06ec7374b 100644 --- a/doc/api/hooks_server-side.md +++ b/doc/api/hooks_server-side.md @@ -1,11 +1,6 @@ # Server-side hooks These hooks are called on server-side. -All hooks registered to these events are called with two arguments: - -1. name - the name of the hook being called -2. context - an object with some relevant information about the context of the call - ## loadSettings Called from: src/node/server.js