<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hooks &amp; Filters on Ananke Documentation</title><link>/hooks-and-filters/</link><description>Recent content in Hooks &amp; Filters on Ananke Documentation</description><generator>Hugo</generator><language>en-gb</language><lastBuildDate>Sun, 17 May 2026 08:00:00 +0700</lastBuildDate><atom:link href="/hooks-and-filters/index.xml" rel="self" type="application/rss+xml"/><item><title>Introduction to Hooks &amp; Filters</title><link>/hooks-and-filters/introduction/</link><pubDate>Sun, 17 May 2026 08:00:00 +0700</pubDate><guid>/hooks-and-filters/introduction/</guid><description>&lt;a class="f6 link dim br2 ba bw1 ph3 pv2 mb2 dib navy" href="https://github.com/gohugo-ananke/ananke/releases/tag/v2.17.0" target="_blank" rel="noopener"&gt;
 since 2.17.0
 &lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#hooks-and-filters"&gt;Hooks and filters&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#difference-between-hooks-and-filters"&gt;Difference between hooks and filters&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#hooks"&gt;Hooks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#filters"&gt;Filters&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#terminology"&gt;Terminology&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#simple-hook-calls"&gt;Simple hook calls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#extended-hook-calls"&gt;Extended hook calls&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#extended-hook-options"&gt;Extended hook options&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#hook"&gt;hook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#context"&gt;context&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#cache"&gt;cache&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#hook-partial-location"&gt;Hook partial location&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#disabling-unused-hook-messages"&gt;Disabling unused hook messages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#recommended-usage-pattern"&gt;Recommended usage pattern&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="hooks-and-filters"&gt;Hooks and filters
 &lt;a class="heading-anchor" href="#hooks-and-filters" aria-label="Link to this section"&gt;#&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Ananke provides a small hooks system that lets site projects inject or transform markup without changing the theme templates directly.&lt;/p&gt;</description></item><item><title>Hook examples</title><link>/hooks-and-filters/examples/</link><pubDate>Sun, 17 May 2026 08:00:00 +0700</pubDate><guid>/hooks-and-filters/examples/</guid><description>&lt;a class="f6 link dim br2 ba bw1 ph3 pv2 mb2 dib navy" href="https://github.com/gohugo-ananke/ananke/releases/tag/v2.17.0" target="_blank" rel="noopener"&gt;
 since 2.17.0
 &lt;/a&gt;
&lt;p&gt;This page collects worked examples for the theme&amp;rsquo;s hook points. Each one shows the partial you
create, where the output lands, and &lt;strong&gt;why&lt;/strong&gt; you would reach for that particular hook.&lt;/p&gt;
&lt;p&gt;If you have not read it yet, start with the &lt;a href="../introduction/"&gt;introduction&lt;/a&gt; for the call
mechanics, and keep the &lt;a href="../all/"&gt;list of all hooks&lt;/a&gt; handy for the available hook names.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#before-you-start"&gt;Before you start&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#add-a-third-party-script-in-the-head"&gt;Add a third-party script in the head&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#defer-analytics-to-the-end-of-the-body"&gt;Defer analytics to the end of the body&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#add-a-site-wide-announcement-bar"&gt;Add a site-wide announcement bar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#extend-the-footer-and-cache-it"&gt;Extend the footer (and cache it)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#add-secondary-navigation-using-the-page-context"&gt;Add secondary navigation using the page context&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#add-an-author-bio-after-the-content"&gt;Add an author bio after the content&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#override-the-article-section-link"&gt;Override the article section link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#use-a-hook-as-a-filter"&gt;Use a hook as a filter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="before-you-start"&gt;Before you start
 &lt;a class="heading-anchor" href="#before-you-start" aria-label="Link to this section"&gt;#&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Every example below is a file you create in &lt;strong&gt;your site&lt;/strong&gt;, never in the theme:&lt;/p&gt;</description></item><item><title>All Hooks &amp; Filters</title><link>/hooks-and-filters/all/</link><pubDate>Sun, 17 May 2026 08:00:00 +0700</pubDate><guid>/hooks-and-filters/all/</guid><description>&lt;a class="f6 link dim br2 ba bw1 ph3 pv2 mb2 dib navy" href="https://github.com/gohugo-ananke/ananke/releases/tag/v2.17.0" target="_blank" rel="noopener"&gt;
 since 2.17.0
 &lt;/a&gt;
&lt;p&gt;This page lists every hook point the theme wires into its templates. Each entry is the value you
pass as the &lt;code&gt;hook&lt;/code&gt; key (see the &lt;a href="../introduction/"&gt;introduction&lt;/a&gt; for how to call hooks and
filters).&lt;/p&gt;
&lt;p&gt;A hook point does &lt;strong&gt;nothing&lt;/strong&gt; until your site provides a matching partial at
&lt;code&gt;layouts/_partials/hooks/&amp;lt;name&amp;gt;.html&lt;/code&gt;. Until then the hook is &amp;ldquo;unused&amp;rdquo; — the theme prints an
optional debug notice and renders nothing.&lt;/p&gt;</description></item></channel></rss>