Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gleam-community/ansi
ANSI colours, formatting, and control codes
https://github.com/gleam-community/ansi
Last synced: 27 days ago
JSON representation
ANSI colours, formatting, and control codes
- Host: GitHub
- URL: https://github.com/gleam-community/ansi
- Owner: gleam-community
- License: apache-2.0
- Created: 2022-12-15T00:46:31.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-01-06T18:46:11.000Z (11 months ago)
- Last Synced: 2024-03-15T15:22:11.385Z (9 months ago)
- Language: Gleam
- Homepage:
- Size: 27.3 KB
- Stars: 18
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
Awesome Lists containing this project
- awesome-gleam - gleam_community_ansi - [📚](https://hexdocs.pm/gleam_community_ansi/) - ANSI colours, formatting, and control codes (Packages / Command Line)
README
# gleam-community/ansi
Format text with ANSI escape sequences.
[![Package Version](https://img.shields.io/hexpm/v/gleam_community_ansi)](https://hex.pm/packages/gleam_community_ansi)
[![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3)](https://hexdocs.pm/gleam_community_ansi/)✨ This project is written in _pure Gleam_ so you can use it anywhere Gleam runs:
Erlang, Elixir, Node, Deno, even [some browsers](https://bit.ly/devtools-console-ansi-support)!---
## Quickstart
```gleam
import gleam/io
import gleam_community/ansipub fn main() {
let greeting = "Hello, " <> ansi.pink("world") <> "!"greeting
|> ansi.bg_white
|> io.println
}```
## Installation
`gleam_community` packages are published to [hex.pm](https://hex.pm/packages/gleam_community_ansi)
with the prefix `gleam_community_`. You can add them to your Gleam projects directly:```sh
gleam add gleam_community_ansi
```The docs can be found over at [hexdocs.pm](https://hexdocs.pm/gleam_community_ansi).
## ANSI-what?
ANSI escape sequences date back to the 70s as a standard way to format text on
various video text terminals. Since then they have been adopted by many software
terminal emulators and platforms, including some Web browsers, and are a simple
way to format text without platform-specific APIs.The point of this package is to abstract the specific codes away and give you an
easy-to-understand API for formatting and colouring terminal text. Still, here is
a quick couple of examples of what's happening under the hood.You can copy these examples straight into your terminal to see them in action!
- Colour text yellow:
```shell
$ echo "\e[33mhello"
```- Colour the background pink:
```shell
$ echo "\e[45mhello"
```- Render text italic:
```shell
$ echo "\e[3mhello\e[23m"
```As you can see, the escape sequences are a bit obscure. Sure, you could hard code
them, or you could use this package!