Skip to content

ucdavisdatalab/workshop_spatial_data_formats

Repository files navigation

Template: Workshop Reader

This repository is a template for workshop readers for the UC Davis DataLab. This template uses bookdown to knit the reader. You can also optionally use renv to manage packages and Git Large File Storage to manage large files (instructions included).

To get started, create a new repo on GitHub from this template (instructions), then git clone your new repo.

Once you've cloned the repo, here's a checklist of things to do to prepare the repo:

  1. renv (optional): To set up renv, open R at the top level of the repo and run:

    renv::init()

    Restart R. Then, to install the bookdown toolchain to the project package library, run:

    install.packages("bookdown")
    renv::snapshot()

    You can skip this step if you're not going to use renv.

  2. index.Rmd: Replace the all-caps text with your workshop details.

    • Title (in 2 places, 1 of them in the _output.yml file)
    • Author's name
    • Repo name (in 4 places, 2 of them in the _output.yml file)
    • Description, learning goals, & prerequisites
  3. README.md: Replace the all-caps text with your workshop details.

    • Title
    • Quarter & year
    • Author's name & email
    • Reader URL
    • Event URL
    • Description, learning goals, & prerequisites
  4. _output.yml: Replace the all-caps text with your workshop details.

    • Title
    • Repo name (2 places)
  5. If this workshop does not have an assessment, delete 99_assessment.Rmd.

  6. GitHub: In the repo's About section, add the reader URL and appropriate tags.

  7. GitHub: In the repo's Settings page, enable GitHub pages. Set the branch to main and the directory to docs/.

  8. README.md: Remove these template instructions, which end at the # Workshop: header below

  9. git add all changed files, then git commit and git push.

Workshop: YOUR WORKSHOP TITLE

UC Davis DataLab
QUARTER YEAR
Instructor: YOUR NAME <YOUR_EMAIL@ucdavis.edu>
Maintainer: MAINTAINER'S NAME <MAINTAINER_EMAIL@ucdavis.edu>

YOUR DESCRIPTION, LEARNING GOALS, PREREQUISITES, ETC

Contributing

The course reader is a live webpage, hosted through GitHub, where you can enter curriculum content and post it to a public-facing site for learners.

To make alterations to the reader:

  1. Check in with the reader's current maintainer and notify them about your intended changes. Maintainers might ask you to open an issue, use pull requests, tag your commits with versions, etc.

  2. Run git pull, or if it's your first time contributing, see Setup.

  3. Edit an existing chapter file or create a new one. Chapter files are R Markdown files (.Rmd) at the top level of the repo. Enter your text, code, and other information directly into the file. Make sure your file:

    • Follows the naming scheme ##_topic-of-chapter.Rmd (the only exception is index.Rmd, which contains the reader's front page).
    • Begins with a first-level header (like # This). This will be the title of your chapter. Subsequent section headers should be second-level headers (like ## This) or below.
    • Uses caching for resource-intensive code (see Caching).

    Put any supporting resources in data/ or img/. For large files, see Large Files. You do not need to add resources generated by your R code (such as plots). The knit step saves these in docs/ automatically.

  4. Run knit.R to regenerate the HTML files in the docs/. You can do this in the shell with ./knit.R or in R with source("knit.R"). If you would like to include a PDF copy of the reader, add the flag -p (or --pdf). This will generate a docs/_main.pdf file, available for download via the menu bar in the reader.

  5. Run renv::snapshot() in an R session at the top level of the repo to automatically add any packages your code uses to the project package library.

  6. When you're finished, git add:

    • Any files you added or edited directly, including in data/ and img/
    • docs/ (all of it)
    • _bookdown_files/ (contains the knitr cache)
    • renv.lock (contains the renv package list)
Then `git commit` and `git push`. The live web page will update
automatically after 1-10 minutes.

Caching

If one of your code chunks takes a lot of time or memory to run, consider caching the result, so the chunk won't run every time someone knits the reader. To cache a code chunk, add cache=TRUE in the chunk header. It's best practice to label cached chunks, like so:

```{r YOUR_CHUNK_NAME, cache=TRUE}
# Your code...
```

Cached files are stored in the _bookdown_files/ directory. If you ever want to clear the cache, you can delete this directory (or its subdirectories). The cache will be rebuilt the next time you knit the reader.

Beware that caching doesn't work with some packages, especially packages that use external libraries. Because of this, it's best to leave caching off for code chunks that are not resource-intensive.

Github Actions

GitHub Actions can be set up to automatically render your reader when you push new content to a repo. If you would like to use this function, download the materials in datalab-dev/utilities/render_bookdown_site and follow the instructions there.

Setup

R Packages

This repo uses renv for package management. Install renv according to the installation instructions on their website.

Then open an R session at the top level of the repo and run:

renv::restore()

This will download and install the correct versions of all the required packages to renv's package library. This is separate from your global R package library and will not interfere with other versions of packages you have installed.

Back to Top

About

A workshop introducing the structure of commonly used spatial data formats

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages