layout: post
title: “Blog with Knitr and Jekyll”
description: “”
category: r
{% include JB/setup %}
The knitr package provides an easy way to embed
R code in a Jekyll-Bootstrap
blog post. The only required input is an R Markdown source file.
The name of the source file used to generate this post is 2012-07-03-knitr-jekyll.Rmd, available
here.
Steps taken to build this post are as follows:
Create a Jekyll-Boostrap blog if you don't already have one.
A brief tutorial on building this blog is available
here.
Open the R Console and process the source file:
KnitPost <- function(input, base.url = "/") {
require(knitr)
opts_knit$set(base.url = base.url)
fig.path <- paste0("figs/", sub(".Rmd$", "", basename(input)), "/")
opts_chunk$set(fig.path = fig.path)
opts_chunk$set(fig.cap = "center")
render_jekyll()
knit(input, envir = parent.frame())
}
KnitPost("2012-07-03-knitr-jekyll.Rmd")
Move the resulting image folder 2012-07-03-knitr-jekyll and Markdown file
2012-07-03-knitr-jekyll.md to the local
jfisher-usgs.github.com git repository.
The KnitPost function assumes that the image folder will be placed in a
figs
folder located at the root of the repository.
Add the following CSS code to the
/assets/themes/twitter-2.0/css/bootstrap.min.css file to center images:
[alt=center] {
display: block;
margin: auto;
}
That's it.
Here are a few examples of embedding R code:
summary(cars)
## speed dist
## Min. : 4.0 Min. : 2
## 1st Qu.:12.0 1st Qu.: 26
## Median :15.0 Median : 36
## Mean :15.4 Mean : 43
## 3rd Qu.:19.0 3rd Qu.: 56
## Max. :25.0 Max. :120
par(mar = c(4, 4, 0.1, 0.1), omi = c(0, 0, 0, 0))
plot(cars)
par(mar = c(2.5, 2.5, 0.5, 0.1), omi = c(0, 0, 0, 0))
filled.contour(volcano)
And don't forget your session information for proper reproducible research.
sessionInfo()
## R version 2.15.1 (2012-06-22)
## Platform: x86_64-pc-mingw32/x64 (64-bit)
##
## locale:
## [1] LC_COLLATE=Korean_Korea.949 LC_CTYPE=Korean_Korea.949
## [3] LC_MONETARY=Korean_Korea.949 LC_NUMERIC=C
## [5] LC_TIME=Korean_Korea.949
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] knitr_0.6.3
##
## loaded via a namespace (and not attached):
## [1] digest_0.5.2 evaluate_0.4.2 formatR_0.5 plyr_1.7.1
## [5] stringr_0.6 tools_2.15.1