Next-generation terminal text & UI formatting engine
Project description
Textforge
Textforge is a modular terminal text and UI rendering toolkit for Python 3.14. It distills a monolithic prototype into a composable package with components, effects, templates, and a friendly tfprint API.
Quick start
from textforge import tfprint, components as C
tfprint('[cyan]Welcome to Textforge[reset]')
tfprint(C.progress_bar(current=72, maximum=100, label='Loading', color='green'))
Install: pip install textforge
Feature matrix
| Area | Status | Notes |
|---|---|---|
| Markup engine | ✅ | Color/effect tags, escaping, custom tags via MarkupEngine |
| Components | ✅ | 30+ (typography, containers, data, status, nav, visual, interactive) |
| Layout | ✅ | Columns, grid, measurement hooks; deterministic results |
| Text engine | ✅ | Graphemes, emoji width, bidi; soft hyphen and tabs |
| Themes | ✅ | ThemeManager with palette tokens and per-thread overrides |
| Exporters | ✅ | ANSI → HTML, SVG, Text, PDF (basic) |
| Live updates | ✅ | Console.live() with diff-based updates |
| Templates | ✅ | Showcase, Dashboard, Business, CLI app presets |
| CLI | ✅ | list, demo, preview, export, typewriter, new, bench, plugins, dsl, theme |
| Accessibility | ✅ | utils/accessibility integration points |
| Plugins | ✅ | Runtime registry (PluginRegistry); entry-point discovery planned |
| Jupyter | ✅ | Basic integration utilities in utils/jupyter.py |
Gallery
Generated from real components. See docs/GALLERY.md for details and more formats.
Generate locally:
python tools/generate_gallery.py --out docs/gallery
CLI usage
textforge list
textforge demo --preset game-header
textforge demo --preset inventory
textforge demo --preset loading
textforge demo --preset full
textforge demo --preset dashboard
textforge demo --preset all
textforge theme list
textforge typewriter "Forging text..." --delay 0.03 --color cyan
textforge preview README.md
textforge export -f html < some_ansi.txt > out.html
textforge new myproj
See docs/CLI.md for the full command reference and examples.
Documentation
- API:
docs/API_REFERENCE.md - Usage guide:
docs/USAGE_GUIDE.md - Examples:
docs/EXAMPLES.md - Markup language:
docs/MARKUP.md - Theming:
docs/THEMING.md - Plugin API:
docs/PLUGINS.md - CLI guide:
docs/CLI.md - Migration notes:
docs/MIGRATION.md - Architecture:
docs/ARCHITECTURE.md
License
See pyproject.toml for license metadata.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file textforge_tf-0.5.0.tar.gz.
File metadata
- Download URL: textforge_tf-0.5.0.tar.gz
- Upload date:
- Size: 189.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4c05eb932e9e5908d988793c9a0bd7cfe8effa903d0650198dc5a3ce6473712
|
|
| MD5 |
87b07168d7e7f83824f0cd3d936999eb
|
|
| BLAKE2b-256 |
cdbc6fd3a41fbe739912cce45a0c85ee048213ee26217dd8943cf1277f2b1f46
|
File details
Details for the file textforge_tf-0.5.0-py3-none-any.whl.
File metadata
- Download URL: textforge_tf-0.5.0-py3-none-any.whl
- Upload date:
- Size: 159.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27e2666e04c6a1cea5b393126bca636c01d314b1319dcd2928dfcfe181e4d2a0
|
|
| MD5 |
a81c6c40f595c6dafd05630b05ec6abc
|
|
| BLAKE2b-256 |
1e63909b8e42df3cd2f10592451872d8a92eb0d0357a1337b65a79b65e71154a
|