knitr::opts_chunk$set( comment = "#>", collapse = TRUE )
cowsay
makes it easy to print messages, warnings, or character strings with various animals and other creatures.
Stable version from CRAN
install.packages("cowsay")
or dev version from GitHub
install.packages("devtools") devtools::install_github("sckott/cowsay")
library(cowsay)
The animals, and other ascii creatures, are all in a single named character vector that is exported from the package. Thus, you can access each animal yourself, and do whatever you want with it.
As of this writing, there are r length(animals)
animals.
The names of the animals:
sort(names(animals))
For example, access the cow
cow <- animals[['cow']] cat(cow)
We expose the function say()
in this package, which you can use to envoke any animal in the package, and make it say whatever you want. Some examples:
say("why did the chicken cross the road", "chicken")
say("boo!", "ghost")
say("nope, don't do that", type = "warning")
There's the special time
, that will print out the time
say('time')
You can use say()
and give back a string, message, or warning
Message
say("hello world", by = "cow")
Warning
say("hello world", by = "cow", type = "warning")
String
say("hello world", by = "cow", type = "string")
library(jsonlite) library(multicolor)
We rely on the crayon
package for color and the multicolor
package for multiple colors. The arguments you supply to what_color
and by_color
can be strings -- either the color name or a hex value -- or a function of class crayon
.
say(what = "fortune", by = "rabbit", what_color = "#FF4500", by_color = "red")
colors()
are all supported as are any rgb
values that evaluate to a string. Supplying multiple colors for what_color
or by_color
is allowed, as long as they're in a character vector. "rainbow" is also allowed.
# make a vector of animals safe to use on windows in case vignette built on windows not_on_windows <- c('shortcat','longcat','fish','signbunny','stretchycat', 'anxiouscat','longtailcat','grumpycat','mushroom') names_safe <- names(animals)[!names(animals) %in% not_on_windows]
say(what = "fortune", by = sample(names_safe, 1), what_color = rgb(.1, .2, .3), by_color = sample(colors(), 5), type = "message")
say(what = "fortune", by = sample(names_safe, 1), what_color = rgb(.1, .2, .3), by_color = sample(colors(), 5), type = "message")
"rainbow"
is the same as c("red", "orange", "yellow", "green", "blue", "purple")
. Saves you a bit of typing.
say(what = "foobar", by = "shark", what_color = "rainbow", by_color = c("rainbow", "rainbow", "rainbow"))
The main advantage of using crayon
functions instead of color strings is the ability to combine styles together.
library(crayon) say(what = "fortune", by = "egret", what_color = bgBlue$white$italic, by_color = bold$green)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.