## 2018-01-30 experimenting with processing of Rd macros
## pkgmacros <- tools::loadPkgRdMacros(system.file(package = package))
## rdo <- parse_Rd(infile, macros = pkgmacros)
## 2018-01-30 new function
## as parse_Rd but intercepts warnings about unknown Rd macros
permissive_parse_Rd <- function(file, permissive = TRUE, ...){
parse_Rd(file, permissive = permissive, ...)
}
## 2018-01-30 new argument 'macros'
.parse_Rdlines <- function(lines, macros = NULL){
tmpfile <- tempfile("Rdlines", fileext = ".Rd")
# unlist is harmless if `lines' is already a character vector
cat(unlist(lines), file = tmpfile, sep = "\n") # todo: catch errors
if(is.null(macros))
res <- permissive_parse_Rd(tmpfile) # todo: catch errors
else
res <- permissive_parse_Rd(tmpfile, macros = macros) # todo: catch errors
unlink(tmpfile)
res
}
parse_Rdtext <- function(text, section = NA){
if(!is.na(section))
text <- c(paste(section,"{",sep=""), text, "}")
res <- .parse_Rdlines(text) # write(text, sep="\n", file = file); res <- parse_Rd(file)
rdtag <- attr(res[[1]], "Rd_tag")
if(!is.na(section) && !is.null(rdtag) && rdtag==section) # todo: tova e krapka!
res <- res[[1]]
if(identical( c(res[[1]]), "\n" )) # c( ) to strip attributes
res[[1]] <- NULL
res
}
parse_Rdpiece <- function(x, result=""){
maket <- list_Rd(title="Dummy title"
, name="dummyname"
, "\\description"="Dummy description"
, note = x
, Rd_class=TRUE
)
fn <- tempfile(pattern = "Rdpiece", fileext = "Rd")
cat(as.character(maket), file=fn, sep="") # todo: error processing
wrk <- permissive_parse_Rd(fn)
unlink(fn)
if(result=="text"){ # Rd_help2txt is from gbRd
res <- gbRd::Rd_help2txt(wrk, keep_section="\\note", omit_sec_header=TRUE)
}else{
indx <- Rdo_which_tag_eq(wrk, "\\note")
res <- wrk[[indx]]
if(!is.null(attr(res,"Rd_tag")))
attr(res,"Rd_tag") <- NULL
}
res
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.