Quick reference for terms used in Bengal documentation. Terms are listed alphabetically.
A
- Asset
- A static file (CSS, JS, image, font) that Bengal processes, optimizes, and optionally fingerprints. Assets live in
assets/at the project root or alongside content in page bundles. - Asset Fingerprinting
- Adding a content-based hash to filenames (e.g.,
style.a1b2c3.css) for cache-busting. When file content changes, the hash changes, forcing browsers to fetch the new version. Enabled by default. - Autodoc
- Bengal's automatic documentation generator. Extracts docstrings and signatures from Python source code or CLI applications to generate API reference pages.
B
- Base Template
- The root template (
base.html) that defines the HTML structure inherited by all other templates. Contains{% block %}placeholders that child templates override. - Build Cache
- Stored state from previous builds that enables incremental rebuilding. Located in
.bengal/cache/by default. - Build Profile
- A configuration preset (
writer,theme-dev,dev) that adjusts output verbosity, validation strictness, and enabled features. Set via--profileflag orbengal project profile. - Bundle (Page Bundle)
- A folder containing a page's Markdown file alongside its dedicated assets (images, data files). Keeps related files together and enables relative asset references.
C
- Cascade
- Front matter values that flow down from section
_index.mdfiles to child pages. Used for section-wide defaults likeauthor,type, ordraftstatus. - Content Directory
- The folder containing your Markdown source files. Defaults to
content/but configurable via[build] content_dir. - Content Type
- The template category used to render a page (e.g.,
post,doc,page). Set viatype:in front matter. Maps to templates intemplates/<type>/.
D
- Directive
- A MyST Markdown extension that adds special functionality. Written as
:::{directive-name}blocks. Examples:note,warning,tab-set,dropdown. - Draft
- A page with
draft: truein front matter. Excluded from production builds by default. Drafts are visible in development mode (bengal serve).
F
- Fast Mode
- Build configuration that enables parallel processing and reduces output verbosity. Enable via
bengal build --fastorfast_mode = truein config. - Front Matter
- YAML or TOML metadata at the top of a Markdown file, delimited by
---. Controls page properties like title, date, tags, layout, and custom fields. - Free-Threaded Python
- Python 3.14+ builds with the GIL disabled (
PYTHON_GIL=0). Enables true parallel execution for 1.5-2x faster builds.
G
- GIL (Global Interpreter Lock)
- Python's mechanism that allows only one thread to execute at a time. Disabling it (
PYTHON_GIL=0) in Python 3.14+ enables true parallelism.
H
- Health Check
- Automated validation that detects issues like broken links, missing images, invalid front matter, or orphaned pages. Run via
bengal validateorbengal health linkcheck.
I
- Incremental Build
- Building only files that changed since the last build, rather than regenerating the entire site. Enabled by default. Typically 50-100x faster than full builds.
- Index File
Special Markdown files that define sections or pages:
_index.mdcreates a section (a folder that contains child pages)index.mdcreates a leaf page with its own URL folder
J
- Jinja2
- The Python templating engine used by Bengal. Provides template inheritance, conditionals, loops, filters, and macros. Industry standard, also used by Flask and Ansible.
L
- Layout
- A Jinja2 template that defines HTML structure for a specific content type. Lives in
templates/(project) or in the active theme. - Live Reload
- Automatic browser refresh when source files change during development. Enabled by default with
bengal serve.
M
- Menu
- Navigation structure defined in
bengal.tomlvia[[menu.main]]entries. Accessible in templates viasite.menus.main. Supports nested hierarchies and weights. - MyST Markdown
- Markedly Structured Text—an extended Markdown syntax that adds directives, roles, and cross-references. Used by Bengal for admonitions, tabs, and other rich content.
O
- Output Directory
- The folder where Bengal writes generated HTML, CSS, and assets. Defaults to
public/but configurable via[build] output_dir. - Output Format
- Alternative renderings of content beyond HTML. Bengal supports JSON, RSS, sitemap, and LLM-optimized text formats.
P
- Page
- A single piece of content, typically a Markdown file. Rendered to HTML using templates. Has properties like title, URL, date, tags, and content.
- Partial
- A reusable template fragment (e.g.,
header.html,footer.html,sidebar.html). Included in other templates via{% include "partials/name.html" %}. - Post-Processing
- Operations performed after rendering, such as HTML minification, sitemap generation, and RSS feed creation.
S
- Section
- A content folder with an
_index.mdfile. Represents a group of related pages (e.g.,content/blog/,content/docs/). Has its own landing page and can contain child pages or nested sections. - Shortcode
- A reusable content component invoked within Markdown. Bengal uses MyST directive syntax (
:::{shortcode}) rather than Hugo-style{{< shortcode >}}. - Site
- The top-level container representing your entire Bengal project. Provides access to all pages, sections, menus, and configuration in templates via the
sitevariable.
T
- Taxonomy
- A classification system for organizing content. Common taxonomies include tags, categories, and authors. Each taxonomy term gets its own listing page.
- Template
- A Jinja2 file that defines how content is rendered to HTML. Templates use inheritance (extending base templates) and composition (including partials).
- Template Engine
- Bengal's Jinja2-based system for rendering templates. Provides built-in filters, functions, and the
site/page/sectioncontext variables. - Theme
A package of templates, assets, and styles that defines site appearance. Themes can be:
- Bundled: Included with Bengal (e.g.,
default) - Installed: Via pip/uv (e.g.,
bengal-theme-starter) - Project: Local in your
themes/directory
- Bundled: Included with Bengal (e.g.,
W
- Weight
- A numeric value controlling sort order in menus and page listings. Lower weight appears first. Set via
weight:in front matter or menu config.
Seealso
- Core Concepts — Detailed explanations of how Bengal works
- Configuration Reference — All configuration options
- FAQ — Answers to common questions