dochelp(topic)
will be invoked by the replacement help
if conventional help
fails to find documentation for topic topic
. If topic
is an object with a doc
attribute (or failing that if <<topic>>
or <<topic>>.doc
is a character vector), then the attribute (or the character object) will be formatted and displayed by the pager or browser. dochelp
is not usually called directly.
# Not usually called directly
# If it is, then normal usage is: dochelp( topic)
dochelp( topic, doc, help_type=c( "text", "html"))
# Set options( mvb_help_type="text") if the browser gives you grief
(character) name of the object to look for help on, or name of "...doc" character object-- e.g. either thing
or thing.doc
if the character object is thing.doc
.
(character or list)-- normally not set, but deduced by default from topic
; see Details.
as per help
. Defaults to getOption( "mvb_help_type")
in normal usage, which in turn defaults to getOption( "help_type")
as for standard help
. Only "text"
and "html"
are supported by dochelp
; anything else maps to "text"
, which invokes R's internal pager.
dochelp
will only be called if the original help
call was a simple help( topic=X, ...)
form, with X not a call and with no try.all.packages
or type
or lib.loc
arguments (the other help
options are OK).
The doc
argument defaults to the doc
attribute of get("topic")
. The only reason to supply a non-default argument would be to use dochelp
as a pager; this might have some value, since dochelp
does reformat character vectors to fit nicely in the system pager window, one paragraph per element, using strwrap
. Elements starting with a "%" symbol are not displayed.
To work with dochelp
, a doc
attribute should be either:
a character vector, of length >=1. New elements get line breaks in the pager. Or:
a length-one list, containing the name of another object with a doc
attribute. dochelp
will then use the doc
attribute of that object instead. This referencing can be iterated.
If the documentation is very informal, start it with a blank line to prevent find.documented( ..., doctype="Rd")
from finding it.
With help_type="text"
, the doco will be re-formatted to fit the pager; each paragraph should be a single element in the character vector. Elements starting with a % will be dropped (but may still be useful for doc2Rd
).
With help_type="html"
, the doco will be passed thru doc2Rd
and then turned into HTML. doc2Rd
is pretty forgiving and has a fair crack at converting even very informal documentation, but does have its limits. If there is an error in the doc2Rd
conversion then help_type
will be reset to "text"
.
flatdoc
offers an easy way to incorporate plain-text (flat-format) documentation-- formal or informal-- in the same text file as a function definition, allowing easy maintenance. The closer you get to the displayed appearance of formal R-style help, the nicer the results will look in a browser (assuming help_type="html"
), but the main thing is to just write some documentation-- the perfect is the enemy of the good in this case!
flatdoc
, doc2Rd
, find.documented
, strwrap
# NOT RUN {
#
myfun <- structure( function() 1,
doc="Here is some informal documentation for myfun\n")
dochelp( "myfun")
help( "myfun") # calls dochelp
# }
Run the code above in your browser using DataLab