Template Cookbook

Common templating patterns and Bengal-specific features

2 min read 328 words

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 where, sort_by, limitfilters
Group by Category group_byfilter, nested loops
Filter by Multiple Tags Chaining filters,inoperator
Archive Page group_by_year, group_by_monthfilters
Featured Posts section.featured_posts, highlighting content
Template Views EndpointView, SchemaView, TagViewnormalized objects

Page Features

Add features to individual pages.

Example What You'll Learn
Add Table of Contents page.toc, scroll highlighting
Show Reading Time page.reading_timeproperty and filter
Content Freshness age_days, age_months, "new" badges
Author Byline page.author, avatars, social links
Series Navigation prev_in_series, next_in_series
Social Sharing Buttons share_url(), platform share links
Section Statistics post_count, word_count, totals

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 for the complete reference.