# Partially Automate Maintenance Of A Modelling Project’s Website

    library(ready4)

## Motivation

Manually keeping track of modules libraries, programs, reporting templates and datasets authored by different teams and stored in different locations can be an onerous undertaking. The `ready4` library therefore includes tools to allow a modelling project’s maintainers to perform automated searches for model artefacts and to output tabular summaries of these assets in formats suitable for inclusion on a project documentation website.

## Implementation

The `ready4` library includes tools to allow a modelling project’s maintainers to partially automate searching for and creating summaries of relevant modelling project assets (e.g. tutorials, releases, etc.) that are suitable for inclusion on documentation website pages.

## Use

The documentation website maintenance tools in the `ready4` library are designed to be used on a docsy documentation website derived from this template repository. An example of a website created from this template is the readyforwhatsnext model project website, for which source code is available here.

The `write_to_render_post` is the main `ready4` function used specifically for website maintenance tasks. Importantly, the non-CRAN library hugodown needs to be installed to use this function.

`write_to_render_post` is designed for help overcome practical challenges of rendering RMD or Rmarkdown files (particularly those sourced from an individual module library’s documentation website) to Markdown output in an overall modelling project website. Examples of its use are in this script that is run when updating the readyforwhatsnext project website. The RMD / Rmarkdown files rendered by this example script call other useful functions from the ready4 package, such as:

- `get_libraries_tb`, `update_libraries_tb` and `print_packages` for updating details on module libraries (see this example)

- `make_modules_tb` and `print_modules` for updating details on individual modules (see this example)

- `make_datasets_tb` and `print_data` for updating details on module datasets (see this example)

- `get_datasets_tb`, `make_dss_tb` and `make_ds_releases_tbl` for updating release statuses of module datasets (see this RMD file and its output)

- `make_programs_tbl` for updating details on analysis programs or reporting sub-routines that use model modules (see this RMD file and its associated output as well as this RMD file and its output)

- `make_code_releases_tbl` for updating release statuses of module libraries and programs or reporting sub-routines that use model modules (see this RMD file and its output)