Skip to content

k5cents/gluedown

Repository files navigation

gluedown

Lifecycle: experimental CRAN status Downloads Codecov test coverage R build status

The goal of gluedown is to ease the transition from R’s powerful vectors to formatted markdown text. The package uses glue() to wrap character vectors in markdown syntax. With the knitr package, users can print the formatted vectors directly to the body of a markdown document.

Installation

Install the release version from CRAN:

install.packages("gluedown")

The development version can be installed from GitHub:

# install.packages("remotes")
remotes::install_github("k5cents/gluedown")

Usage

library(gluedown)
library(stringr)
library(rvest)

Use the results='asis' chunk option to print the formatted output to the body of a document.

```{r results='asis'}
md_order(x = c("Legislative", "Executive", "Judicial"))
```
  1. Legislative
  2. Executive
  3. Judicial

Lists

Printing vectors as markdown lists was the initial inspiration for the package. Here, we use five different functions to create five elements of a new vector.

inlines <- c(
  md_bold("Alabama"),
  md_code("Alaska"),
  md_link("Arizona" = "https://az.gov"),
  md_italic("Arkansas"),
  md_strike("California")
)
print(inlines)
#> [1] "**Alabama**"               "`Alaska`"                 
#> [3] "[Arizona](https://az.gov)" "_Arkansas_"               
#> [5] "~~California~~"

Then we can print that new vector as a list, including the inline formatting.

md_bullet(inlines)
  • Alabama
  • Alaska
  • Arizona
  • Arkansas
  • California

Inline

You can also use gluedown to format R inline code results.

name <- sample(state.name, size = 1)
abb <- state.abb[match(name, state.name)]
# `r md_bold(name)`
# `r md_italic(abb)`

In this case, our randomly selected state is New Hampshire, which has the abbreviation NH.

Pipes

All functions are designed to fit within the tidyverse ecosystem and work with pipes.

read_html("https://w.wiki/A58") %>% 
  html_node("blockquote") %>% 
  html_text(trim = TRUE) %>% 
  str_remove("\\[.*\\]") %>% 
  md_quote()

We the People of the United States, in Order to form a more perfect Union, establish Justice, insure domestic Tranquility, provide for the common defence, promote the general Welfare, and secure the Blessings of Liberty to ourselves and our Posterity, do ordain and establish this Constitution for the United States of America.

Extensions

The package primarily uses GitHub Flavored Markdown, with support for useful extensions like task lists.

legislation <- c("Houses passes", "Senate concurs", "President signs")
md_task(legislation, check = 1:2)
  • Houses passes
  • Senate concurs
  • President signs

Contribute

Please note that the gluedown project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.