Easily embed Tweets anywhere R Markdown turns plain text into HTML.
You can install the released version of tweetrmd from GitHub:
# install.packages("devtools")
devtools::install_github("gadenbuie/tweetrmd")
library(tweetrmd)
tweet_embed("https://twitter.com/alexpghayes/status/1211748406730706944")
anybody have experience embedding tweets into #rmarkdown documents without using blogdown?https://t.co/5kQUBh7j4g
— alex hayes (@alexpghayes) December 30, 2019
Or if you would rather use the screen name and status id.
tweet_embed(tweet_url("alexpghayes", "1211748406730706944"))
anybody have experience embedding tweets into #rmarkdown documents without using blogdown?https://t.co/5kQUBh7j4g
— alex hayes (@alexpghayes) December 30, 2019
In rich HTML outputs, the full embedded tweet is available and interactive. Here, in GitHub-flavored markdown, only the content of the tweet is seen.
Screenshots are automatically embedded in R Markdown documents, or you
can save the screenshot as a .png
or .pdf
file. Uses the
rstudio/webshot2 package.
tweet_screenshot(tweet_url("alexpghayes", "1211748406730706944"))
When you want to include a tweet in multiple R Markdown formats, you can
use include_tweet()
. It’s like knitr::include_graphics()
but for
tweets. The function will automatically include the tweet as HTML in
HTML outputs, or as a screenshot in all others.
```{r tweet-from-dsquintana}
include_tweet("https://twitter.com/dsquintana/status/1275705042385940480")
```
Twitter’s oembed
API
provides a number of options, all of which are made available for
customization in tweet_embed()
and tweet_screenshot()
.
tweet_screenshot(
tweet_url("alexpghayes", "1211748406730706944"),
maxwidth = 300,
hide_media = TRUE,
theme = "dark"
)
You can use tweetrmd
to embed tweets in your documents and outputs
without including Twitter JavaScript or tracking. The easiest way is to
set plain = TRUE
in include_tweet()
. This will insert minimal HTML
for web outputs or convert the tweet text to markdown for non-web
outputs.
include_tweet(
"https://twitter.com/dsquintana/status/1275705042385940480",
plain = TRUE
)
> {bookdown} folks: I\'m trying to knit a PDF version of a HTML book
> that contains HTML elements (embedded tweets).\
> \
> Is there a way to automatically take a screenshot of embedded tweets
> for PDF output?\
> \
> Using the {webshot} package + PhantomJS didn\'t
> work\...[\#Rstats](https://twitter.com/hashtag/Rstats)
>
> --- Dan Quintana (\@dsquintana) [June 24,
> 2020](https://twitter.com/dsquintana/status/1275705042385940480)
Alternatively, you can choose to use tweet_screenshot()
or
tweet_markdown()
to embed all tweets in your documents.
Tweets are often deleted and re-running tweet_embed()
or
tweet_screenshot()
may fail or overwrite a previous screenshot of a
tweet. To avoid this, you can use the
memoise package.
library(memoise)
tweet_cached <- memoise(tweet_embed, cache = cache_filesystem('.tweets'))
tweet_shot_cached <- memoise(tweet_screenshot, cache = cache_filesystem('.tweets'))
*When memoising tweet_screenshot()
you need to manually
save the file to a specific location. In the future my goal is for this
to be automatic.
Note: When using tweet_embed()
, you may need to add the following line
to your YAML header for strict markdown output formats.
always_allow_html: true