gleam-community / ansi

ANSI colours, formatting, and control codes
Apache License 2.0
24 stars 0 forks source link

gleam-community/ansi

Format text with ANSI escape sequences.

Package Version Hex Docs

✨ 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!

As you can see, the escape sequences are a bit obscure. Sure, you could hard code them, or you could use this package!