Awesome
gleam-community/ansi
Format text with ANSI escape sequences.
✨ This project is written in pure Gleam so you can use it anywhere Gleam runs: Erlang, Elixir, Node, Deno, even some browsers!
Quickstart
import gleam/io
import gleam_community/ansi
pub fn main() {
let greeting = "Hello, " <> ansi.pink("world") <> "!"
greeting
|> ansi.bg_white
|> io.println
}
Installation
gleam_community
packages are published to hex.pm
with the prefix gleam_community_
. You can add them to your Gleam projects directly:
gleam add gleam_community_ansi
The docs can be found over at hexdocs.pm.
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:
$ echo "\e[33mhello"
-
Colour the background pink:
$ echo "\e[45mhello"
-
Render text italic:
$ 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!