marquee is a markdown parser and renderer for the R graphics engine. It can be used to render rich text formatted as markdown (CommonMark) inside R graphics such as ggplot2 or other graphics built on grid.
# You can install marquee from CRAN
install.packages("marquee")
# Or get the development version from Github using pak
::pak("r-lib/marquee") pak
The main function of the package is marquee_grob()
which
creates a grob based on markdown text and a style that can be rendered
with grid:
# Let's render this readme
<- paste(readLines("README.Rmd")[-seq_len(17)], collapse = "\n")
readme
library(marquee)
library(grid)
<- classic_style(
fancy_style body_font = "baskerville",
header_font = "marker felt",
code_font = "fira code"
|>
) modify_style("cb", background = linearGradient(
colours = c("lightblue", "white"),
x1 = 0, y1 = 1, x2 = 0, y2 = 0
))<- marquee_grob(readme, style = fancy_style)
grob grid.draw(grob)
(The above is an image – go ahead and check)
I would be remiss to not mention gridtext and ggtext, both by Claus Wilke. These packages aim to solve much the same problem as marquee, but work in a different way and don’t have the same powerful textshaping backend as marquee. Most notably from a user perspective is perhaps that gridtext understands HTML to some degree, whereas marquee is oblivious to both HTML and CSS. Instead, it supports the full CommonMark spec with the plan to add support for custom span elements as well.