Why metathis?

The goal of metathis is to help you add HTML <meta> tags to your R Markdown and Shiny apps.

HTML <meta> tags provide browsers and social media with metadata about HTML pages. Using <meta> tags will help your users find your articles, Shiny apps, and presentations, and will help you make sure they look great in social media timelines.

metathis makes the process of adding these tags to your R Markdown pages and Shiny apps easier by using the htmltools package to add <meta> tags as a dependency, added directly to the document in an R code chunk or your Shiny app UI rather than requiring you to adjust templates or write additional files.

If you want great looking social media cards, the meta_social() function will help you add everything you need for Twitter, Facebook and other social media sites that support the Open Graph protocol.

Installation

You can install the latest version of metathis from Github with:

Works In

R Markdown HTML Documents
Shiny Apps
xaringan
pagedown
bookdown
blogdown
pkgdown

<meta> tags can be added to ✅ packages with a standard R chunk

For other packages or situations, you can use include_meta() to explicitly declare the meta tags as an html dependency or use write_meta() to save the <meta> tags to an .html file that can be included via includes: in_header. (In blogdown, consult your blogdown/hugo theme for the correct inclusion method.)

Example

In R Markdown

This is a basic example that re-creates the <meta> tags for the R for Data Science book.

library(metathis)

meta() %>%
  meta_description(
    "This book will teach you how to do data science with R..."
  ) %>% 
  meta_name("github-repo" = "hadley/r4ds") %>% 
  meta_viewport() %>% 
  meta_social(
    title = "R for Data Science",
    url = "https://r4ds.had.co.nz",
    image = "https://r4ds.had.co.nz/cover.png",
    image_alt = "The cover of the R4DS book",
    og_type = "book",
    og_author = c("Garrett Grolemund", "Hadley Wickham"),
    twitter_card_type = "summary",
    twitter_creator = "@hadley"
  ) %>% 
  print()
#> <meta name="viewport" content="width=device-width, initial-scale=1, orientation=auto"/>
#> <meta name="description" content="This book will teach you how to do data science with R..."/>
#> <meta name="github-repo" content="hadley/r4ds"/>
#> <meta name="twitter:title" content="R for Data Science"/>
#> <meta name="twitter:description" content="This book will teach you how to do data science with R..."/>
#> <meta name="twitter:url" content="https://r4ds.had.co.nz"/>
#> <meta name="twitter:image:src" content="https://r4ds.had.co.nz/cover.png"/>
#> <meta name="twitter:image:alt" content="The cover of the R4DS book"/>
#> <meta name="twitter:card" content="summary"/>
#> <meta name="twitter:creator" content="@hadley"/>
#> <meta name="twitter:site" content="@hadley"/>
#> <meta name="og:title" content="R for Data Science"/>
#> <meta name="og:description" content="This book will teach you how to do data science with R..."/>
#> <meta name="og:url" content="https://r4ds.had.co.nz"/>
#> <meta name="og:image" content="https://r4ds.had.co.nz/cover.png"/>
#> <meta name="og:image:alt" content="The cover of the R4DS book"/>
#> <meta name="og:type" content="book"/>
#> <meta name="og:locale" content="en_US"/>
#> <meta name="article:author" content="Garrett Grolemund"/>
#> <meta name="article:author" content="Hadley Wickham"/>

Thanks

Thanks to Josh Buchea for providing an excellent and indispensible resource on <meta> tags and other things that go in the HTML <head> tags.

Thanks also to Malcolm Barret. Watching over his shoulder as he developed ymlthis made putting this package together so much easier.

Finally, thanks to the RStudio team and others who developed htmltools for making HTML in R a breeze.