---
title: Bengal 0.2.3
description: Default theme blog improvements, excerpt filters, prek migration
type: changelog
date: 2026-03-01
draft: false
lang: en
tags: [release, changelog, blog, theme, excerpt, prek]
keywords: [release, 0.2.3, blog, excerpt_for_card, card_excerpt, prek]
category: changelog
---

# Bengal 0.2.3

**Key additions:** Major blog template refresh for the default theme (post cards, related posts, author bio, social share), new `excerpt_for_card` and `card_excerpt` filters for preview deduplication, and pre-commit migration to prek.toml.

---

## Highlights

### Default Theme Blog Improvements

The blog scaffold and default theme templates received a significant refresh:

- **Post cards**: New post cards with improved layout and excerpt handling
- **Related posts**: Related post cards and simple layout variants
- **Author bio**: Author bio component with avatar support
- **Social share**: Share dropdown with Reddit, email, and copy-link
- **Contact & About**: Dedicated contact and about pages for blog scaffold
- **Newsletter CTA**: Placeholder for newsletter signup
- **Comments section**: Placeholder for comments integration
- **Recipe**: Blog-comments theming recipe for customization

### Excerpt Filters for Card Previews

New template filters avoid repeating title/description in card excerpts:

- **`excerpt_for_card(title, desc)`**: Deduplicates content against title/description for card previews
- **`card_excerpt(words, title, desc)`**: Trims excerpt to word count while avoiding title/desc repetition

Documented in the reference and cheatsheet.

### Tooling

- **Prek migration**: Pre-commit config moved from `.pre-commit-config.yaml` to `prek.toml`
- **Ruff 0.15.1**: Upgrade with format fixes
- **Filter-type-coercion**: New rule for YAML numeric param handling in template filters

---

## Other Changes

- **Fix**: Correct Python 3 except syntax for multi-exception handling
- **Cache**: Remove unused TypeVar after PEP 695 migration
- **CLI help**: Troubleshooting cleanup
- **Tests**: `parallel_unsafe` marker for ThreadPoolExecutor tests; stress tests marked slow for faster CI

---

## Breaking Changes

None. Fully backward-compatible release.

---

## Upgrading

```bash
uv pip install --upgrade bengal
# or
pip install --upgrade bengal
# or use the self-update command
bengal upgrade
```
