PMAP 8141 β’ Summer 2024
Andrew Heiss β’ Andrew Young School of
Policy Studies β’ Georgia State University
Quarto + {targets} + {renv} = magic! πͺ
- Install RStudio version 2022.07.1 or later since it has a Quarto installation embedded in it. Otherwise, download and install Quarto separately.
- Open
compasp23.Rproj
to open an RStudio Project. - If itβs not installed already, R should try to install the {renv}
package when you open the RStudio
Project for the first time. If you donβt see a message about package
installation, install it yourself by running
install.packages("renv")
in the R console. - Run
renv::restore()
in the R console to install all the required packages for this project. - Run
targets::tar_make()
in the R console to build everything. - π All done! π The complete website will be in a folder named
_site/
.
I use the {targets} package to
build this site and all its supporting files. The complete pipeline is
defined in _targets.R
and can be run in the R console
with:
targets::tar_make()
The pipeline does several major tasks:
-
Build Quarto website: This project is a Quarto website, which compiles and stitches together all the
.qmd
files in this project based on the settings in_quarto.yml
. See the Quarto website documentation for more details. -
Upload resulting
_site/
folder to my remote server: Quarto places the compiled website in a folder named/_site/
. The pipeline usesrsync
to upload this folder to my personal remote server. This target will only run if theUPLOAD_WEBSITES
environment variable is set toTRUE
, and it will only work if you have an SSH key set up on my personal server, which only I do.
The complete pipeline looks like this:
(This uses mermaid.js
syntax and should display as a
graph on GitHub. You can also view it by pasting the code into
https://mermaid.live.)
graph LR
style Graph fill:#FFFFFF00,stroke:#000000;
subgraph Graph
direction LR
x830adcacfab4076a(["deploy_script"]):::completed --> xd6774b1369562ec8(["deploy_site"]):::queued
x5fee94802c729361(["site"]):::queued --> xd6774b1369562ec8(["deploy_site"]):::queued
xe96618267648362b(["schedule_ical_file"]):::queued --> x5fee94802c729361(["site"]):::queued
x7f26ad8951796691(["schedule_page_data"]):::queued --> x5fee94802c729361(["site"]):::queued
x660da1d01e230321(["workflow_graph"]):::dispatched --> xc11069275cfeb620(["readme"]):::queued
x83c90c487d16eadc(["schedule_file"]):::queued --> x7f26ad8951796691(["schedule_page_data"]):::queued
x83c90c487d16eadc(["schedule_file"]):::queued --> xd1e486155305a9d8(["schedule_ical_data"]):::queued
xd1e486155305a9d8(["schedule_ical_data"]):::queued --> xe96618267648362b(["schedule_ical_file"]):::queued
end
The font used throughout the site is IBM Plex Sans Condensed.
The colors for the site and hex logo come from the Aurora and Frost palettes from Nord:
Text and figures: All prose and images are licensed under Creative Commons (CC-BY-NC 4.0)
Code: All code is licensed under the MIT License.