diff --git a/DESCRIPTION b/DESCRIPTION index ba37b26..5bfec78 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -24,7 +24,7 @@ Suggests: testthat (>= 3.0.0) VignetteBuilder: knitr -Config/Needs/website: ropenspain/rostemplate, ggplot2 +Config/Needs/website: ropenspain/rostemplate, ggplot2, devtools Config/testthat/edition: 3 Encoding: UTF-8 Language: es_ES diff --git a/vignettes/precompute.Rmd.orig b/vignettes/precompute.Rmd.orig new file mode 100644 index 0000000..c0f57a2 --- /dev/null +++ b/vignettes/precompute.Rmd.orig @@ -0,0 +1,143 @@ +favicon-32x32.png--- +title: "Example of a precomputed vignette" +output: rmarkdown::html_vignette +vignette: > + %\VignetteIndexEntry{Example of a precomputed vignette} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +```{r, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>", + warning = FALSE, + message = FALSE, + dev = "ragg_png", + tidy = "styler", + fig.path = "./", + out.width = "100%" +) +``` + +This is an example of a precomputed vignette: + +```{r plot, fig.cap="A plot with a long caption here"} +library("ggplot2") + +ggplot(faithfuld, aes(waiting, eruptions)) + + geom_raster(aes(fill = density)) + +``` + +See here some text: + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer efficitur massa +risus, eu tincidunt magna finibus id. Donec quis tincidunt est, sed commodo leo. +Donec nec varius lacus. Mauris tempor nisi ipsum, id tincidunt ipsum porta vel. +Sed blandit est sit amet bibendum egestas. Integer facilisis tortor viverra +pellentesque efficitur. Sed non magna placerat, volutpat felis ac, iaculis +mauris. Morbi tempor nulla vel enim tristique tristique. Nam sed purus aliquet, +facilisis ligula vitae, accumsan metus. Integer porta nisi iaculis massa +consequat, quis mollis tellus ultricies. Vestibulum vehicula lacinia eros, eu +aliquam neque. Pellentesque hendrerit metus et nulla tristique, non sollicitudin +odio mollis. Mauris vel eros vitae ipsum viverra sollicitudin imperdiet sed +nibh. Nullam vel metus luctus, maximus elit eu, feugiat lectus. + +Fusce ac massa sed lorem convallis suscipit sed vitae neque. Duis condimentum +ante dolor, congue dictum ligula ullamcorper vitae. Praesent eros neque, dictum +sit amet venenatis et, suscipit vitae diam. Praesent venenatis, dui sit amet +euismod luctus, dolor velit tempus neque, at elementum ante sapien eget nisi. +Fusce at tempus orci, et porttitor elit. Donec dapibus enim sem, at interdum +ligula dapibus quis. In sit amet commodo arcu. Aliquam sit amet porta eros, at +porta felis. Nullam consectetur hendrerit elit nec pulvinar. Praesent nec +imperdiet nulla, sed pellentesque mi. Donec facilisis orci est, vitae aliquam +tortor elementum id. Nunc nec porta dolor, id aliquet sem. Pellentesque ac +elementum nisl. Donec faucibus arcu arcu, nec semper sapien interdum id. +Curabitur a sollicitudin tortor. + +Mauris a nisi metus. Sed sollicitudin, nisi et condimentum facilisis, elit neque +pretium mauris, et varius erat nulla vitae purus. Nullam sed tellus ac nulla +laoreet cursus. In ultricies, leo ut pharetra egestas, purus enim placerat +turpis, in gravida leo nisi non ligula. Aenean blandit ligula sit amet diam +posuere, vestibulum euismod tortor dapibus. Pellentesque ligula purus, +condimentum nec luctus vel, feugiat id leo. Quisque viverra a erat ac +scelerisque. Nunc bibendum ac neque et congue. + +Vestibulum gravida, elit sit amet molestie luctus, enim arcu fringilla odio, at +malesuada mauris purus sed metus. Nunc lorem tortor, fringilla quis maximus vel, +aliquet ut orci. Aliquam pulvinar sodales magna, consequat fermentum arcu +consectetur non. Donec et ligula leo. Vestibulum porttitor porttitor est id +mattis. Phasellus non vulputate ante. Aenean maximus orci orci, et dignissim +urna finibus in. Cras tortor est, feugiat et urna quis, interdum sodales metus. +Pellentesque neque est, aliquet volutpat condimentum ac, gravida in mi. + +In hac habitasse platea dictumst. In hac habitasse platea dictumst. Maecenas +finibus, enim ac tristique ornare, velit turpis gravida erat, sed mattis libero +elit vel dolor. Phasellus sem tortor, mattis id efficitur eget, tristique ut +odio. Sed bibendum vehicula lacus, non elementum magna tempor a. Phasellus id +est pulvinar, porta arcu vel, venenatis urna. Suspendisse quis consequat arcu. +Quisque auctor lacus in nisl tristique volutpat. Suspendisse non placerat leo. +Praesent pellentesque velit at lectus malesuada, at convallis quam aliquam. +Nullam sit amet sem risus. Sed maximus consectetur dui at lacinia. Suspendisse +posuere accumsan vestibulum. Maecenas vel sem placerat mauris imperdiet placerat +nec vel erat. Duis accumsan felis sit amet purus efficitur, et lobortis urna +feugiat. Curabitur tincidunt lectus eget enim efficitur, quis accumsan neque +luctus. + +Generated 5 paragraphs, 523 words, 3547 bytes of Lorem ipsum dolor sit amet, +consectetur adipiscing elit. Integer efficitur massa risus, eu tincidunt magna +finibus id. Donec quis tincidunt est, sed commodo leo. Donec nec varius lacus. +Mauris tempor nisi ipsum, id tincidunt ipsum porta vel. Sed blandit est sit amet +bibendum egestas. Integer facilisis tortor viverra pellentesque efficitur. Sed +non magna placerat, volutpat felis ac, iaculis mauris. Morbi tempor nulla vel +enim tristique tristique. Nam sed purus aliquet, facilisis ligula vitae, +accumsan metus. Integer porta nisi iaculis massa consequat, quis mollis tellus +ultricies. Vestibulum vehicula lacinia eros, eu aliquam neque. Pellentesque +hendrerit metus et nulla tristique, non sollicitudin odio mollis. Mauris vel +eros vitae ipsum viverra sollicitudin imperdiet sed nibh. Nullam vel metus +luctus, maximus elit eu, feugiat lectus. + +Fusce ac massa sed lorem convallis suscipit sed vitae neque. Duis condimentum +ante dolor, congue dictum ligula ullamcorper vitae. Praesent eros neque, dictum +sit amet venenatis et, suscipit vitae diam. Praesent venenatis, dui sit amet +euismod luctus, dolor velit tempus neque, at elementum ante sapien eget nisi. +Fusce at tempus orci, et porttitor elit. Donec dapibus enim sem, at interdum +ligula dapibus quis. In sit amet commodo arcu. Aliquam sit amet porta eros, at +porta felis. Nullam consectetur hendrerit elit nec pulvinar. Praesent nec +imperdiet nulla, sed pellentesque mi. Donec facilisis orci est, vitae aliquam +tortor elementum id. Nunc nec porta dolor, id aliquet sem. Pellentesque ac +elementum nisl. Donec faucibus arcu arcu, nec semper sapien interdum id. +Curabitur a sollicitudin tortor. + +Mauris a nisi metus. Sed sollicitudin, nisi et condimentum facilisis, elit neque +pretium mauris, et varius erat nulla vitae purus. Nullam sed tellus ac nulla +laoreet cursus. In ultricies, leo ut pharetra egestas, purus enim placerat +turpis, in gravida leo nisi non ligula. Aenean blandit ligula sit amet diam +posuere, vestibulum euismod tortor dapibus. Pellentesque ligula purus, +condimentum nec luctus vel, feugiat id leo. Quisque viverra a erat ac +scelerisque. Nunc bibendum ac neque et congue. + +Vestibulum gravida, elit sit amet molestie luctus, enim arcu fringilla odio, at +malesuada mauris purus sed metus. Nunc lorem tortor, fringilla quis maximus vel, +aliquet ut orci. Aliquam pulvinar sodales magna, consequat fermentum arcu +consectetur non. Donec et ligula leo. Vestibulum porttitor porttitor est id +mattis. Phasellus non vulputate ante. Aenean maximus orci orci, et dignissim +urna finibus in. Cras tortor est, feugiat et urna quis, interdum sodales metus. +Pellentesque neque est, aliquet volutpat condimentum ac, gravida in mi. + +In hac habitasse platea dictumst. In hac habitasse platea dictumst. Maecenas +finibus, enim ac tristique ornare, velit turpis gravida erat, sed mattis libero +elit vel dolor. Phasellus sem tortor, mattis id efficitur eget, tristique ut +odio. Sed bibendum vehicula lacus, non elementum magna tempor a. Phasellus id +est pulvinar, porta arcu vel, venenatis urna. Suspendisse quis consequat arcu. +Quisque auctor lacus in nisl tristique volutpat. Suspendisse non placerat leo. +Praesent pellentesque velit at lectus malesuada, at convallis quam aliquam. +Nullam sit amet sem risus. Sed maximus consectetur dui at lacinia. Suspendisse +posuere accumsan vestibulum. Maecenas vel sem placerat mauris imperdiet placerat +nec vel erat. Duis accumsan felis sit amet purus efficitur, et lobortis urna +feugiat. Curabitur tincidunt lectus eget enim efficitur, quis accumsan neque +luctus. + +**Generated 5 paragraphs, 523 words, 3547 bytes of [Lorem +Ipsum](https://www.lipsum.com/)**. diff --git a/vignettes/rostemplate.Rmd b/vignettes/rostemplate.Rmd deleted file mode 100644 index 9f2fd58..0000000 --- a/vignettes/rostemplate.Rmd +++ /dev/null @@ -1,166 +0,0 @@ ---- -title: "Cómo usar esta plantilla" -output: - rmarkdown::html_vignette: - toc: true - number_sections: true - toc_depth: 1 -vignette: > - %\VignetteIndexEntry{Cómo usar esta plantilla} - %\VignetteEngine{knitr::rmarkdown} - %\VignetteEncoding{UTF-8} ---- - -```{r, include = FALSE} -knitr::opts_chunk$set( - collapse = TRUE, - comment = "#>" -) -``` - -## Introducción - -Este paquete proporciona una plantilla de `pkgdown` adaptada a la empleada por -la comunidad [rOpenSpain](https://ropenspain.es/), que a su vez es una -adaptación de la plantilla -[Universal](https://bootstrapious.com/p/universal-business-e-commerce-template) -creada por -[Bootstrapius](https://bootstrapious.com/p/universal-business-e-commerce-template) -con la variación de color **violet**. - -## Limitaciones - -El diseño original de las plantillas que componen `pkgdown` es bastante rígido, -en el sentido de que ligeras modificaciones (como el tipo de *navbar* o la -localización del *footer*) pueden provocar que el renderizado final no sea -óptimo. Para solucionarlo se han empleado algunos *hacks* en el fichero `css` y -pequeños fragmentos en `javascript`. - -Otra limitación es la diferencia de versiones Bootstrap, ya que esta plantilla -`pkgdown` emplea la versión Bootstrap 5 mientras que Universal emplea la 3.3.7. - -## Configuración previa - -En la raíz del proyecto ha de existir un archivo `_pkgdown.yml` con al menos las -siguientes líneas: - -``` yaml -template: - package: rostemplate - # No pongas la siguiente línea! - default_assets: false -``` - -Puedes encontrar información sobre cómo configurar otras opciones en -`_pkgdown.yml` [aquí](https://pkgdown.r-lib.org/articles/pkgdown.html). - -Adicionalmente, es necesario añadir al archivo `.Rbuildignore` las siguientes -líneas: - -``` default -^\.github$ -^docs$ -^_pkgdown\.yml$ -``` - - -## Uso de la plantilla - -Esta sección detalla diferentes opciones para generar un sitio estático para el -paquete deseado con el formato definido por esta plantilla. El resultado de este -paso es la generación de un sitio estático compuesto de los archivos `html`, -`css`, etc. basados en el paquete de R para el que se está generando el sitio. - -### Con GitHub actions - CI - -GitHub Actions permite automatizar procesos cuando se activa un *trigger*. En -este caso se han preparado dos acciones que actualizan el sitio estático cada -vez que se añade un *commit* al repositorio. - -Los flujos de trabajo consisten en archivos con extensión `.yaml`. La acción -[rostemplate-docs.yaml](https://github.com/ropenspain/rostemplate/blob/main/inst/yaml/rostemplate-docs.yaml) -crea el sitio estático en la carpeta `./docs` mientras que -[rostemplate-gh-pages.yaml](https://github.com/ropenspain/rostemplate/blob/main/inst/yaml/rostemplate-gh-pages.yaml) -crea el sitio estático en el branch `gh-pages`. - -Para configurar esta opción, es necesario disponer en el repositorio de una -carpeta en la ruta `.github/workflows` y copiar la acción deseada en dicha -carpeta. - -#### Alternativa usando las funciones de `rostemplate` - -Aunque el uso del paquete `rostemplate` en si no es necesario con GitHub -actions, se han desarrollado dos funciones que automatizan esta configuración de -manera automática. Estas funciones simplemente crean el directorio -`.github/workflows` si no existiera previamente y copian los archivos -solicitados en la ruta correspondiente. Adicionalmente, crean los archivos -`.Rbuildignore` y `.github/.gitignore`, que ignoran ciertos archivos cuando se -compila el paquete: - -```{r eval=FALSE} -# Instalación via r-universe - -install.packages("rostemplate", - repos = c("https://ropenspain.r-universe.dev", "https://cloud.r-project.org") -) - -# Deploy to gh-branch - -rostemplate::ros_actions_pkgdown_branch() - - -# Deploy to docs folder -rostemplate::ros_actions_pkgdown_docs() -``` - -Es posible cambiar el evento que desencadena la actualización del sitio: - -``` yaml -# Actualiza en cada commit - por defecto -on: - push: - branches: - - main - - master - -# Actualiza cuando se modifica un archivo específico: _pkgdown.yaml - -on: - push: - paths: - - '_pkgdown.yaml' -``` - -Más información sobre cómo adaptar los *triggers* de la acción -[aquí](https://docs.github.com/es/free-pro-team@latest/actions/reference/events-that-trigger-workflows). - -### RStudio - manual - -El sitio estático se puede generar igualmente desde una sesión local en RStudio. -Para ello, es necesario instalar este paquete: - -```{r eval=FALSE} -install.packages("rostemplate", - repos = c("https://ropenspain.r-universe.dev", "https://cloud.r-project.org") -) -``` - -Una vez instalado, se ha de ejecutar este script: - -```{r eval=FALSE} -rostemplate::ros_build() -``` - -La función `rostemplate::ros_build()` no es más que un alias de -`pkgdown::build_site()`, aportando únicamente un control sobre la configuración -del archivo `_pkgdown.yml` - -Una vez generado el sitio, es necesario actualizar el repositorio remoto en -GitHub mediante un *commit*. - -## GitHub Pages - -Una vez generado el sitio estático y subido al repositorio en GitHub, el último -paso es activar el sitio web a través de los *Settings* de nuestro repositorio -(*Setting\>GitHub Pages*), seleccionando el origen deseado (`gh-pages`, -`main/docs`, etc.).