# Template Cookbook

URL: /bengal/docs/theming/recipes/
Section: recipes
Description: Common templating patterns and Bengal-specific features

---

> For a complete page index, fetch /bengal/llms.txt.

Practical examples showing how to accomplish common tasks with Bengal's templating system.

## Content Queries

Work with pages, sections, and taxonomies.

Example
What You'll Learn

List Recent Posts (./list-recent-posts/)
`where`, `sort_by`, `limit`filters

Group by Category (./group-by-category/)
`group_by`filter, nested loops

Filter by Multiple Tags (./filter-by-tags/)
Chaining filters,`in`operator

Archive Page (./archive-page/)
`group_by_year`, `group_by_month`filters

Featured Posts (./featured-posts/)
`section.featured_posts`, highlighting content

Template Views (./template-views/)
`EndpointView`, `SchemaView`, `TagView`normalized objects

## Page Features

Add features to individual pages.

Example
What You'll Learn

Add Table of Contents (./table-of-contents/)
`page.toc`, scroll highlighting

Show Reading Time (./reading-time/)
`page.reading_time`property and filter

Content Freshness (./content-freshness/)
`age_days`, `age_months`, "new" badges

Author Byline (./author-byline/)
`page.author`, avatars, social links

Series Navigation (./series-navigation/)
`prev_in_series`, `next_in_series`

Social Sharing Buttons (./social-sharing-buttons/)
`share_url()`, platform share links

Section Statistics (./section-statistics/)
`post_count`, `word_count`, totals

Blog Comments (./blog-comments/)
`params.comments`, Giscus, Disqus, Utterances

## Quick Reference

### The Essentials

```
{# Get pages from a section #}
{% let posts = site.pages |> where('section', 'blog') %}

{# Sort by date, newest first #}
{% let recent = posts |> sort_by('date', reverse=true) %}

{# Limit to 5 #}
{% let latest = recent |> limit(5) %}

{# Or chain it all #}
{% let latest = site.pages
  |> where('section', 'blog')
  |> sort_by('date', reverse=true)
  |> limit(5) %}
```
### Common Filters

Filter
Purpose
Example

`where`
Filter by field
`pages |> where('draft', false)`

`sort_by`
Sort results
`pages |> sort_by('title')`

`limit`
Take first N
`pages |> limit(10)`

`group_by`
Group by field
`pages |> group_by('category')`

`first`
Get first item
`pages |> first`

Both`\|>` (Kida pipeline) and `\|` (Jinja-style) work. Examples use `\|>`for consistency.

See Template Functions (/bengal/docs/theming/templating/functions/) for the complete reference.

## In This Section

Add Table of Contents (/bengal/docs/theming/recipes/table-of-contents/)

Use Bengal's auto-generated page.toc for navigation

Archive Page (/bengal/docs/theming/recipes/archive-page/)

Create year and month archive pages for blog content

Author Byline (/bengal/docs/theming/recipes/author-byline/)

Display author information with avatar and social links

Blog Comments (/bengal/docs/theming/recipes/blog-comments/)

Configure and integrate comments (Giscus, Disqus, Utterances) on blog posts

Content Freshness (/bengal/docs/theming/recipes/content-freshness/)

Show "new" badges and staleness warnings based on content age

Featured Posts (/bengal/docs/theming/recipes/featured-posts/)

Highlight featured content in sidebars and homepages

Filter by Multiple Tags (/bengal/docs/theming/recipes/filter-by-tags/)

Query content matching multiple criteria using Bengal's filters

Group by Category (/bengal/docs/theming/recipes/group-by-category/)

Organize content into groups using Bengal's group_by filter

List Recent Posts (/bengal/docs/theming/recipes/list-recent-posts/)

Query and display recent content using Bengal's filters

Section Statistics (/bengal/docs/theming/recipes/section-statistics/)

Display post counts, word counts, and reading time totals

Series Navigation (/bengal/docs/theming/recipes/series-navigation/)

Add prev/next navigation for multi-part tutorials and series

Show Reading Time (/bengal/docs/theming/recipes/reading-time/)

Display estimated reading time using Bengal's reading_time filter

Social Sharing Buttons (/bengal/docs/theming/recipes/social-sharing-buttons/)

Add share buttons for Twitter, LinkedIn, Facebook, and more

Template Views (/bengal/docs/theming/recipes/template-views/)

Use normalized View objects for consistent access to endpoints, schemas, and tags

Related Pages

Getting Started with Kida (/bengal/docs/tutorials/theming/getting-started-with-kida/)

Learn Kida template syntax from scratch with hands-on examples

Related

Template Functions Reference (/bengal/docs/reference/template-functions/)

Complete reference for Bengal's template filters and functions

Related

Bengal 0.1.6 (/bengal/releases/0.1.6/)

Kida template engine, Patitas parser, Rosettes syntax highlighter, and comprehensive error system

4 months ago

Bengal 0.2.5 (/bengal/releases/0.2.5/)

Kida 0.2.3 config passthrough for max_extends_depth and max_include_depth

2 months ago

cookbook (/bengal/tags/cookbook/)

templates (/bengal/tags/templates/)

kida (/bengal/tags/kida/)

examples (/bengal/tags/examples/)
