library(roxygen2)
# Patch examples ----------------------------------------------------------
# we path examples so we add the `if` conditional.
.S3method("roxy_tag_parse", "roxy_tag_examples", function(x) {
roxygen2::tag_examples(x)
})
.S3method("roxy_tag_rd", "roxy_tag_examples", function(x, base_path, env) {
rd_section("examples", x$val)
})
.S3method("format", "rd_section_examples", function (x, ...) {
value <- paste0(x$value, collapse = "\n")
roxygen2:::rd_macro("examples",
c("if (torch_is_installed()) {", value, "}"),
space = TRUE
)
})
# Subsection --------------------------------------------------------------
.S3method("roxy_tag_parse", "roxy_tag_subsection", function(x) {
roxygen2::tag_markdown(x)
})
.S3method("roxy_tag_rd", "roxy_tag_subsection", function(x, base_path, env) {
pieces <- stringr::str_split(x$val, ":", n = 2)[[1]]
title <- stringr::str_split(pieces[1], "\n")[[1]]
if (length(title) > 1) {
roxygen2:::roxy_tag_warning(x, paste0(
"Section title spans multiple lines.\n",
"Did you forget a colon (:) at the end of the title?"
))
return()
}
roxygen2:::rd_section_section(pieces[1], pieces[2])
})
.S3method("format", "rd_section_subsection", function(x, ...) {
paste0(
"\\subsection{", x$value$title, "}{\n", x$value$content, "\n}\n",
collapse = "\n"
)
})
# Params ------------------------------------------------------------------
# avoids using the \arguments{} so we can have two sections with parameters
# for different signatures.
devtools::document()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.