# Bengal
[](https://pypi.org/project/bengal/)
[](https://github.com/lbliii/bengal/actions/workflows/tests.yml)
[](https://pypi.org/project/bengal/)
[](https://opensource.org/licenses/MIT)
A pythonic static site generator.
## Features
- Markdown-based content with front matter
- Incremental builds with dependency tracking
- Parallel processing with ThreadPoolExecutor
- Template engine with Jinja2
- Automatic navigation and breadcrumbs
- Taxonomy system (tags, categories)
- Menu system with hierarchical navigation
- Development server with file watching
- API documentation generation from Python source
- SEO features (sitemap, RSS feeds)
- Health validation system
## Installing Python 3.14
Bengal works best with Python 3.14. Here's how to install it:
### Using pyenv (recommended for managing versions)
```bash
# Install pyenv (see https://github.com/pyenv/pyenv for full instructions)
brew install pyenv # On macOS with Homebrew
# or: curl https://pyenv.run | bash
pyenv install 3.14.0
pyenv global 3.14.0
# Initialize pyenv in your shell profile (add these lines to ~/.zshrc or ~/.bash_profile):
# export PYENV_ROOT="$HOME/.pyenv"
# export PATH="$PYENV_ROOT/bin:$PATH"
# eval "$(pyenv init --path)"
# eval "$(pyenv init -)"
# eval "$(pyenv virtualenv-init -)"
#
# Then reload your shell:
# source ~/.zshrc # or source ~/.bash_profile
#
# Verify with: python --version (should show 3.14.0)
```
### Official Installer
Download from [python.org/downloads](https://www.python.org/downloads/release/python-3140/).
### Create a Virtual Environment
Always use a virtual environment:
```bash
python -m venv bengal-env
source bengal-env/bin/activate # On Windows: bengal-env\Scripts\activate
```
## Requirements
Python 3.14 or later
Recommended: Python 3.14t (free-threaded) for up to 1.8x faster rendering. See [INSTALL_FREE_THREADED.md](INSTALL_FREE_THREADED.md) for setup instructions.
## Cloning and Installation
To install the latest development version:
```bash
git clone https://github.com/llane/bengal.git
cd bengal
```
**Using uv (recommended):**
```bash
# Install uv if not already installed
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install Bengal in editable mode for development
uv pip install -e .
# Or with dev server support (file watching auto-reload)
uv pip install -e ".[server]"
```
**Using pip:**
```bash
pip install -e .
# Or with dev server support (file watching auto-reload)
pip install -e ".[server]"
```
For the released version (once available on PyPI):
```bash
pip install bengal
# Or with dev server support
pip install bengal[server]
```
**Optional Dependencies:**
- `server` - File watching for dev server auto-reload (uses `watchdog`)
- `css` - Advanced CSS optimization (uses `lightningcss`)
## Quick Start
```bash
# Create a new site. An interactive wizard will guide you through presets for different site types:
# - Blog (personal/professional writing)
# - Documentation (technical docs/guides)
# - Portfolio (showcase your work)
# - Business (company/product site)
# - Resume (professional CV site)
# - Blank or Custom
bengal new site mysite
cd mysite
# The wizard creates structure with sample content. You can then:
# Create additional pages
bengal new page my-first-post
# Build the site
bengal site build
# For maximum speed (recommended)
PYTHON_GIL=0 bengal site build --fast
# Start development server with file watching
bengal site serve
```
**💡 Tip:** Add `fast_mode = true` to the `[build]` section in your `bengal.toml` to enable fast mode by default.
## Build Profiles
Bengal provides different build profiles for different use cases:
- **Default**: Minimal output focused on errors and warnings
- **Theme Developer** (`--theme-dev`): Extra template and navigation validation
- **Developer** (`--dev`): Full debug output with memory profiling and performance metrics
## Architecture
Bengal uses a modular architecture with clear separation between Site, Page, Section, and Asset objects. The rendering pipeline processes Markdown content through templates and applies post-processing steps. An incremental build system tracks file changes and dependencies to rebuild what's necessary.
See [ARCHITECTURE.md](ARCHITECTURE.md) for details.
## Configuration
Create a `bengal.toml` or `bengal.yaml` in your project root. Bengal uses sensible defaults for most settings, so you only need to configure what you want to change:
```toml
[site]
title = "My Bengal Site"
baseurl = "https://example.com"
description = "Site description"
language = "en"
author = "Your Name"
[build]
output_dir = "public"
content_dir = "content"
fast_mode = true # Maximum speed (recommended)
cache_templates = true # Cache compiled templates (10-15% faster)
auto_regenerate_autodoc = false # Auto-regenerate docs when source changes
# Optional: Disable default features if needed
# incremental = false # Force full rebuilds
# minify_html = false # Keep HTML unminified for debugging
# parallel = false # Disable parallel processing
# generate_sitemap = false # Skip sitemap
# generate_rss = false # Skip RSS feed
# Theme Configuration
[theme]
name = "default" # Theme name (default, or custom theme in themes/ dir)
default_appearance = "system" # Options: "light", "dark", "system" (follows OS)
default_palette = "" # Color palette (empty = default, or palette name)
# Font Configuration - Auto-downloads and self-hosts Google Fonts
[fonts]
primary = "Inter:400,600,700" # Body text
heading = "Playfair Display:700" # Headings
code = "JetBrains Mono:400" # Code blocks
# Assets
[assets]
minify = true
fingerprint = true
optimize = true
# Optional: Node-based asset pipeline (requires Node v22 LTS)
# pipeline = true
# scss = true
# postcss = true
# bundle_js = true
# Markdown Configuration
[markdown]
parser = "mistune"
table_of_contents = true
gfm = true # GitHub Flavored Markdown
# Taxonomies (tags, categories, etc.)
[taxonomies]
tags = "tags"
categories = "categories"
# Menu Configuration
[[menu.main]]
name = "Home"
url = "/"
weight = 1
[[menu.main]]
name = "Documentation"
url = "/docs/"
weight = 2
# Search Page (special page, auto-enabled if template exists)
[search]
enabled = true
path = "/search/"
template = "search.html"
# API Documentation Generation
[autodoc.python]
enabled = true
source_dirs = ["src"]
output_dir = "content/api"
docstring_style = "auto" # Options: auto, google, numpy, sphinx
exclude = [
"*/tests/*",
"*/__pycache__/*",
]
include_private = false # Include _private methods
include_special = false # Include __special__ methods
# CLI Documentation Generation
[autodoc.cli]
enabled = true
app_module = "myapp.cli:main" # module_path:attribute format
output_dir = "content/cli"
framework = "click" # Options: click, argparse, typer
```
**Default Features** (enabled automatically, no config needed):
- ✅ Parallel builds
- ✅ Incremental builds (18-42x faster!)
- ✅ HTML minification (15-25% smaller)
- ✅ Asset optimization and fingerprinting
- ✅ Sitemap and RSS generation
- ✅ JSON + LLM text output formats
- ✅ Link validation
- ✅ Build quality checks
## Project Structure
```text
mysite/
├── bengal.toml # Site configuration
├── content/ # Your content files
│ ├── index.md
│ └── posts/
│ └── first-post.md
├── templates/ # Custom templates
│ ├── base.html
│ └── partials/
├── assets/ # Static assets
│ ├── css/
│ ├── js/
│ └── images/
└── public/ # Generated output
```
## Commands
Bengal commands are organized into logical groups for better discoverability. Use `bengal --help` to see all command groups, or `bengal <group> --help` to see commands within a group (e.g., `bengal site --help`).
### Site Management (`bengal site`)
```bash
# Build site
bengal site build
# Build with options
bengal site build --fast # Quiet output + guaranteed parallel
PYTHON_GIL=0 bengal site build --fast # Maximum speed (no GIL warnings)
bengal site build --incremental # Rebuild changed files
bengal site build --strict # Fail on errors (for CI)
# Development server (default: 5173)
bengal site serve --port 5173
# Clean output
bengal site clean
```
### Creating New Content (`bengal new`)
```bash
# Create a new site
bengal new site mysite
# Create a new page
bengal new page my-page --section blog
# Create a new layout template
bengal new layout article
# Create a new partial template
bengal new partial sidebar
# Create a new theme
bengal new theme my-theme
```
### Project Management (`bengal project`)
```bash
# Initialize project structure
bengal project init
# Set working profile (dev, themer, writer, ai)
bengal project profile dev
# Validate configuration
bengal project validate
# Show project info and statistics
bengal project info
# View/manage configuration
bengal project config
bengal project config site.title "My New Title" --set
```
### Developer Utilities (`bengal utils`)
```bash
# Generate API documentation
bengal utils autodoc --source mylib --output content/api
# Theme management
bengal utils theme list
bengal utils theme info <slug>
bengal utils theme discover
bengal utils theme install bengal-theme-starter
bengal utils theme new mybrand --mode site --output .
# Asset management
bengal utils assets minify
bengal utils assets optimize
# Performance analysis
bengal utils perf analyze
# Graph analysis
bengal utils graph analyze --stats --tree
bengal utils graph pagerank
bengal utils graph communities
bengal utils graph bridges
bengal utils graph suggest
```
## Themes
Bengal supports three types of themes: project themes (under `themes/`), installed themes (via pip/uv), and bundled themes.
```bash
# List available themes (project | installed | bundled)
bengal utils theme list
# Show info about a theme slug (paths, version)
bengal utils theme info <slug>
# Discover swizzlable templates/partials in active theme chain
bengal utils theme discover
# Install a theme via uv/pip (warns if name is non-canonical)
bengal utils theme install bengal-theme-starter
# Scaffold a new theme
## Site-local theme under themes/<slug>
bengal utils theme new mybrand --mode site --output .
## Installable package scaffold in current directory
bengal utils theme new mybrand --mode package --output .
# Or use bengal new theme for quick site-local themes
bengal new theme mybrand
```
Configuration to select and customize a theme:
```toml
[theme]
name = "mybrand" # Uses project themes/mybrand, installed bengal-theme-mybrand, or bundled
default_appearance = "system" # Options: "light", "dark", "system" (follows OS preference)
default_palette = "" # Color palette name (empty = default)
```
**Legacy configuration** (still supported):
```toml
[build]
theme = "mybrand" # Simple string format still works for backwards compatibility
```
Naming convention for installable themes (recommended): `bengal-theme-<slug>`.
## API Documentation (Autodoc)
Bengal can automatically generate API documentation from Python source code and CLI applications using AST parsing.
### Python API Documentation
Configure in `bengal.toml`:
```toml
[autodoc.python]
enabled = true
source_dirs = ["src/mylib"]
output_dir = "content/api"
docstring_style = "auto" # Options: auto, google, numpy, sphinx
exclude = [
"*/tests/*",
"*/__pycache__/*",
]
include_private = false # Include _private methods
include_special = false # Include __special__ methods
```
Or generate on-demand:
```bash
bengal utils autodoc --source mylib --output content/api
```
### CLI Documentation
Automatically document Click, Argparse, or Typer CLI applications:
```toml
[autodoc.cli]
enabled = true
app_module = "myapp.cli:main" # module_path:attribute format
output_dir = "content/cli"
framework = "click" # Options: click, argparse, typer
include_hidden = false # Include hidden commands
```
### Autodoc Features
- **AST-based extraction** - No imports required, works with any Python code
- **Multiple docstring formats** - Supports Google, NumPy, and Sphinx styles
- **Auto-regeneration** - Set `auto_regenerate_autodoc = true` in `[build]` to automatically update docs when source changes
- **CLI frameworks** - Built-in support for Click, Argparse, and Typer
- **Smart filtering** - Exclude tests, caches, and private members
## Development Status
Bengal is functional and under active development.
See [ARCHITECTURE.md](ARCHITECTURE.md) for technical details.
## License
MIT License
Raw data
{
"_id": null,
"home_page": null,
"name": "bengal",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.14",
"maintainer_email": null,
"keywords": "static-site-generator, ssg, documentation, markdown, website, free-threading, performance",
"author": null,
"author_email": "Bengal Contributors <lbeeze@icloud.com>",
"download_url": "https://files.pythonhosted.org/packages/b1/2c/56c830016963dc180652040c75304dfe297e6e9dd12525c665df996995d1/bengal-0.1.3.tar.gz",
"platform": null,
"description": "# Bengal\n\n[](https://pypi.org/project/bengal/)\n[](https://github.com/lbliii/bengal/actions/workflows/tests.yml)\n[](https://pypi.org/project/bengal/)\n[](https://opensource.org/licenses/MIT)\n\nA pythonic static site generator.\n\n## Features\n\n- Markdown-based content with front matter\n- Incremental builds with dependency tracking\n- Parallel processing with ThreadPoolExecutor\n- Template engine with Jinja2\n- Automatic navigation and breadcrumbs\n- Taxonomy system (tags, categories)\n- Menu system with hierarchical navigation\n- Development server with file watching\n- API documentation generation from Python source\n- SEO features (sitemap, RSS feeds)\n- Health validation system\n\n## Installing Python 3.14\n\nBengal works best with Python 3.14. Here's how to install it:\n\n### Using pyenv (recommended for managing versions)\n\n```bash\n# Install pyenv (see https://github.com/pyenv/pyenv for full instructions)\nbrew install pyenv # On macOS with Homebrew\n# or: curl https://pyenv.run | bash\n\npyenv install 3.14.0\npyenv global 3.14.0\n\n# Initialize pyenv in your shell profile (add these lines to ~/.zshrc or ~/.bash_profile):\n# export PYENV_ROOT=\"$HOME/.pyenv\"\n# export PATH=\"$PYENV_ROOT/bin:$PATH\"\n# eval \"$(pyenv init --path)\"\n# eval \"$(pyenv init -)\"\n# eval \"$(pyenv virtualenv-init -)\"\n#\n# Then reload your shell:\n# source ~/.zshrc # or source ~/.bash_profile\n#\n# Verify with: python --version (should show 3.14.0)\n```\n\n### Official Installer\n\nDownload from [python.org/downloads](https://www.python.org/downloads/release/python-3140/).\n\n### Create a Virtual Environment\n\nAlways use a virtual environment:\n\n```bash\npython -m venv bengal-env\nsource bengal-env/bin/activate # On Windows: bengal-env\\Scripts\\activate\n```\n\n## Requirements\n\nPython 3.14 or later\n\nRecommended: Python 3.14t (free-threaded) for up to 1.8x faster rendering. See [INSTALL_FREE_THREADED.md](INSTALL_FREE_THREADED.md) for setup instructions.\n\n## Cloning and Installation\n\nTo install the latest development version:\n\n```bash\ngit clone https://github.com/llane/bengal.git\ncd bengal\n```\n\n**Using uv (recommended):**\n\n```bash\n# Install uv if not already installed\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n\n# Install Bengal in editable mode for development\nuv pip install -e .\n\n# Or with dev server support (file watching auto-reload)\nuv pip install -e \".[server]\"\n```\n\n**Using pip:**\n\n```bash\npip install -e .\n\n# Or with dev server support (file watching auto-reload)\npip install -e \".[server]\"\n```\n\nFor the released version (once available on PyPI):\n\n```bash\npip install bengal\n\n# Or with dev server support\npip install bengal[server]\n```\n\n**Optional Dependencies:**\n- `server` - File watching for dev server auto-reload (uses `watchdog`)\n- `css` - Advanced CSS optimization (uses `lightningcss`)\n\n## Quick Start\n\n```bash\n# Create a new site. An interactive wizard will guide you through presets for different site types:\n# - Blog (personal/professional writing)\n# - Documentation (technical docs/guides)\n# - Portfolio (showcase your work)\n# - Business (company/product site)\n# - Resume (professional CV site)\n# - Blank or Custom\nbengal new site mysite\ncd mysite\n\n# The wizard creates structure with sample content. You can then:\n# Create additional pages\nbengal new page my-first-post\n\n# Build the site\nbengal site build\n\n# For maximum speed (recommended)\nPYTHON_GIL=0 bengal site build --fast\n\n# Start development server with file watching\nbengal site serve\n```\n\n**\ud83d\udca1 Tip:** Add `fast_mode = true` to the `[build]` section in your `bengal.toml` to enable fast mode by default.\n\n## Build Profiles\n\nBengal provides different build profiles for different use cases:\n\n- **Default**: Minimal output focused on errors and warnings\n- **Theme Developer** (`--theme-dev`): Extra template and navigation validation\n- **Developer** (`--dev`): Full debug output with memory profiling and performance metrics\n\n## Architecture\n\nBengal uses a modular architecture with clear separation between Site, Page, Section, and Asset objects. The rendering pipeline processes Markdown content through templates and applies post-processing steps. An incremental build system tracks file changes and dependencies to rebuild what's necessary.\n\nSee [ARCHITECTURE.md](ARCHITECTURE.md) for details.\n\n## Configuration\n\nCreate a `bengal.toml` or `bengal.yaml` in your project root. Bengal uses sensible defaults for most settings, so you only need to configure what you want to change:\n\n```toml\n[site]\ntitle = \"My Bengal Site\"\nbaseurl = \"https://example.com\"\ndescription = \"Site description\"\nlanguage = \"en\"\nauthor = \"Your Name\"\n\n[build]\noutput_dir = \"public\"\ncontent_dir = \"content\"\nfast_mode = true # Maximum speed (recommended)\ncache_templates = true # Cache compiled templates (10-15% faster)\nauto_regenerate_autodoc = false # Auto-regenerate docs when source changes\n\n# Optional: Disable default features if needed\n# incremental = false # Force full rebuilds\n# minify_html = false # Keep HTML unminified for debugging\n# parallel = false # Disable parallel processing\n# generate_sitemap = false # Skip sitemap\n# generate_rss = false # Skip RSS feed\n\n# Theme Configuration\n[theme]\nname = \"default\" # Theme name (default, or custom theme in themes/ dir)\ndefault_appearance = \"system\" # Options: \"light\", \"dark\", \"system\" (follows OS)\ndefault_palette = \"\" # Color palette (empty = default, or palette name)\n\n# Font Configuration - Auto-downloads and self-hosts Google Fonts\n[fonts]\nprimary = \"Inter:400,600,700\" # Body text\nheading = \"Playfair Display:700\" # Headings\ncode = \"JetBrains Mono:400\" # Code blocks\n\n# Assets\n[assets]\nminify = true\nfingerprint = true\noptimize = true\n\n# Optional: Node-based asset pipeline (requires Node v22 LTS)\n# pipeline = true\n# scss = true\n# postcss = true\n# bundle_js = true\n\n# Markdown Configuration\n[markdown]\nparser = \"mistune\"\ntable_of_contents = true\ngfm = true # GitHub Flavored Markdown\n\n# Taxonomies (tags, categories, etc.)\n[taxonomies]\ntags = \"tags\"\ncategories = \"categories\"\n\n# Menu Configuration\n[[menu.main]]\nname = \"Home\"\nurl = \"/\"\nweight = 1\n\n[[menu.main]]\nname = \"Documentation\"\nurl = \"/docs/\"\nweight = 2\n\n# Search Page (special page, auto-enabled if template exists)\n[search]\nenabled = true\npath = \"/search/\"\ntemplate = \"search.html\"\n\n# API Documentation Generation\n[autodoc.python]\nenabled = true\nsource_dirs = [\"src\"]\noutput_dir = \"content/api\"\ndocstring_style = \"auto\" # Options: auto, google, numpy, sphinx\n\nexclude = [\n \"*/tests/*\",\n \"*/__pycache__/*\",\n]\n\ninclude_private = false # Include _private methods\ninclude_special = false # Include __special__ methods\n\n# CLI Documentation Generation\n[autodoc.cli]\nenabled = true\napp_module = \"myapp.cli:main\" # module_path:attribute format\noutput_dir = \"content/cli\"\nframework = \"click\" # Options: click, argparse, typer\n```\n\n**Default Features** (enabled automatically, no config needed):\n\n- \u2705 Parallel builds\n- \u2705 Incremental builds (18-42x faster!)\n- \u2705 HTML minification (15-25% smaller)\n- \u2705 Asset optimization and fingerprinting\n- \u2705 Sitemap and RSS generation\n- \u2705 JSON + LLM text output formats\n- \u2705 Link validation\n- \u2705 Build quality checks\n\n## Project Structure\n\n```text\nmysite/\n\u251c\u2500\u2500 bengal.toml # Site configuration\n\u251c\u2500\u2500 content/ # Your content files\n\u2502 \u251c\u2500\u2500 index.md\n\u2502 \u2514\u2500\u2500 posts/\n\u2502 \u2514\u2500\u2500 first-post.md\n\u251c\u2500\u2500 templates/ # Custom templates\n\u2502 \u251c\u2500\u2500 base.html\n\u2502 \u2514\u2500\u2500 partials/\n\u251c\u2500\u2500 assets/ # Static assets\n\u2502 \u251c\u2500\u2500 css/\n\u2502 \u251c\u2500\u2500 js/\n\u2502 \u2514\u2500\u2500 images/\n\u2514\u2500\u2500 public/ # Generated output\n```\n\n## Commands\n\nBengal commands are organized into logical groups for better discoverability. Use `bengal --help` to see all command groups, or `bengal <group> --help` to see commands within a group (e.g., `bengal site --help`).\n\n### Site Management (`bengal site`)\n\n```bash\n# Build site\nbengal site build\n\n# Build with options\nbengal site build --fast # Quiet output + guaranteed parallel\nPYTHON_GIL=0 bengal site build --fast # Maximum speed (no GIL warnings)\nbengal site build --incremental # Rebuild changed files\nbengal site build --strict # Fail on errors (for CI)\n\n# Development server (default: 5173)\nbengal site serve --port 5173\n\n# Clean output\nbengal site clean\n```\n\n### Creating New Content (`bengal new`)\n\n```bash\n# Create a new site\nbengal new site mysite\n\n# Create a new page\nbengal new page my-page --section blog\n\n# Create a new layout template\nbengal new layout article\n\n# Create a new partial template\nbengal new partial sidebar\n\n# Create a new theme\nbengal new theme my-theme\n```\n\n### Project Management (`bengal project`)\n\n```bash\n# Initialize project structure\nbengal project init\n\n# Set working profile (dev, themer, writer, ai)\nbengal project profile dev\n\n# Validate configuration\nbengal project validate\n\n# Show project info and statistics\nbengal project info\n\n# View/manage configuration\nbengal project config\nbengal project config site.title \"My New Title\" --set\n```\n\n### Developer Utilities (`bengal utils`)\n\n```bash\n# Generate API documentation\nbengal utils autodoc --source mylib --output content/api\n\n# Theme management\nbengal utils theme list\nbengal utils theme info <slug>\nbengal utils theme discover\nbengal utils theme install bengal-theme-starter\nbengal utils theme new mybrand --mode site --output .\n\n# Asset management\nbengal utils assets minify\nbengal utils assets optimize\n\n# Performance analysis\nbengal utils perf analyze\n\n# Graph analysis\nbengal utils graph analyze --stats --tree\nbengal utils graph pagerank\nbengal utils graph communities\nbengal utils graph bridges\nbengal utils graph suggest\n```\n\n## Themes\n\nBengal supports three types of themes: project themes (under `themes/`), installed themes (via pip/uv), and bundled themes.\n\n```bash\n# List available themes (project | installed | bundled)\nbengal utils theme list\n\n# Show info about a theme slug (paths, version)\nbengal utils theme info <slug>\n\n# Discover swizzlable templates/partials in active theme chain\nbengal utils theme discover\n\n# Install a theme via uv/pip (warns if name is non-canonical)\nbengal utils theme install bengal-theme-starter\n\n# Scaffold a new theme\n## Site-local theme under themes/<slug>\nbengal utils theme new mybrand --mode site --output .\n## Installable package scaffold in current directory\nbengal utils theme new mybrand --mode package --output .\n\n# Or use bengal new theme for quick site-local themes\nbengal new theme mybrand\n```\n\nConfiguration to select and customize a theme:\n\n```toml\n[theme]\nname = \"mybrand\" # Uses project themes/mybrand, installed bengal-theme-mybrand, or bundled\ndefault_appearance = \"system\" # Options: \"light\", \"dark\", \"system\" (follows OS preference)\ndefault_palette = \"\" # Color palette name (empty = default)\n```\n\n**Legacy configuration** (still supported):\n\n```toml\n[build]\ntheme = \"mybrand\" # Simple string format still works for backwards compatibility\n```\n\nNaming convention for installable themes (recommended): `bengal-theme-<slug>`.\n\n## API Documentation (Autodoc)\n\nBengal can automatically generate API documentation from Python source code and CLI applications using AST parsing.\n\n### Python API Documentation\n\nConfigure in `bengal.toml`:\n\n```toml\n[autodoc.python]\nenabled = true\nsource_dirs = [\"src/mylib\"]\noutput_dir = \"content/api\"\ndocstring_style = \"auto\" # Options: auto, google, numpy, sphinx\n\nexclude = [\n \"*/tests/*\",\n \"*/__pycache__/*\",\n]\n\ninclude_private = false # Include _private methods\ninclude_special = false # Include __special__ methods\n```\n\nOr generate on-demand:\n\n```bash\nbengal utils autodoc --source mylib --output content/api\n```\n\n### CLI Documentation\n\nAutomatically document Click, Argparse, or Typer CLI applications:\n\n```toml\n[autodoc.cli]\nenabled = true\napp_module = \"myapp.cli:main\" # module_path:attribute format\noutput_dir = \"content/cli\"\nframework = \"click\" # Options: click, argparse, typer\ninclude_hidden = false # Include hidden commands\n```\n\n### Autodoc Features\n\n- **AST-based extraction** - No imports required, works with any Python code\n- **Multiple docstring formats** - Supports Google, NumPy, and Sphinx styles\n- **Auto-regeneration** - Set `auto_regenerate_autodoc = true` in `[build]` to automatically update docs when source changes\n- **CLI frameworks** - Built-in support for Click, Argparse, and Typer\n- **Smart filtering** - Exclude tests, caches, and private members\n\n## Development Status\n\nBengal is functional and under active development.\n\nSee [ARCHITECTURE.md](ARCHITECTURE.md) for technical details.\n\n## License\n\nMIT License\n",
"bugtrack_url": null,
"license": null,
"summary": "A high-performance static site generator with modular architecture",
"version": "0.1.3",
"project_urls": {
"Bug Tracker": "https://github.com/lbliii/bengal/issues",
"Documentation": "https://github.com/lbliii/bengal",
"Homepage": "https://github.com/lbliii/bengal",
"Repository": "https://github.com/lbliii/bengal"
},
"split_keywords": [
"static-site-generator",
" ssg",
" documentation",
" markdown",
" website",
" free-threading",
" performance"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "55edf63c404a1077760cb6cdb69e1f821da105d71ace9a230b21213f5b653e77",
"md5": "b77c111d9d4c828932d7adce7ca89142",
"sha256": "d0be071dfd905b1d61f146ad2454cb84ac9ad5fecd8aae8d001edd1b4320d5e9"
},
"downloads": -1,
"filename": "bengal-0.1.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b77c111d9d4c828932d7adce7ca89142",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.14",
"size": 1016534,
"upload_time": "2025-10-20T13:23:47",
"upload_time_iso_8601": "2025-10-20T13:23:47.175253Z",
"url": "https://files.pythonhosted.org/packages/55/ed/f63c404a1077760cb6cdb69e1f821da105d71ace9a230b21213f5b653e77/bengal-0.1.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b12c56c830016963dc180652040c75304dfe297e6e9dd12525c665df996995d1",
"md5": "c4f9e98c9f45521f56036f2b85ea10a8",
"sha256": "b1fa5384e8518c97f132fcf3a389db9c19d3566545e88b84d2bf97b62e0fdc9b"
},
"downloads": -1,
"filename": "bengal-0.1.3.tar.gz",
"has_sig": false,
"md5_digest": "c4f9e98c9f45521f56036f2b85ea10a8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.14",
"size": 811533,
"upload_time": "2025-10-20T13:23:49",
"upload_time_iso_8601": "2025-10-20T13:23:49.119523Z",
"url": "https://files.pythonhosted.org/packages/b1/2c/56c830016963dc180652040c75304dfe297e6e9dd12525c665df996995d1/bengal-0.1.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-20 13:23:49",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "lbliii",
"github_project": "bengal",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "bengal"
}