On 10/04/2021 3:28 p.m., Chris Evans wrote:
My beginner package https://github.com/cpsyctc/CECPfuns is evolving slowly and
I had no problems (that I could see)
with the help pages created through roxygen. Today I came back to try using
pkgdown to ... pkgdown the package.
So I used a copy of the package directory and ran:
usethis::use_pkgdown()
and then
pkgdown::build_site()
That produced the start of exactly what I wanted as a nicely pkgdown'ed site.
However, the console showed error
messages for three examples (which, as I say, all seem to produce OK html help
pages through the usual roxygen
processing). The error message was
Failed to parse example for topic
and sure enough the examples section in the pkgdown docs html was empty. If
anyone wants to look at one of
the functions, checkAllUnique was one of the three that threw the errors.
I tried some searching and the most pertinent seeming page I hit was this:
https://github.com/r-lib/pkgdown/issues/1149
where Hadley Wickham says "That's not valid .Rd code because you didn't escape the
Rd comment symbol" which may
well be my problem too ... but I don't understand the advice (sorry!)
In Example code, % needs to be escaped, or it will be interpreted as a
comment. Sometimes that means the examples just compute the wrong
thing, e.g.
A %*% b
is parsed as A when the rest of the line is ignored as a comment.
Sometimes it makes the code illegal. I don't know which you're seeing.
When I tried to tweak one of those functions by inserting a lot of "#" to mask
results, i.e. replaced
#' [1] something
with:
#' # [1] something
(as I probably should have done that in the examples I have, they are dontrun
examples so I hadn't noticed).
pkgdown tries to parse \dontrun examples, so this was a good thing, but
I think you missed some: e.g. in checkAllUnique.Rd, I see this around
lines 55-60:
\examples{
\dontrun{
### letters gets us the 26 lower case letters of the English alphabet so
should test OK
checkAllUnique(letters)
[1] TRUE
### good!
That line containing TRUE is not legal R code, so should be commented.
You can find these one by one by copying the text from the Rd example
section into a file, and trying to parse that file, e.g.
Put this in "test.R":
### letters gets us the 26 lower case letters of the English alphabet
so should test OK
checkAllUnique(letters)
[1] TRUE
### good!
then run parse("test.R"):
Error in parse("test.R") : test.R:3:1: unexpected '['
2: checkAllUnique(letters)
3: [
^
You can do it for a file at a time by loading the test.R file into
RStudio; it'll put markers beside each syntax error. Unfortunately, it
thinks
checkAllUnique(tmpTib \%>\% pull(1))
is a syntax error: those escapes are required in Rd, but are illegal in R.
I don't know if there's a way to do it directly from the Roxygen source.
Duncan Murdoch
However, when I reran pkgdown::build_site() I got a new error message that is,
to me, thoroughly confusing:
Error in utils::modifyList(meta, override) : is.list(x) is not TRUE
At that point I decided to back out and come here and ask the question in the
subject line!
______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel