Nothing
#' View Package Vignette(s)
#'
#' Interactively view vignettes for package(s) or return a dataframe of
#' vignettes and accompanying information.
#'
#' @param \ldots name(s) of package(s).
#' @param char Character vector containing packages to find vignettes for. If
#' you are calling \code{p_vignette} from within a function (or just having
#' difficulties calling it using a character vector input) then pass your
#' character vector of packages to this parameter directly.
#' @param interactive logical. If \code{TRUE} will generate an HTML list of
#' selections.
#' @param character.only logical. If \code{TRUE} then \code{p_vignette} will
#' only accept a single input which is a character vector containing the names
#' of packages to find vignettes for.
#' @seealso \code{\link[utils]{vignette}},
#' \code{\link[utils]{browseVignettes}}
#' @keywords vignette package
#' @export
#' @examples
#' \dontrun{
#' p_vignette(interactive = FALSE)
#' p_vignette()
#' p_vign()
#' p_vign(pacman)
#' p_vign(grid, utils)
#' p_vign(grid, utils, interactive = FALSE)
#' p_vign(fortunes)
#' }
p_vignette <-
function(..., char, interactive = TRUE, character.only = FALSE){
if(!missing(char)){
pack <- char
}else if(character.only){
pack <- eval(match.call()[[2]])
}else{
pack <- try(as.character(match.call(expand.dots = FALSE)[[2]]),
silent = TRUE)
## If nothing entered defaults to all
if (inherits(pack, "try-error") | (length(pack) == 1 &&
pack %in% c("TRUE", "FALSE"))) {
if (interactive) {
pack <- unique(utils::vignette()[["results"]][, "Package"])
} else {
pack <- "all"
}
}
}
## Interactive picking if ! all
if (interactive){
p_load("tools")
return(utils::browseVignettes(package=pack))
}
## Return a dataframe if not interactive
## Get list of all vignettes
all <- utils::vignette()
all <- data.frame(all[["results"]], stringsAsFactors = FALSE)
all <- all[, !colnames(all) %in% c("LibPath")]
spltitle <- strsplit(all[, "Title"], " (source, ", fixed=TRUE)
all[, "Title"] <- sapply(spltitle, "[", 1)
all[, "Type"] <- gsub("\\)", "", sapply(spltitle, "[", 2))
all <- all[, c("Package", "Item", "Type", "Title")]
## Handling if individual packages were given
if (length(pack) > 1 || pack != "all") {
all <- all[all[, "Package"] %in% pack,]
rownames(all) <- NULL
## Error handling in case no vignettes found
if (nrow(all) == 0) {
message("No vignettes found for:\n", paste(pack, collapse=", "))
return(invisible())
}
}
class(all) <- c("wide_table", class(all))
return(all)
}
#' @rdname p_vignette
#' @export
p_vign <- p_vignette
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.