Minimal R documentation generator - base R only, no magic.
tinyrox is a lightweight alternative to roxygen2 that generates valid
.Rd files and NAMESPACE from #'
comments using only base R.
install.packages("tinyrox")library(tinyrox)
# Generate man/*.Rd and NAMESPACE from R/*.R
document()
# Clean generated files (man/, NAMESPACE)
clean()
# Check for common CRAN policy issues
check_cran()| Tag | Purpose |
|---|---|
@title |
One-line title |
@description |
Short description |
@details |
Longer description |
@param name |
Parameter documentation |
@return |
Return value |
@value |
Alias for @return |
@examples |
Code examples (verbatim) |
@example path |
Include example from file |
@seealso |
Cross-references |
@references |
Citations |
@section Title: |
Custom section |
@author |
Author information |
@family name |
Related functions |
@aliases |
Additional topic aliases |
@keywords |
Rd keywords (e.g., internal) |
@name |
Explicit topic name |
@inheritParams fn |
Copy params from another function |
@noRd |
Skip Rd generation |
| Tag | Effect |
|---|---|
@export |
export() |
@exportS3Method generic class |
S3method() |
@import pkg |
import() |
@importFrom pkg sym1 sym2 |
importFrom() |
@useDynLib pkg |
useDynLib() |
#' Add Two Numbers
#'
#' @param x First number
#' @param y Second number
#' @return The sum
#' @export
#'
#' @examples
#' add(1, 2)
add <- function(x, y) {
x + y
}tinyrox includes automated CRAN compliance checks:
# Check DESCRIPTION for common issues
check_description_cran()
# Warns about: unquoted package names, missing web service links
# Check R code for CRAN policy violations
check_code_cran()
# Warns about: T/F, print()/cat(), .GlobalEnv, installed.packages(), etc.
# Run all checks
check_cran()
# Auto-fix DESCRIPTION quoting issues
fix_description_cran()Issues detected: - Unquoted package/software names in
Title/Description - Missing web service links for packages like hfhub,
gh - T/F instead of
TRUE/FALSE -
print()/cat() instead of
message() - installed.packages() usage -
.GlobalEnv modifications - setwd() without
on.exit() restoration - Hardcoded set.seed()
without parameter
tinyrox follows the tinyverse philosophy:
Dependencies have real costs. Each dependency is an invitation to break your project.
Design principles: - Minimize dependencies (tinyrox has none) - Explicit over implicit - no inference magic - Strict subset of tags - not everything roxygen2 does - Deterministic output - same input = same output - Fail fast on unknown tags
What tinyrox does NOT do: - Markdown parsing -
Automatic dependency inference - @rdname grouping magic -
pkgdown integration
tinyrox is part of the tinyverse toolchain for R package development:
| Package | Purpose |
|---|---|
| tinyrox | Documentation & NAMESPACE |
| tinypkgr | install, load_all, check, build |
| tinytest | Unit testing |
| rformat | Token-based code formatter |
# Edit R/*.R files with #' comments
# Regenerate docs
tinyrox::document()
# Load for interactive development (no install)
tinypkgr::load_all()
# Install and reload in current session
tinypkgr::reload()
tinytest::test_package("mypkg")
# Full R CMD check
tinypkgr::check()Or from the command line with littler:
r -e 'tinyrox::document(); tinypkgr::install(); tinytest::test_package("mypkg")'GPL-3