-
Notifications
You must be signed in to change notification settings - Fork 235
/
Copy pathindex-crossref.Rmd
87 lines (61 loc) · 3.19 KB
/
index-crossref.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
---
title: "Indexing and cross-references"
output: rmarkdown::html_vignette
description: >
Make it easier for users to find your functions
by cross-referencing them and control their
indexing.
vignette: >
%\VignetteIndexEntry{Indexing and cross-references}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
```
This vignette discusses tags that help users finding documentation through cross-references and indexes.
## See also
`@seealso` allows you to point to other useful resources, either on the web (using a url) or to related functions (with a function link like `[function_name()])`.
For `sum()`, this might look like:
```{r}
#' @seealso [prod()] for products, [cumsum()] for cumulative sums, and
#' [colSums()]/[rowSums()] marginal sums over high-dimensional arrays.
```
## Family
If you have a family of related functions, you can use `@family {family}` to cross-reference each function to every member of the family.
A function can be a member of multiple families.
By default `@family {family}`, will generate the see also text "Other {family}:", so the `@family` name should be plural (i.e., "model building helpers" not "model building helper").
If you want to override the default title, you can provide an `rd_family_title` element in a list stored in `man/roxygen/meta.R`:
```{r, eval = FALSE}
list(
rd_family_title = list(aggregations = "Aggregation functions")
)
```
## References
If the object you're documenting has connections to the scientific literature, use `@reference` to provide a citation.
## Aliases
`?` and `help()` look for topic aliases; `?foo` will find any topic that contains the `foo` alias.
roxygen2 generates a default alias for you based on the object you're documenting.
You can add additional aliases with `@aliases alias1 alias2 alias3` or remove default alias with `@aliases NULL`.
## Search
As well as looking in the aliases, `help.search()` and `???` also look in the `@title`, `@keywords`, and `@concept`s tags.
- `@keywords` adds standard keywords, which must be present in `file.path(R.home("doc"), "KEYWORDS")`.
- `@concept` adds arbitrary key words or phrases.
Each `@concept` should contain a single word or phrase.
Generally speaking, `@keywords` and `@concepts` are not terribly useful because most people find documentation using Google, not R's built-in search.
There's one exception: `@keywords internal`.
It's useful because it removes the function from the documentation index; it's useful for functions aimed primarily at other developers, not typical users of the package.
## Back references
The original source location is added as a comment to the second line of each generated `.Rd` file in the following form:
% Please edit documentation in ...
`roxygen2` tries to capture all locations from which the documentation is assembled.
For code that *generates* R code with Roxygen comments (e.g., the Rcpp package), the `@backref` tag is provided.
This allows specifying the "true" source of the documentation, and will substitute the default list of source files.
Use one tag per source file:
```{r}
#' @backref src/file.cpp
#' @backref src/file.h
```