Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/r-lib/crayon
ποΈ R package for colored terminal output β now superseded by cli
https://github.com/r-lib/crayon
r
Last synced: 3 months ago
JSON representation
ποΈ R package for colored terminal output β now superseded by cli
- Host: GitHub
- URL: https://github.com/r-lib/crayon
- Owner: r-lib
- License: other
- Created: 2014-09-22T20:07:22.000Z (about 10 years ago)
- Default Branch: main
- Last Pushed: 2024-08-05T16:00:47.000Z (3 months ago)
- Last Synced: 2024-08-05T18:04:44.111Z (3 months ago)
- Topics: r
- Language: R
- Homepage: http://r-lib.github.io/crayon/
- Size: 2.25 MB
- Stars: 325
- Watchers: 7
- Forks: 37
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
- jimsghstars - r-lib/crayon - ποΈ R package for colored terminal output β now superseded by cli (R)
README
## π crayon is now superseded by the cli package. π
> Please use [cli](https://github.com/r-lib/cli) for new projects.
>
> crayon is still supported and will receive important bug fixes,
> but no new features.
> Stylish terminal output in R
[![Lifecycle: superseded](https://img.shields.io/badge/lifecycle-superseded-blue.svg)](https://lifecycle.r-lib.org/articles/stages.html#superseded)
[![](https://www.r-pkg.org/badges/version/crayon)](https://r-pkg.org/pkg/crayon)
[![CRAN RStudio mirror downloads](https://cranlogs.r-pkg.org/badges/crayon)](https://r-pkg.org/pkg/crayon)
[![R-CMD-check](https://github.com/r-lib/crayon/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/r-lib/crayon/actions/workflows/R-CMD-check.yaml)
[![Codecov test coverage](https://codecov.io/gh/r-lib/crayon/branch/main/graph/badge.svg)](https://app.codecov.io/gh/r-lib/crayon?branch=main)With crayon it is easy to add color to terminal output, create styles for notes, warnings, errors; and combine styles.
ANSI color support is automatically detected and used. Crayon was largely
inspired by [chalk](https://github.com/chalk/chalk).## Installation
Stable version:
```r
install.packages("crayon")
```Development version:
```r
pak::pak("r-lib/crayon")
```## Styles
Crayon defines several styles that can be combined. Each style in the list
has a corresponding function with the same name.### General styles
* `reset`
* `bold`
* `blurred` (usually called `dim`, renamed to avoid name clash)
* `italic` (not widely supported)
* `underline`
* `inverse`
* `hidden`
* `strikethrough` (not widely supported)### Text colors
* `black`
* `red`
* `green`
* `yellow`
* `blue`
* `magenta`
* `cyan`
* `white`
* `silver` (usually called `gray`, renamed to avoid name clash)### Background colors
* `bgBlack`
* `bgRed`
* `bgGreen`
* `bgYellow`
* `bgBlue`
* `bgMagenta`
* `bgCyan`
* `bgWhite`### Screenshot on OSX
![](https://user-images.githubusercontent.com/660288/102484516-4d205480-405e-11eb-93fa-37a6cd6d4066.png)
## Usage
The styling functions take any number of character vectors as arguments,
and they concatenate and style them:```r
library(crayon)
cat(blue("Hello", "world!\n"))
```Crayon defines the `%+%` string concatenation operator to make it easy
to assemble strings with different styles.```r
cat("... to highlight the " %+% red("search term") %+% " in a block of text\n")
```Styles can be combined using the `$` operator:
```r
cat(yellow$bgMagenta$bold('Hello world!\n'))
```Styles can also be nested, and then inner style takes precedence:
```r
cat(green(
'I am a green line ' %+%
blue$underline$bold('with a blue substring') %+%
' that becomes green again!\n'
))
```
It is easy to define your own themes:```r
error <- red $ bold
warn <- magenta $ underline
note <- cyan
cat(error("Error: subscript out of bounds!\n"))
cat(warn("Warning: shorter argument was recycled.\n"))
cat(note("Note: no such directory.\n"))
```## 256 colors
Most modern terminals support the ANSI standard for 256 colors,
and you can define new styles that make use of them. The `make_style`
function defines a new style. It can handle R's built in color names
(see the output of `colors()`) as well as RGB specifications via the
`rgb()` function. It automatically chooses the ANSI colors that
are closest to the specified R and RGB colors, and it also has
a fallback to terminals with 8 ANSI colors only.```r
ivory <- make_style("ivory")
bgMaroon <- make_style("maroon", bg = TRUE)
fancy <- combine_styles(ivory, bgMaroon)
cat(fancy("This will have some fancy colors"), "\n")
```![](https://user-images.githubusercontent.com/660288/102484539-53aecc00-405e-11eb-9f24-85b4c10b5e38.png)
## License
MIT @ GΓ‘bor CsΓ‘rdi