collate_fields <- c(
main = "Collate",
windows = "Collate.windows",
unix = "Collate.unix"
)
field_classes <- list(
Package = "Package",
Version = "Version",
License = "License",
Description = "Description",
Title = "Title",
Maintainer = "Maintainer",
AuthorsAtR = "Authors@R",
DependencyList = c("Imports", "Suggests", "Depends", "Enhances", "LinkingTo"),
PackageList = c("VignetteBuilder", "RdMacros"),
Remotes = "Remotes",
RepoList = "Additional_repositories",
URL = "BugReports",
URLList = "URL",
Priority = "Priority",
Collate = unname(collate_fields),
Logical = c(
"LazyData",
"KeepSource",
"ByteCompile",
"ZipData",
"Biarch",
"BuildVignettes",
"NeedsCompilation",
"License_is_FOSS",
"License_restricts_use",
"BuildKeepEmpty",
"BuildManual",
"BuildResaveData",
"LazyLoad"
),
Encoding = "Encoding",
OSType = "OS_type",
Type = "Type",
Classification = c(
"Classification/ACM",
"Classification/ACM-2012",
"Classification/JEL",
"Classification/MSC",
"Classification/MSC-2010"
),
Language = "Language",
Date = "Date",
Compression = c("LazyDataCompression", "SysDataCompression"),
Repository = "Repository",
FreeForm = c(
"Author",
"SystemRequirements",
"Archs",
"Contact",
"Copyright",
"MailingList",
"Note",
"Path",
"LastChangedDate",
"LastChangedRevision",
"Revision",
"RcmdrModels",
"RcppModules",
"Roxygen",
"Acknowledgements",
"Acknowledgments",
"biocViews"
),
AddedByRCMD = c("Built", "Packaged", "MD5sum", "Date/Publication")
)
field_classes$FreeForm <- c(
field_classes$FreeForm,
paste0(unlist(field_classes), "Note")
)
create_fields <- function(keys, values) {
# Need to add names explicitly, because mapply() might drop them
# https://bugs.r-project.org/show_bug.cgi?id=18201
structure(
mapply(keys, values, SIMPLIFY = FALSE, FUN = create_field),
names = keys
)
}
create_field <- function(key, value) {
f <- structure(list(key = key, value = value), class = "DescriptionField")
if (key %in% unlist(field_classes)) {
cl <- paste0("Description", find_field_class(key))
class(f) <- c(cl, class(f))
}
f
}
find_field_class <- function(k) {
names(which(vapply(field_classes, `%in%`, logical(1), x = k)))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.