diff --git a/R/kableExtra-package.R b/R/kableExtra-package.R
index 415b5b0..799dac1 100644
--- a/R/kableExtra-package.R
+++ b/R/kableExtra-package.R
@@ -1,7 +1,7 @@
 #' kableExtra
 #'
 #' @description When we are talking about table generators in R,
-#' [knitr](https://yihui.name/knitr/)'s `kable()` function wins lots of flavor
+#' [knitr](https://yihui.org/knitr/)'s `kable()` function wins lots of flavor
 #' by its ultimate simplicity. Unlike those powerful table rendering engines
 #' such as [`xtable`](https://CRAN.R-project.org/package=xtable), the philosophy
 #' behind [`knitr::kable()`](https://rdrr.io/cran/knitr/man/kable.html) is to
@@ -28,13 +28,13 @@
 #' `kableExtra` cannot solve the problem
 #'
 #' For a full package documentation, please visit the
-#' [package documentation site](http://haozhu233.github.io/kableExtra/)
+#' [package documentation site](https://haozhu233.github.io/kableExtra/)
 #' for more information
 #'
 #' @section Features:
 #' **Pipable syntax:** `kableExtra` is NOT a table generating package. It is a
 #' package that can "add features" to a `kable` output using a syntax
-#' that every useR loves - the [pipe](http://r4ds.had.co.nz/pipes.html).
+#' that every useR loves - the [pipe](https://r4ds.had.co.nz/pipes.html).
 #' We see similar approaches to deal with plots in packages like `ggvis` and
 #' `plotly`. There is no reason why we cannot use it with tables.
 #'
diff --git a/R/mini_plots.R b/R/mini_plots.R
index f6ed31d..5ce33b0 100644
--- a/R/mini_plots.R
+++ b/R/mini_plots.R
@@ -180,7 +180,7 @@
   curr_file_name <- sub("\\.[^\\.]*$", "", knitr::current_input())
   dir_name <- paste0(curr_file_name, "_files")
   if (!dir.exists(dir_name) & create) dir.create(dir_name)
-  fig_dir_name <- file.path(dir_name, "figure-latex")
+  fig_dir_name <- file.path(dir_name, "figure-latex/")
   if (!dir.exists(fig_dir_name) & create) dir.create(fig_dir_name)
   return(fig_dir_name)
 }
diff --git a/README.md b/README.md
index c4f5d31..fadef16 100644
--- a/README.md
+++ b/README.md
@@ -27,10 +27,10 @@
 
 ## Features
 ### Pipable syntax
-`kableExtra` is NOT a table generating package. It is a package that can **"add features"** to a `kable()` output using a syntax that every useR loves - the [pipes `%>%`](http://r4ds.had.co.nz/pipes.html). We see similar approaches to deal with plots in packages like `ggvis` and `plotly`. There is no reason why we cannot use it with tables.
+`kableExtra` is NOT a table generating package. It is a package that can **"add features"** to a `kable()` output using a syntax that every useR loves - the [pipes `%>%`](https://r4ds.had.co.nz/pipes.html). We see similar approaches to deal with plots in packages like `ggvis` and `plotly`. There is no reason why we cannot use it with tables.
 
 ### Unified functions for both HTML and PDF
-Most functionalities in `kableExtra` can work in both HTML and PDF. In fact, as long as you specifies format in `kable()` (which can be set globally through option `knitr.table.format`), functions in this package will pick the right way to manipulate the table be themselves. As a result, if users want to left align the table, `kable(...) %>% kable_styling(position = "left")` will work in both HTML and PDF.
+Most functionalities in `kableExtra` can work in both HTML and PDF. In fact, as long as you specifies format in `kable()` (which can be set globally through option `knitr.table.format`), functions in this package will pick the right way to manipulate the table be themselves. As a result, if users want to left align the table, `kable(...) %>% kable_styling(position = "left")` will work in both HTML and PDF. Recently, we also introduced a new `kbl()` function acting as an alternative to `kable` but provides better documentation and format detection. 
 
 ## Install
 ```r
@@ -42,19 +42,18 @@
 
 ## Basic Usage
 ```r
-library(knitr)
 library(kableExtra)
 dt <- mtcars[1:5, 1:4]
 
 # HTML table
-kable(dt, format = "html", caption = "Demo Table") %>%
+kbl(dt, caption = "Demo Table") %>%
   kable_styling(bootstrap_options = "striped",
                 full_width = F) %>%
   add_header_above(c(" ", "Group 1" = 2, "Group 2[note]" = 2)) %>%
   footnote(c("table footnote"))
 
 # LaTeX Table
-kable(dt, format = "latex", booktabs = T, caption = "Demo Table") %>%
+kbl(dt, booktabs = T, caption = "Demo Table") %>%
   kable_styling(latex_options = c("striped", "hold_position"),
                 full_width = F) %>%
   add_header_above(c(" ", "Group 1" = 2, "Group 2[note]" = 2)) %>%
diff --git a/docs/awesome_table_in_html.Rmd b/docs/awesome_table_in_html.Rmd
index bf9ea7d..a6154a2 100644
--- a/docs/awesome_table_in_html.Rmd
+++ b/docs/awesome_table_in_html.Rmd
@@ -203,7 +203,7 @@
   kbl() %>%
   kable_paper(full_width = F) %>%
   column_spec(2, color = spec_color(mtcars$mpg[1:8]),
-              link = "https://haozhu233.github.io/kableExtra") %>%
+              link = "https://haozhu233.github.io/kableExtra/") %>%
   column_spec(6, color = "white",
               background = spec_color(mtcars$drat[1:8], end = 0.7),
               popover = paste("am:", mtcars$am[1:8]))
diff --git a/man/kableExtra-package.Rd b/man/kableExtra-package.Rd
index 4fba68e..03e11d8 100644
--- a/man/kableExtra-package.Rd
+++ b/man/kableExtra-package.Rd
@@ -7,7 +7,7 @@
 \title{kableExtra}
 \description{
 When we are talking about table generators in R,
-\href{https://yihui.name/knitr/}{knitr}'s \code{kable()} function wins lots of flavor
+\href{https://yihui.org/knitr/}{knitr}'s \code{kable()} function wins lots of flavor
 by its ultimate simplicity. Unlike those powerful table rendering engines
 such as \href{https://CRAN.R-project.org/package=xtable}{\code{xtable}}, the philosophy
 behind \href{https://rdrr.io/cran/knitr/man/kable.html}{\code{knitr::kable()}} is to
@@ -36,7 +36,7 @@
 }
 
 For a full package documentation, please visit the
-\href{http://haozhu233.github.io/kableExtra/}{package documentation site}
+\href{https://haozhu233.github.io/kableExtra/}{package documentation site}
 for more information
 }
 \note{
@@ -53,7 +53,7 @@
 
 \strong{Pipable syntax:} \code{kableExtra} is NOT a table generating package. It is a
 package that can "add features" to a \code{kable} output using a syntax
-that every useR loves - the \href{http://r4ds.had.co.nz/pipes.html}{pipe}.
+that every useR loves - the \href{https://r4ds.had.co.nz/pipes.html}{pipe}.
 We see similar approaches to deal with plots in packages like \code{ggvis} and
 \code{plotly}. There is no reason why we cannot use it with tables.
 
