Merge pull request #547 from vincentarelbundock/master
save_kable support for markdown
diff --git a/R/save_kable.R b/R/save_kable.R
index e1e1636..c0745cf 100644
--- a/R/save_kable.R
+++ b/R/save_kable.R
@@ -34,13 +34,42 @@
extra_dependencies = NULL, ...,
latex_header_includes = NULL, keep_tex = FALSE,
density = 300) {
- if (!is.null(attr(x, "format")) && attr(x, "format") == "latex") {
- return(save_kable_latex(x, file, latex_header_includes, keep_tex, density))
+
+ if (!is.null(attr(x, "format"))) {
+
+ # latex
+ if (attr(x, "format") == "latex") {
+ return(save_kable_latex(x, file, latex_header_includes, keep_tex, density))
+
+ # markdown
+ } else if (attr(x, "format") == "pipe") {
+
+ # good file extension: write to file
+ if (tools::file_ext(file) %in% c("txt", "md", "markdown", "Rmd")) {
+ return(save_kable_markdown(x, file))
+
+ # bad file extension: warning + keep going to html writer
+ } else {
+ warning('`save_kable` can only save markdown tables to files with the following extensions: .txt, .md, .markdown, .Rmd. Since the supplied file name has a different extension, `save_kable` will try to use the HTML writer. This is likely to produce suboptimal results. To save images or other file formats, try supplying a LaTeX or HTML table to `save_kable`.')
+ }
+
+ }
+
}
+
+ # html
return(save_kable_html(x, file, bs_theme, self_contained,
extra_dependencies, density, ...))
}
+
+save_kable_markdown <- function(x, file, ...) {
+ out <- paste(x, collapse="\n")
+ writeLines(text=out, con=file)
+ return(invisible(file))
+}
+
+
save_kable_html <- function(x, file, bs_theme, self_contained,
extra_dependencies, density, ...) {
dependencies <- list(