| #' Posterdown IDS-CD based on HTML format (using pagedown::poster_relaxed) |
| #' |
| #' @inheritParams pagedown::poster_relaxed |
| #' @param ... Additional arguments to `rmarkdown::html_document` |
| #' |
| #' @return R Markdown output format to pass to |
| #' [rmarkdown::render()] |
| #' |
| #'@examples |
| #'\donttest{ |
| #'file <- file.path(tempdir(),"foo.rmd") |
| #'rmarkdown::draft(file, template="posterdown_ids", package="posterdown.ids") |
| #'} |
| #' |
| #' @description The output format `posterdown_ids()` mimics the IDS Mannheim |
| #' corporate design posters. |
| #' @rdname posterdown_ids |
| #' @export |
| posterdown_ids <- function(..., |
| template = find_resource("posterdown_ids", "template.html"), |
| css = NULL) { |
| pagedown::poster_relaxed(..., css = css, template = template) |
| } |
| |
| |
| #' @param url Target URL for the QR code |
| #' @param logo Optional path to a logo image to place in the center of the QR code |
| #' @param text Optional text/caption to display below the QR code (alias: \code{caption}) |
| #' @param caption Alias for \code{text} |
| #' @description Print html code for a linked qr code to the given url |
| #' @importFrom qrcode add_logo qr_code generate_svg |
| #' @export |
| qrlink <- function(url, logo = NULL, text = NULL, caption = text) { |
| tmp <- tempfile(fileext = ".svg") |
| qrcode <- qrcode::qr_code(url, ecl = if(is.null(logo)) "L" else "H") |
| if(!is.null(logo)) { |
| qrcode <- qrcode::add_logo(qrcode, logo, ecl = "L") |
| } |
| qrcode::generate_svg(qrcode, tmp, show = FALSE) |
| |
| cap_html <- if (!is.null(caption) && nchar(trimws(caption)) > 0) { |
| sprintf('<span class="qrcode-caption">%s</span>', caption) |
| } else { |
| "" |
| } |
| |
| if (nchar(cap_html) > 0) { |
| return(paste0( '<div class="qrcode-container"><a class="qrcode" href="', url, '"><img class="qrcode">', |
| gsub("\r?\n|\r", "", readChar(tmp, 1e7)), |
| '</img></a>', |
| cap_html, |
| '</div>' |
| )) |
| } else { |
| return(paste0( sprintf('<a class="qrcode" href="%s"><img class="qrcode">', url), |
| gsub("\r?\n|\r", "", readChar(tmp, 1e7)), |
| '</img></a>' |
| )) |
| } |
| } |
| |