fix checks & update vignette
diff --git a/vignettes/use_kableExtra_with_formattable.Rmd b/vignettes/use_kableExtra_with_formattable.Rmd
new file mode 100644
index 0000000..641fe78
--- /dev/null
+++ b/vignettes/use_kableExtra_with_formattable.Rmd
@@ -0,0 +1,63 @@
+---
+title: "Use kableExtra with formattable"
+author: "Hao Zhu"
+date: "`r Sys.Date()`"
+output: html_document
+vignette: >
+ %\VignetteIndexEntry{Use kableExtra with formattable}
+ %\VignetteEngine{knitr::rmarkdown}
+ %\VignetteEncoding{UTF-8}
+---
+
+I know you love `formattable`'s `color_tile` and `color_bar`. I do too. In my mind, these two features are among the best visualization methods in a tabular format. You may wonder if it's possible use it together with `kableExtra` so you can have a nested table with awesome presentation at the same time. Here is how.
+
+```{r, message=FALSE, warning=FALSE}
+library(knitr)
+library(kableExtra)
+library(formattable)
+library(dplyr)
+```
+
+```{r}
+mtcars[1:5, 1:4] %>%
+ mutate(
+ car = row.names(.),
+ mpg = color_tile("white", "orange")(mpg),
+ cyl = cell_spec(cyl, "html", angle = (1:5)*60,
+ background = "red", color = "white", align = "center"),
+ disp = ifelse(disp > 200,
+ cell_spec(disp, "html", color = "red", bold = T),
+ cell_spec(disp, "html", color = "green", italic = T)),
+ hp = color_bar("lightgreen")(hp)
+ ) %>%
+ select(car, everything()) %>%
+ kable("html", escape = F) %>%
+ kable_styling("hover", full_width = F) %>%
+ column_spec(5, width = "3cm") %>%
+ add_header_above(c(" ", "Hello" = 2, "World" = 2))
+```
+
+Here is a little bit more explanation. Both `formattable::color_tile` and `formattable::color_bar` returns a function object which can take a numeric vector. That's why you can put things like `(mpg)` after `color_tile("white", "orange")` as you can see in the `mutate` function. This way of using the function may look a little odd but is totally valid (, I think :P).
+
+Also, if you are using it in this way, make sure you put `escape = F` in `kable`.
+
+On the other hand, `cell_spec()` is a new function in `kableExtra()` to format cells _**before you pipe the table into `kable`**_. Note that you can either specify format (`html` or `latex`) in function or do that via `options(knitr.table.format)` so you don't need to do it everytime. Please refer to the package vignette for details.
+
+<script>
+$(document).ready(function(){
+ $('[data-toggle="tooltip"]').tooltip();
+});
+</script>
+
+```{r}
+iris[1:10, ] %>%
+ mutate(
+ Species = cell_spec(Species, color = spec_color(1:10, option = "A"), link = "#",
+ tooltip = paste0("Sepal Length: ", Sepal.Length))
+ ) %>%
+ mutate_if(is.numeric, function(x){
+ cell_spec(x, "html", color = spec_color(x), font_size = spec_font_size(x), bold = T)
+ }) %>%
+ kable("html", escape = F, align = "c") %>%
+ kable_styling("condensed", full_width = F)
+```