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 |
| 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 for the complete reference.
In This Section
Add Table of Contents
Use Bengal's auto-generated page.toc for navigation
Archive Page
Create year and month archive pages for blog content
Author Byline
Display author information with avatar and social links
Blog Comments
Configure and integrate comments (Giscus, Disqus, Utterances) on blog posts
Content Freshness
Show "new" badges and staleness warnings based on content age
Featured Posts
Highlight featured content in sidebars and homepages
Filter by Multiple Tags
Query content matching multiple criteria using Bengal's filters
Group by Category
Organize content into groups using Bengal's group_by filter
List Recent Posts
Query and display recent content using Bengal's filters
Section Statistics
Display post counts, word counts, and reading time totals
Series Navigation
Add prev/next navigation for multi-part tutorials and series
Show Reading Time
Display estimated reading time using Bengal's reading_time filter
Social Sharing Buttons
Add share buttons for Twitter, LinkedIn, Facebook, and more
Template Views
Use normalized View objects for consistent access to endpoints, schemas, and tags
Related Pages
Getting Started with Kida
Learn Kida template syntax from scratch with hands-on examples
Template Functions Reference
Complete reference for Bengal's template filters and functions
Bengal 0.1.6
Kida template engine, Patitas parser, Rosettes syntax highlighter, and comprehensive error system
Bengal 0.2.5
Kida 0.2.3 config passthrough for max_extends_depth and max_include_depth