Metadata-Version: 2.4
Name: banger
Version: 1.1.0
Summary: Classic Unix banner command on steroids with TTF support and more.
Author-email: Marcin Orlowski <mail@marcinOrlowski.com>
License: MIT
Project-URL: Homepage, https://github.com/MarcinOrlowski/banger
Project-URL: Repository, https://github.com/MarcinOrlowski/banger
Project-URL: Issues, https://github.com/MarcinOrlowski/banger/issues
Keywords: banner,ascii,text,console
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Text Processing
Classifier: Topic :: Utilities
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: PyYAML>=6.0
Requires-Dist: Pillow>=8.0.0
Requires-Dist: platformdirs>=3.0.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Requires-Dist: black>=23.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Requires-Dist: mypy>=1.0; extra == "dev"
Requires-Dist: wemake-python-styleguide; extra == "dev"
Requires-Dist: wheel; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Requires-Dist: faker; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: flake8-noqa; extra == "dev"
Requires-Dist: flake8-docstrings; extra == "dev"
Requires-Dist: types-Markdown; extra == "dev"
Requires-Dist: types-PyYAML; extra == "dev"
Requires-Dist: python-dateutil; extra == "dev"
Dynamic: license-file

```ascii
▙▄▄                ▗▟█▙  ▟█▙    ▐▄▄              ▄▄▄▄▄▄▄▄▄█             ▗█    ▙▄▖
▜██████████▄▖        ▀    ▀ ▗█  ▝█████████▙▄ ▗▟██████████▀▚▖   ▗▄█████████▛   ▜█████████▙▄
█▙▄▀▀▀▀▀▀█████▖  ▗▄███████████  █▄▄▀▀▀▀▜█████ ████▀     ▗███▌ ▟██████▀▀▀▀▄▄█▌ █▙▄▛▀▀▀▀▜████▌
████      ▟███▌ ▟████▀   ▀▀▀▀▄▌ ████     ████ ████▖     ▐███▌ ████▀    ▄████▌ ████     ▐███▌
██████████████  ████      ▐███▌ ████     ████ ▝█████████████▌ ██████████████▌ ████▄▄▄▄▄▟███▌
████     ▝▜███▌ ████      ▐███▌ ████     ████    ▀▀▘    ▀███▌ ████▙▖     ▄▄▄  ████████████▀
████      ▟███▌ ████▖     ▟███▌ ████     ████  ▄▄        ███▘ ▝▜████████████  ████  ▝███▙
██████████████  ▝█████████████▌ ▄▄▄▄     ▄▄▄▄   ▜▄▄▄▟███████    ▝▀▀▀▀▀▀▀▀▀▀▘  ████    ▜███▖
▀▀▀▀▀▀▀▀▀▀▀▀▀     ▀▀▀▀▀▀▀▀▝▀▀▀▘ ▝▘▝▘     ▝▘▝▘  ▐█▀▀▀▀▀▀▀▀▀▀                   ▀▀▀▀     ▝▀▀▀▘
                                               ▝
┅┅┅ Your banner deserves to be a bänger ┅┅┅┅┅┅ https://github.com/MarcinOrlowski/banger ┅┅┅
```

![PyPI - Version](https://img.shields.io/pypi/v/banger?style=flat)
![GitHub License](https://img.shields.io/github/license/MarcinOrlowski/banger)
[![PyPI Downloads](https://static.pepy.tech/badge/banger)](https://pepy.tech/projects/banger)

---

# What it is?

`Bänger` (pronounced just `banger`) is a modern tribute to the classic Unix `banner` command line
utility that produces text banners, with additional features added a top:  multiple built-in ASCII
character set and support for rendering any TTF/OTF font with Unicode!

## Key Features

- **Built-in fonts**: use built-in fonts to bang!
- **Endless font options**: use any TTF/OTF font installed on your system,
- **Better typography**  with proportional spacing that saves significant screen space,
- **Compatible** with original Unix `banner` tool,
- and **moar**!

---

## Quick start

Create a banner with the default font:

```ascii
$ banger "Hello World"

█  █      ▀█  ▀█           █   █          ▀█     █
█▀▀█ ▄▀▀▄  █   █  ▄▀▀▄     █   █ ▄▀▀▄ █▄▀  █  ▄▀▀█
█  █ █▀▀   █   █  █  █     █ █ █ █  █ █    █  █  █
█  █ ▀▄▄▀ ▄█▄ ▄█▄ ▀▄▄▀     █▀ ▀█ ▀▄▄▀ █   ▄█▄ ▀▄▄▀
```

NOTE: to maintain behavior of the original `banner` command, you need to quote the text to keep it
as a single argument. Otherwise, the command will split the text into one word per line.

## Using TTF/OTF fonts

`Bänger` can also use **any** TTF/OTF font installed on your system and convert it to beautiful
ASCII art using Unicode quadrant blocks. Let's use TTF font of size 70pt and squeeze final banner
into 10 terminal lines:

```ascii
$ banger --ttf-font ~/.fonts/j/JetBrainsMonoNL_Regular.ttf --ttf-size 70 --ttf-lines 10 DäNgęR

█████████▙▄▄     ▐███   ▐██▌   ████▙       ███  ▗▄██████▄▐██▌  ▗▄▟██████▙▄▖  ██████████▙▄▄
██▌      ▀▜██▖                 ███▜█▙      ███ ▟██▛▘    ▝▜██▌ ▟██▛      ▜██▙ ███▌      ▀███▖
██▌       ▝███    ▄▄▄▄▄▄▄▄▄    ███ ▜██▖    ███ ███       ▐██▌ ███▄▄▄▄▄▄▄▄███ ███▌       ▐██▌
██▌        ███  ▟██▀▀▘ ▝▀▀██▙  ███  ▜██▖   ███ ███▖      ▐██▌ ███▀▀▀▀▀▀▀▀▀▀▀ ███▌     ▗▄██▛▘
██▌        ███     ▄▄▄▄▄▄▄███▌ ███   ▜██▖  ███ ▐██▙▖    ▄▟██▌ ▜██▖      ▗▄▄▄ ██████████▀▀▘
██▌        ███ ▗▟██▀▀▀▀▀▀▀███▌ ███    ▜██▖ ███  ▝▀▜████▛▀▐██▌  ▀███▄▄▄▄▟██▀▘ ███▌   ▜██▙
██▌       ▐██▛ ███        ███▌ ███     ▀██▖███           ▐██▌     ▝▀▜█▛▀     ███▌    ▝███▖
██▙▄▄▄▄▄▄███▀  ▜██▙▄▄▄▄▄▄█▜██▌ ███      ▝█████   ▗▄▄▄▄▄▄▄███▘      ▐█▙       ███▌     ▝▜██▙
▀▀▀▀▀▀▀▀▀▘       ▝▀▀▀▀▀▀  ▝▀▀▘ ▀▀▀       ▝▀▀▀▀   ▝▀▀▀▀▀▀▀▀          ▝▀▀▀▀▘   ▀▀▀▘       ▀▀▀▘
```

---

## Further reading

- [Installation guide](docs/README.md#installation)
- [Project documentation](docs/README.md)
- [Usage examples](docs/README.md#usage)
- [What's new?](CHANGES.md)

---

## License

- Written and copyrighted &copy;2025 by Marcin Orlowski <https://marcinOrlowski.com>
- Bänger is the open-sourced software licensed under
  the [MIT license](http://opensource.org/licenses/MIT)
