R/ipsum.r

Defines functions ipsum

Documented in ipsum

#' ipsum R markdown template
#'
#' Template for creating an R markdown document with an emphasis on typography
#'
#' @inheritParams rmarkdown::html_document
#' @param toc,toc_depth TOC params
#' @param extra_dependencies,... Additional function arguments to pass to the
#'        base R Markdown HTML output formatter
#' @export
ipsum <- function(number_sections = FALSE,
                  fig_width = 7,
                  fig_height = 5,
                  fig_retina = if (!fig_caption) 2,
                  fig_caption = FALSE,
                  dev = 'png',
                  smart = TRUE,
                  self_contained = TRUE,
                  highlight = "default",
                  mathjax = "default",
                  extra_dependencies = NULL,
                  css = NULL,
                  includes = NULL,
                  keep_md = FALSE,
                  lib_dir = NULL,
                  md_extensions = NULL,
                  pandoc_args = NULL,
                  toc = FALSE,
                  toc_depth = 2,
                  ...) {

  theme <- NULL
  template <- "default"
  code_folding <- "none"

  dep <- htmltools::htmlDependency(
    name = "ipsum",
    version = "0.1.0",
    system.file("rmarkdown", "templates", "ipsum", "resources", package = "hrbrthemes"),
    # script="rainbow-custom.min.js",
    stylesheet="ipsum.css"
  )

  extra_dependencies <- append(extra_dependencies, list(dep))


  args <- c("--standalone")
  args <- c(args, "--section-divs")
  args <- c(args, rmarkdown::pandoc_toc_args(toc, toc_depth))
  args <- c(
    args, "--template",
    rmarkdown::pandoc_path_arg(
      system.file("rmarkdown", "templates", "ipsum", "base.html", package = "hrbrthemes")
    )
  )

  if (number_sections) args <- c(args, "--number-sections")

  for (css_file in css) args <- c(args, "--css", rmarkdown::pandoc_path_arg(css_file))

  pre_processor <- function(metadata, input_file, runtime,
                            knit_meta, files_dir, output_dir) {

    if (is.null(lib_dir)) lib_dir <- files_dir

    args <- c()
    args <- c(
      args,
      pandoc_html_highlight_args(highlight, template, self_contained, lib_dir, output_dir)
    )
    args <- c(
      args,
      includes_to_pandoc_args(
        includes = includes, filter = if (identical(runtime, "shiny")) normalize_path else identity
      )
    )
    args

  }

  output_format(
    knitr = rmarkdown::knitr_options_html(
      fig_width, fig_height, fig_retina, keep_md, dev
    ),
    pandoc = rmarkdown::pandoc_options(
      to = "html",
      from = from_rmarkdown(fig_caption, md_extensions),
      args = args
    ),
    keep_md = keep_md,
    clean_supporting = self_contained,
    pre_processor = pre_processor,
    base_format = rmarkdown::html_document_base(
      smart = smart,
      theme = theme,
      self_contained = self_contained,
      lib_dir = lib_dir,
      mathjax = mathjax,
      template = template,
      pandoc_args = pandoc_args,
      extra_dependencies = extra_dependencies,
      ...
    )
  )
}

Try the hrbrthemes package in your browser

Any scripts or data that you put into this service are public.

hrbrthemes documentation built on March 26, 2020, 5:25 p.m.