Skip to content

jbkunst/figletr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

figletr

The goal of figletr is to write message using figlet fonts. You can also can parse figlet fonts (*.flf files).

Installation

You can install the released version of figletr from CRAN with:

install.packages("figletr")

And the development version from GitHub with:

# install.packages("devtools")
devtools::install_github("jbkunst/figletr")

Usage

library(figletr)

figlet(Sys.Date())
#>   ____     ___    ____     ___             ___    _  _             ____     ___
#>  |___ \   / _ \  |___ \   / _ \           / _ \  | || |           |___ \   / _ \
#>    __) | | | | |   __) | | | | |  _____  | | | | | || |_   _____    __) | | (_) |
#>   / __/  | |_| |  / __/  | |_| | |_____| | |_| | |__   _| |_____|  / __/   \__, |
#>  |_____|  \___/  |_____|  \___/           \___/     |_|           |_____|    /_/
#> 

text <- "Figlet in R!"

figlet(text)
#>   _____   _           _          _       _             ____    _
#>  |  ___| (_)   __ _  | |   ___  | |_    (_)  _ __     |  _ \  | |
#>  | |_    | |  / _` | | |  / _ \ | __|   | | | '_ \    | |_) | | |
#>  |  _|   | | | (_| | | | |  __/ | |_    | | | | | |   |  _ <  |_|
#>  |_|     |_|  \__, | |_|  \___|  \__|   |_| |_| |_|   |_| \_\ (_)
#>               |___/

figlet(text, "banner")
#>  #######                                                       ######   ###
#>  #        #   ####   #       ######  #####      #  #    #      #     #  ###
#>  #        #  #    #  #       #         #        #  ##   #      #     #  ###
#>  #####    #  #       #       #####     #        #  # #  #      ######    #
#>  #        #  #  ###  #       #         #        #  #  # #      #   #
#>  #        #  #    #  #       #         #        #  #   ##      #    #   ###
#>  #        #   ####   ######  ######    #        #  #    #      #     #  ###
#> 

figlet(text, "contessa")
#> .___    .    ,         .__  |
#> [__ * _ | _ -+-  *._   [__) |
#> |   |(_]|(/, |   |[ )  |  \ *
#>      ._|

figlet(text, "smkeyboard")
#>  ____  ____  ____  ____  ____  ____  _________  ____  ____  _________  ____  ____
#> ||F ||||i ||||g ||||l ||||e ||||t ||||       ||||i ||||n ||||       ||||R ||||! ||
#> ||__||||__||||__||||__||||__||||__||||_______||||__||||__||||_______||||__||||__||
#> |/__\||/__\||/__\||/__\||/__\||/__\||/_______\||/__\||/__\||/_______\||/__\||/__\|

figlet(text, "smisome1")
#>     ___       ___       ___       ___       ___       ___            ___       ___            ___
#>    /\  \     /\  \     /\  \     /\__\     /\  \     /\  \          /\  \     /\__\          /\  \
#>   /::\  \   _\:\  \   /::\  \   /:/  /    /::\  \    \:\  \        _\:\  \   /:| _|_        /::\  \
#>  /::\:\__\ /\/::\__\ /:/\:\__\ /:/__/    /::\:\__\   /::\__\      /\/::\__\ /::|/\__\      /::\:\__\
#>  \/\:\/__/ \::/\/__/ \:\:\/__/ \:\  \    \:\:\/  /  /:/\/__/      \::/\/__/ \/|::/  /      \;:::/  /
#>     \/__/   \:\__\    \::/  /   \:\__\    \:\/  /   \/__/          \:\__\     |:/  /        |:\/__/
#>              \/__/     \/__/     \/__/     \/__/                    \/__/     \/__/          \|__|

figlet(text, "speed")
#> _______________          ______      _____        _____                ________ ______
#> ___  ____/___(_)_______ ____  /_____ __  /_       ___(_)_______        ___  __ \___  /
#> __  /_    __  / __  __ `/__  / _  _ \_  __/       __  / __  __ \       __  /_/ /__  /
#> _  __/    _  /  _  /_/ / _  /  /  __// /_         _  /  _  / / /       _  _, _/  /_/
#> /_/       /_/   _\__, /  /_/   \___/ \__/         /_/   /_/ /_/        /_/ |_|  (_)
#>                 /____/

figlet(text, "univers")
#> 
#> 88888888888  88               88                           88                   88888888ba   88
#> 88           ""               88                ,d         ""                   88      "8b  88
#> 88                            88                88                              88      ,8P  88
#> 88aaaaa      88   ,adPPYb,d8  88   ,adPPYba,  MM88MMM      88  8b,dPPYba,       88aaaaaa8P'  88
#> 88"""""      88  a8"    `Y88  88  a8P_____88    88         88  88P'   `"8a      88""""88'    88
#> 88           88  8b       88  88  8PP"""""""    88         88  88       88      88    `8b    ""
#> 88           88  "8a,   ,d88  88  "8b,   ,aa    88,        88  88       88      88     `8b   aa
#> 88           88   `"YbbdP"Y8  88   `"Ybbd8"'    "Y888      88  88       88      88      `8b  88
#>                   aa,    ,88
#>                    "Y8bbdP"

figlet(text, "sblood")
#>  @@@@@@@@ @@@  @@@@@@@  @@@      @@@@@@@@ @@@@@@@      @@@ @@@  @@@      @@@@@@@  @@@
#>  @@!      @@! !@@       @@!      @@!        @@!        @@! @@!@!@@@      @@!  @@@ @@@
#>  @!!!:!   !!@ !@! @!@!@ @!!      @!!!:!     @!!        !!@ @!@@!!@!      @!@!!@!  !@!
#>  !!:      !!: :!!   !!: !!:      !!:        !!:        !!: !!:  !!!      !!: :!!
#>   :       :    :: :: :  : ::.: : : :: :::    :         :   ::    :        :   : : :.:
#> 

Changing default font

options(figletr.default_font = "mini")

figlet("Figlet in R!")
#>   _                                    _
#>  |_  o   _   |   _   _|_    o  ._     |_)  |
#>  |   |  (_|  |  (/_   |_    |  | |    | \  o
#>          _|

figlet("Hello")
#> 
#>  |_|   _   |  |   _
#>  | |  (/_  |  |  (_)
#> 

Change printer

Example: Using cat instead of message

# message is the dafault
figlet("Figlet in R!")
#>   _                                    _
#>  |_  o   _   |   _   _|_    o  ._     |_)  |
#>  |   |  (_|  |  (/_   |_    |  | |    | \  o
#>          _|

options(figletr.printer = cat)

figlet("Figlet in R!")
#>   _                                    _     
#>  |_  o   _   |   _   _|_    o  ._     |_)  | 
#>  |   |  (_|  |  (/_   |_    |  | |    | \  o 
#>          _|

# revert 
options(figletr.printer = message)

You can use the crayon package to combine cat and a color:

This README don’t print the console colors

library(figletr)
library(crayon)

green_cat <- function(...) cat(green(...))

options(figletr.printer = green_cat)

figlet("This is green")


# Fancy example from crayon
ivory <- make_style("ivory")
bgMaroon <- make_style("maroon", bg = TRUE)
fancy <- combine_styles(ivory, bgMaroon)

fancy_cat <- function(...) cat(fancy(...))

options(figletr.printer = fancy_cat)

figlet("Oh! I'm fancy", font = "standard")

Extra

Fonts

Info about available fonts:

dplyr::glimpse(figletr::fonts)
#> Rows: 148
#> Columns: 8
#> $ font               <chr> "3-d", "3x5", "5lineoblique", "acrobatic", "alli...
#> $ baseline           <dbl> 8, 4, 5, 9, 7, 7, 5, 5, 7, 8, 7, 7, 7, 8, 5, 6, ...
#> $ comment_lines      <dbl> 1, 4, 2, 15, 3, 4, 12, 16, 12, 3, 3, 3, 2, 2, 23...
#> $ heigth             <dbl> 8, 6, 7, 12, 7, 7, 7, 6, 8, 8, 7, 7, 8, 8, 6, 8,...
#> $ max_length         <dbl> 20, 6, 20, 25, 26, 26, 10, 10, 54, 20, 20, 20, 2...
#> $ old_layout         <dbl> -1, -1, 15, 0, 32, 32, -1, 16, 0, -1, -1, -1, -1...
#> $ author             <chr> "Daniel Henninger", "Richard Kirk & Daniel Cabez...
#> $ font_creation_date <chr> "", "", "1995/01", "1994/08", "1994/06", "1994/0...

Demo

figlet_demo(msg = "Text to test")

Parser

path_to_font <- system.file(paste0("fonts/contessa.flf"), package = "figletr")
path_to_font
#> [1] "C:/Users/Joshua/Documents/R/win-library/3.6/figletr/fonts/contessa.flf"

font <- figletr::parse_font(path_to_font)

str(head(font))
#> List of 6
#>  $  : chr [1:4] "  " "  " "  " "  "
#>  $ !: chr [1:4] " | " " | " " * " "   "
#>  $ ": chr [1:4] "* * " "` ` " "    " "    "
#>  $ #: chr [1:4] "_|_|_ " "_|_|_ " " | |  " "      "
#>  $ $: chr [1:4] " _;_. " "(_|_  " "._|_) " "  `   "
#>  $ %: chr [1:4] "* / " " /  " "/ * " "    "

R <- font[["R"]]

R
#> [1] ".__ "  "[__)"  "|  \\" "    "

for(i in 1:length(R)) message(R[i])
#> .__
#> [__)
#> |  \
#> 

Related work

%>% OMG! I swear I checked to see if there was any previous implementation of figlet fonts in R.

So what can this package offer?:

  • The possibily to change/fix the default font.
  • Relative simple integration with {crayon} package.
  • A figlet font parser. You can obtain a character list with every character.

About

No description, website, or topics provided.

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages