terminal_link

Package Version Hex Docs

Easily create clickable terminal hyperlinks in Gleam programs.

terminal_link is a loose port of https://github.com/mainrs/terminal-link-rs and https://github.com/zkat/supports-hyperlinks to Gleam.

gleam add terminal_link

Printing a hyperlink to terminal

import gleam/io
import gleam/option.{type Option, None}
import terminal_link.{
  TerminalLink, terminal_link_to_string, terminal_supports_links,
}

fn main() {
  let destination = "https://github.com/hougesen"
  let text = "github.com/hougesen"
  let id: Option(String) = None

  let link = TerminalLink(destination, text, id)

  io.println(terminal_link_to_string(link))
}

Validating a terminal supports terminal links

import gleam/io
import gleam/option.{None}
import terminal_link.{TerminalLink, terminal_link_to_string}

fn main() {
  let destination = "https://github.com/hougesen"

  let link = TerminalLink(destination, "github.com/hougesen", None)

  case terminal_supports_links() {
    // Print the clickable link if the terminal supports it
    True -> io.println(terminal_link_to_string(link))
    // Or use the full link as fallback
    False -> io.println(destination)
  }
}

Further documentation can be found at https://hexdocs.pm/terminal_link.

Development

# Run the project
gleam run

# Run the tests
gleam test
Search Document