[R-pkg-devel] Sort order of vignette index?; adding purl'ed Rcode from asis vignette to vignette index?
Sebastian Meyer
@eb@meyer @end|ng |rom |@u@de
Thu Jun 2 10:22:49 CEST 2022
Some quick comments:
- You could place the index.html directly in the inst/doc folder of your
package sources, avoiding the need for .install_extras from the
vignettes folder. This approach is useful if there is additional
non-vignette material in inst/doc.
- As you say, links in index.html need to be relative to the installed
*doc* dir, where the index file is located. For example, the simple links
<a href="template.R">template script</a>,
<a href="vignetteA.Rnw">source of vignette A</a>
should work to reference a static Rscript inst/doc/template.R and a
vignette built from vignettes/vignetteA.Rnw (copied to inst/doc by R CMD
build), respectively.
- It seems you could even generate the index.html via a vignette,
index.Rmd, say. The downside is that this index vignette will be listed
as a vignette (by browseVignettes(), for example) although it isn't
really a vignette.
- browseVignettes() sorts by vignette title, not by file name.
Furthermore, its purpose is to browse *vignettes* also across packages,
so is unrelated to the *doc* index for a given package, which may
contain more than vignettes.
Best regards,
Sebastian Meyer
Am 01.06.22 um 23:47 schrieb Carl Schwarz:
> Here is some suggested text to be added to the Writing R Extensions manual.
> Any suggestions for changes?
>
> 1.4.3. Customizing the vignette help index
>
> R provides two indices to the vignettes in a package (a) the
> browseVignettes() function and (b) the html index of vignettes and other
> user documentation available when you use help(package=xxx). The latter is
> built when the package is installed.
>
>
>
> In some cases, customization of the html index is desirable. For example,
> currently the entries in the index are sorted by the vignette engine used
> to build the vignette and then by the file name of the vignette and a
> different sort order may be desired. Or additional documents may wish to be
> included, e.g., the purl()’d code from an “asis” vignette.
>
>
>
> Previous sections of this guide indicate that if an “index.html” file is
> present in the inst/doc directory at the time of the build, then a new
> “index.html” file will not be built. Previous sections also indicate how to
> add additional files to the inst/doc directory. The following is then a
> summary of the steps needed to customize the html index to the vignettes in
> a package.
>
>
>
> 1. Create a revised ‘index.html’ file in the vignettes directory. It may be
> easiest to copy an existing ‘doc/index.html’ file from an installed
> package. The vignettes/index.html file should be in plain html and can be
> modified to change the sort order or to add links to additional files to be
> available to users. Note that files are referred to using relative path
> names – follow the pattern in the copied file.
>
>
>
> 2. Add any other additional files to the vignettes directory that are to be
> available to the user via the vignette help index.
>
>
>
> 3. Add an ‘.install_extras’ file to the vignettes directory (don’t forget
> the leading period in this file’s name). This is a text file with the names
> of the files in the vignettes directory to be added to the inst/doc
> directory. Each line can be coded as a regular expression. At a minimum,
> include ‘index.html’ to copy the vignettes/index.html file to the inst/doc
> directory.
>
>
>
> 4. Check/build the package in the regular way.
>
>
>
> There is no evident way to modify the output of the browseVignettes()
> function; however, this function currently sorts by the vignette file name
> regardless of the vignette engine used.
>
> On Wed, Jun 1, 2022 at 1:04 AM Martin Maechler <maechler using stat.math.ethz.ch>
> wrote:
>
>>>>>>> Jeff Newmiller
>>>>>>> on Tue, 31 May 2022 16:09:16 -0700 writes:
>>
>> > FWIW the RStudio build is often not complete... it intentionally
>> takes shortcuts that make test/run iteration faster... but you should make
>> a habit of using the command line to build artifacts for sharing... it will
>> help avoid gotchas.
>>
>> Yes, definitely.
>>
>> Notably, e.g., reloading the package sources (often via
>> devtools) into a running R process instead of restarting R and
>> loading/attaching the newly built and installed package (that
>> you are developing) is much faster, but *NOT* equivalent and
>> sometimes misleading -- because it's not easily possible to
>> "revert" everything you did in your running R session {caches,
>> method tables, DLLs, internal pointers, ...}.
>>
>> (read on, further down)
>>
>> > On May 31, 2022 3:53:57 PM PDT, Carl Schwarz <
>> cschwarzstatsfuca using gmail.com> wrote:
>> >> Success!
>> >>
>> >> Building on MT's note that if the inst/doc has an index.html file,
>> R does
>> >> NOT build a new index.
>> >> At the end of Writing R Extensions Section 1.4, it states
>> >> " When R CMD build builds the vignettes, it copies these and the
>> vignette
>> >> sources from directory vignettes to inst/doc. To install any other
>> files
>> >> from the vignettes directory, include a file
>> vignettes/.install_extras which
>> >> specifies these as Perl-like regular expressions on one or more
>> lines.."
>> >>
>> >> So I copied the existing inst/doc/index.html file from the installed
>> >> SighatbilityModel with the wrong sort order to my
>> vignettes/index.html,
>> >> edited this index.html file to get the right sort order. The
>> index.html is
>> >> just vanilla html so it is easy to modify "manually".
>> >> Then I created a vignettes/.install_extras with a single entry
>> "index.html"
>> >> and now vignettes/index.html appears to be copied to inst/doc and
>> so stops
>> >> the building of the wrongly sorted index.
>> >>
>> >> Then I did a Rstudio -> Build -> BuildSourcePackage to create a
>> tar.gz
>> >> file; installed from the tar.gz file, and now my vignette index is
>> sorted
>> >> properly on my Mac machine.
>> >> Also tried using devtools::check_win_release() to generate a
>> windoze zip
>> >> file; installed that; and the vignette index is again sorted
>> properly on
>> >> Windows machines.
>> >>
>> >> I'm hoping I can use this for (b) from my original query as well.
>> >>
>> >> This will mean that I have to "manually'" maintain the
>> vignettes/index.html
>> >> file, but that is straightforward.
>> >>
>> >> I hope this works when I submit to CRAN.
>> >>
>> >> How do I suggest to the R maintainers that an explicit section be
>> added to
>> >> the Writing R Extensions manual with the above steps so that future
>> package
>> >> writers don't repeat history? I'm willing to write the paragraph
>> explaining
>> >> the steps, but don't know who/how to proceed to get it added to
>> Writing R
>> >> Extensions.
>> >>
>> >> Carl Schwarz
>>
>> The WRE manual is part of the R sources, so formally you are
>> proposing to improve (the documentation part of) R.
>>
>> You can propose a patch against the "R-devel" sources.
>> If the changes are quite small and compact (as here), even on by e-mail.
>> The source file is doc/manual/R-exts.texi
>> in R's SVN (source server)
>> https://svn.r-project.org/R/trunk/doc/manual/R-exts.texi
>> or one of its mirrors (notably on github)
>>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
More information about the R-package-devel
mailing list