## ----eval=FALSE---------------------------------------------------------------
#  reposRoot <- "path/to/reposRoot"
#  ## The names are essential
#  contribPaths <- c(source="src/contrib",
#                     win.binary="bin/windows/contrib/4.0",
#                     mac.binary="bin/macosx/contrib/4.0")

## ----eval=FALSE---------------------------------------------------------------
#  extractVignettes(reposRoot, contribPaths["source"])

## ----eval=FALSE---------------------------------------------------------------
#  genReposControlFiles(reposRoot, contribPaths)

## ----eval=FALSE---------------------------------------------------------------
#  ## Define classes like this for each logical document chunk
#  setClass("pdAuthorMaintainerInfo", contains="PackageDetail")
#  setClass("pdVignetteInfo", contains="PackageDetail")
#  ## Then define a htmlValue method
#  setMethod("htmlValue", signature(object="pdDescriptionInfo"),
#             function(object) {
#             node <- xmlNode("p", cleanText(object@Description),
#                              attrs=c(class="description"))
#             node
#           })
#  ## Then you can make use of all this...
#  ## Assume object contains a PackageDetail instance
#  authorInfo <- as(object, "pdAuthorMaintainerInfo")
#  dom$addNode(htmlValue(authorInfo))

## ----eval=FALSE---------------------------------------------------------------
#  details <- list(heading=list(tag="h3", text="Details"),
#                  content="pdDetailsInfo")
#  downloads <- list(heading=list(tag="h3", text="Download Package"),
#                   content="pdDownloadInfo")
#  vignettes <- list(heading=list(tag="h3",
#                      text="Vignettes (Documentation)"),
#                   content="pdVignetteInfo")
#  doSection <- function(sec) {
#     dom$addTag(sec$heading$tag, sec$heading$text)
#     secObj <- as(object, sec$content)
#     dom$addNode(htmlValue(secObj))
#  }
#  lapply(list(details, downloads, vignettes), doSection)