From dee275150c831883fb6f0cd009b8c3bca0458e01 Mon Sep 17 00:00:00 2001 From: Patrick Callahan Date: Thu, 16 Jul 2026 12:56:13 +0200 Subject: [PATCH 1/8] Adhere to new tutorial template structure Set redirect aliases for newly named qmd files Remove old scss and css Rename files to kebap case --- .filenameignore | 20 ++ .github/workflows/citation-check.yml | 21 ++ .github/workflows/filename-check.yml | 22 ++ .github/workflows/link-checker.yml | 44 +++ .github/workflows/publish.yaml | 83 +++++- .github/workflows/style.yaml | 77 +++++ .github/workflows/update-extension.yml | 32 ++ .gitignore | 6 + 404.qmd | 14 + README.md | 36 +-- .../lmu-osc/tutorial-template/_extension.yml | 48 +++ .../lmu-osc/osc-brand/_extension.yml | 16 + .../_extensions/lmu-osc/osc-brand/brand.yml | 120 ++++++++ .../lmu-osc/osc-brand/lmu-osc-custom.scss | 35 +++ .../lmu-osc/osc-brand/lmu-osc-favicon.jpg | Bin .../lmu-osc/osc-brand/lmu-osc-logo-dark.svg | 281 ++++++++++++++++++ .../lmu-osc/osc-brand/lmu-osc-logo-large.jpg | Bin 0 -> 147604 bytes .../lmu-osc/osc-brand/lmu-osc-logo.svg | 281 ++++++++++++++++++ .../assets/bootstrap-grid.min.css | 6 + _quarto.yml | 97 +++--- about.qmd | 44 +++ assets/lmu-osc-favicon.jpg | Bin 0 -> 26031 bytes assets/{LMU-OSC_logo.jpg => lmu-osc-logo.jpg} | Bin assets/lmu-osc-logo.svg | 281 ++++++++++++++++++ custom.scss | 5 - ...ions.R => exercise-script-with-solutions.R | 0 ...s.R => exercise-script-without-solutions.R | 0 footer/accessibilty.qmd | 122 ++++++++ footer/footer-style.css | 21 ++ footer/footer.html | 91 ++++++ footer/imprint.qmd | 112 +++++++ footer/privacy.qmd | 179 +++++++++++ .../bootstrapping.r | 0 .../mediation-raw-data.csv | 0 .../novel-question-output.csv | 0 .../novel-question.R | 0 .../power-analysis.R | 0 .../reading-sheet.md | 4 + .../glm-freq-vs-yn.R | 0 index.qmd | 63 ++-- references.bib | 10 + styles.css | 5 - .../basic-principles.qmd | 4 + .../check-alpha.qmd | 4 + .../check-power.qmd | 4 + .../definition.qmd | 4 + .../download-repo.qmd | 4 + .../dry-rule.qmd | 4 + .../general-structure.qmd | 4 + .../limitations.qmd | 4 + .../number-of-simulations-nrep.qmd | 4 + .../purpose.qmd | 4 + .../random-numbers-generators.qmd | 6 +- .../real-life-example.qmd | 6 +- {tutorial_pages => tutorial-pages}/repeat.qmd | 4 + .../resources.qmd | 14 +- .../sample-size-n.qmd | 4 + {tutorial_pages => tutorial-pages}/seed.qmd | 4 + .../simulate-for-preregistration.qmd | 4 + 59 files changed, 2160 insertions(+), 98 deletions(-) create mode 100644 .filenameignore create mode 100644 .github/workflows/citation-check.yml create mode 100644 .github/workflows/filename-check.yml create mode 100644 .github/workflows/link-checker.yml create mode 100644 .github/workflows/style.yaml create mode 100644 .github/workflows/update-extension.yml create mode 100644 404.qmd create mode 100644 _extensions/lmu-osc/tutorial-template/_extension.yml create mode 100644 _extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/_extension.yml create mode 100644 _extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/brand.yml create mode 100644 _extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/lmu-osc-custom.scss rename assets/LMU-OSC_favicon.jpg => _extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/lmu-osc-favicon.jpg (100%) create mode 100644 _extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/lmu-osc-logo-dark.svg create mode 100644 _extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/lmu-osc-logo-large.jpg create mode 100644 _extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/lmu-osc-logo.svg create mode 100644 _extensions/lmu-osc/tutorial-template/assets/bootstrap-grid.min.css create mode 100644 about.qmd create mode 100644 assets/lmu-osc-favicon.jpg rename assets/{LMU-OSC_logo.jpg => lmu-osc-logo.jpg} (100%) create mode 100644 assets/lmu-osc-logo.svg delete mode 100644 custom.scss rename exercise_script_with_solutions.R => exercise-script-with-solutions.R (100%) rename exercise_script_without_solutions.R => exercise-script-without-solutions.R (100%) create mode 100644 footer/accessibilty.qmd create mode 100644 footer/footer-style.css create mode 100644 footer/footer.html create mode 100644 footer/imprint.qmd create mode 100644 footer/privacy.qmd rename {Hallgren2013 => hallgren-2013}/bootstrapping.r (100%) rename Hallgren2013/mediation_raw_data.csv => hallgren-2013/mediation-raw-data.csv (100%) rename Hallgren2013/novel_question_output.csv => hallgren-2013/novel-question-output.csv (100%) rename Hallgren2013/novel question.R => hallgren-2013/novel-question.R (100%) rename Hallgren2013/power analysis.R => hallgren-2013/power-analysis.R (100%) rename Hallgren2013/ReadingSheet.md => hallgren-2013/reading-sheet.md (96%) rename Ihle2020/glm_Freq_vs_YN.R => ihle-2020/glm-freq-vs-yn.R (100%) create mode 100644 references.bib delete mode 100644 styles.css rename {tutorial_pages => tutorial-pages}/basic-principles.qmd (86%) rename {tutorial_pages => tutorial-pages}/check-alpha.qmd (98%) rename {tutorial_pages => tutorial-pages}/check-power.qmd (98%) rename {tutorial_pages => tutorial-pages}/definition.qmd (92%) rename {tutorial_pages => tutorial-pages}/download-repo.qmd (96%) rename {tutorial_pages => tutorial-pages}/dry-rule.qmd (97%) rename {tutorial_pages => tutorial-pages}/general-structure.qmd (95%) rename {tutorial_pages => tutorial-pages}/limitations.qmd (92%) rename {tutorial_pages => tutorial-pages}/number-of-simulations-nrep.qmd (94%) rename {tutorial_pages => tutorial-pages}/purpose.qmd (97%) rename {tutorial_pages => tutorial-pages}/random-numbers-generators.qmd (90%) rename {tutorial_pages => tutorial-pages}/real-life-example.qmd (93%) rename {tutorial_pages => tutorial-pages}/repeat.qmd (94%) rename {tutorial_pages => tutorial-pages}/resources.qmd (90%) rename {tutorial_pages => tutorial-pages}/sample-size-n.qmd (97%) rename {tutorial_pages => tutorial-pages}/seed.qmd (95%) rename {tutorial_pages => tutorial-pages}/simulate-for-preregistration.qmd (97%) diff --git a/.filenameignore b/.filenameignore new file mode 100644 index 0000000..eccf444 --- /dev/null +++ b/.filenameignore @@ -0,0 +1,20 @@ +# Paths to ignore for filename/path validation checks. +# Patterns use fnmatch syntax and are relative to repo root. + +_site/** +.quarto/** +.github/** +_extensions/ +assets/bootstrap-grid.min.css + +# Common documentation files to ignore +LICENSE-CODE.md +LICENSE.md +LICENSE +README.md +README +README-template.md +CITATION.cff +CITATION-template.cff +_quarto.yml +404.qmd \ No newline at end of file diff --git a/.github/workflows/citation-check.yml b/.github/workflows/citation-check.yml new file mode 100644 index 0000000..db7b4eb --- /dev/null +++ b/.github/workflows/citation-check.yml @@ -0,0 +1,21 @@ +on: + workflow_dispatch: + push: + branches: [main] + paths: + - CITATION.cff + +name: Check CITATION.cff is Valid +jobs: + Validate-CITATION-cff: + runs-on: ubuntu-latest + name: Validate CITATION.cff + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Validate CITATION.cff + uses: dieghernan/cff-validator@v3 diff --git a/.github/workflows/filename-check.yml b/.github/workflows/filename-check.yml new file mode 100644 index 0000000..7fc2971 --- /dev/null +++ b/.github/workflows/filename-check.yml @@ -0,0 +1,22 @@ +name: Filename Checks + +on: + workflow_dispatch: + pull_request: + push: + branches: + - main + +jobs: + check-names: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Check filenames + uses: NeuroShepherd/check-filenames-action@v1 + with: + max-path-length: "65" + max-depth: "2" + file-types: "html,md,qmd,css,scss,rmd,pdf,png,jpg,svg,yml" + ignore-file: ".filenameignore" + dotfile-mode: "strip-leading-dot" \ No newline at end of file diff --git a/.github/workflows/link-checker.yml b/.github/workflows/link-checker.yml new file mode 100644 index 0000000..7fa9f73 --- /dev/null +++ b/.github/workflows/link-checker.yml @@ -0,0 +1,44 @@ +name: Link Checker + +on: + schedule: + - cron: '0 0 1 * *' + workflow_dispatch: + +jobs: + check-links: + runs-on: ubuntu-latest + permissions: + issues: write + steps: + - name: Check links + id: check + uses: filiph/linkcheck@master + continue-on-error: true + with: + arguments: https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/ + + - name: Create issue on broken links + if: steps.check.outputs.exit_code != '0' + uses: actions/github-script@v7 + with: + script: | + const fs = require('fs'); + const report = fs.readFileSync('log', 'utf8'); + + const { data: issues } = await github.rest.issues.listForRepo({ + owner: context.repo.owner, + repo: context.repo.repo, + state: 'open', + labels: 'link-checker' + }); + + if (issues.length === 0) { + await github.rest.issues.create({ + owner: context.repo.owner, + repo: context.repo.repo, + title: 'πŸ”— Broken Links Found on Site', + body: `The monthly link checker detected broken links.\n\n${report}`, + labels: ['link-checker'] + }); + } \ No newline at end of file diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 120b8aa..a1937d4 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -1,12 +1,14 @@ on: workflow_dispatch: + schedule: + - cron: "0 23 * * 0" push: - branches: main + branches: [main] -name: Quarto Publish +name: Render Quarto Site jobs: - build-deploy: + quarto-publish: runs-on: ubuntu-latest permissions: contents: write @@ -16,16 +18,85 @@ jobs: - name: Set up Quarto uses: quarto-dev/quarto-actions/setup@v2 + with: + tinytex: true + + - name: Install system dependencies + run: | + sudo apt-get update + sudo apt install -y \ + libcurl4-openssl-dev \ + libfontconfig1-dev \ + libssl-dev \ + libxml2-dev \ + libpng-dev \ + libjpeg-dev \ + libtiff-dev \ + libcairo2-dev \ + libxt-dev \ + libfreetype6-dev \ + libharfbuzz-dev \ + libfribidi-dev \ + zlib1g-dev \ + libv8-dev \ + libglpk-dev \ + librsvg2-bin - - name: Install R + - name: Install R with renv uses: r-lib/actions/setup-r@v2 with: - r-version: '4.4.0' + r-version: renv + if: ${{ hashFiles('renv.lock') != '' }} - - name: Install R Dependencies + - name: Install R Dependencies with renv uses: r-lib/actions/setup-renv@v2 with: cache-version: 1 + if: ${{ hashFiles('renv.lock') != '' }} + + - name: Install R latest + uses: r-lib/actions/setup-r@v2 + if: ${{ hashFiles('renv.lock') == '' }} + + - name: Set R library path (no lockfile) + run: echo "R_LIBS_USER=$HOME/.local/lib/R/site-library" >> "$GITHUB_ENV" + if: ${{ hashFiles('renv.lock') == '' }} + + - name: Cache R library (no lockfile) + uses: actions/cache@v4 + with: + path: ~/.local/lib/R/site-library + key: ${{ runner.os }}-r-nolock-${{ hashFiles('**/*.R', '**/*.Rmd', '**/*.qmd', '_quarto.yml') }} + restore-keys: | + ${{ runner.os }}-r-nolock- + if: ${{ hashFiles('renv.lock') == '' }} + + - name: Install R latest dependencies + run: | + lib <- Sys.getenv("R_LIBS_USER") + if (nzchar(lib)) { + dir.create(lib, recursive = TRUE, showWarnings = FALSE) + .libPaths(c(lib, .libPaths())) + } + install.packages("renv") + install.packages("rmarkdown") + install.packages("yaml") + deps <- unique(stats::na.omit(renv::dependencies()$Package)) + if (length(deps) > 0) install.packages(deps) + shell: Rscript {0} + if: ${{ hashFiles('renv.lock') == '' }} + + - name: Ensure Quarto R runtime packages + run: | + lib <- Sys.getenv("R_LIBS_USER") + if (nzchar(lib)) { + dir.create(lib, recursive = TRUE, showWarnings = FALSE) + .libPaths(c(lib, .libPaths())) + } + pkgs <- c("knitr", "rmarkdown") + missing <- pkgs[!vapply(pkgs, requireNamespace, logical(1), quietly = TRUE)] + if (length(missing) > 0) install.packages(missing) + shell: Rscript {0} - name: Render and Publish uses: quarto-dev/quarto-actions/publish@v2 diff --git a/.github/workflows/style.yaml b/.github/workflows/style.yaml new file mode 100644 index 0000000..a249278 --- /dev/null +++ b/.github/workflows/style.yaml @@ -0,0 +1,77 @@ +# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples +# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help +on: + workflow_dispatch: + # push: + # paths: ["**.[rR]", "**.[qrR]md", "**.[rR]markdown", "**.[rR]nw", "**.[rR]profile"] + +name: Tidyverse Style Formatting + +permissions: read-all + +jobs: + style: + runs-on: ubuntu-latest + permissions: + contents: write + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + steps: + - name: Checkout repo + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup R + uses: r-lib/actions/setup-r@v2 + with: + use-public-rspm: true + + - name: Install styler and roxygen2 + uses: r-lib/actions/setup-r-dependencies@v2 + with: + packages: styler, roxygen2 + + - name: Enable styler cache + run: styler::cache_activate() + shell: Rscript {0} + + - name: Determine cache location + id: styler-location + run: | + cat( + "location=", + styler::cache_info(format = "tabular")$location, + "\n", + file = Sys.getenv("GITHUB_OUTPUT"), + append = TRUE, + sep = "" + ) + shell: Rscript {0} + + - name: Cache styler + uses: actions/cache@v4 + with: + path: ${{ steps.styler-location.outputs.location }} + key: ${{ runner.os }}-styler-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-styler- + ${{ runner.os }}- + + - name: Style + run: styler::style_dir() + shell: Rscript {0} + + - name: Commit and push changes + run: | + if FILES_TO_COMMIT=($(git diff-index --name-only ${{ github.sha }} \ + | egrep --ignore-case '\.(R|[qR]md|Rmarkdown|Rnw|Rprofile)$')) + then + git config --local user.name "$GITHUB_ACTOR" + git config --local user.email "$GITHUB_ACTOR@users.noreply.github.com" + git commit ${FILES_TO_COMMIT[*]} -m "Style code (GHA)" + git pull --ff-only + git push origin + else + echo "No changes to commit." + fi diff --git a/.github/workflows/update-extension.yml b/.github/workflows/update-extension.yml new file mode 100644 index 0000000..4e52ef7 --- /dev/null +++ b/.github/workflows/update-extension.yml @@ -0,0 +1,32 @@ +name: Update Tutorial Template Extension + +on: + schedule: + - cron: "0 0 2 * *" + workflow_dispatch: + +permissions: read-all + +jobs: + update-downstream-tutorials: + # prevent action from running in actual extension repo--else, recursive installations + # only users of the extension should have these auto-updates + if: github.repository != 'lmu-osc/tutorial-template' + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Checkout repo + uses: actions/checkout@v5 + with: + fetch-depth: 0 + + - name: Setup Quarto + uses: quarto-dev/quarto-actions/setup@v2 + + - name: Update tutorial-template extension + run: quarto update lmu-osc/tutorial-template --no-prompt + + - uses: stefanzweifel/git-auto-commit-action@v7 + with: + commit_message: "Update tutorial-template extension (GHA)" diff --git a/.gitignore b/.gitignore index 330a18e..dea1398 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,9 @@ rsconnect/ .httr-oauth .quarto _site/ +**_files/ + +**/*.quarto_ipynb + +# ignore posi assistant settings +.posit/assistant \ No newline at end of file diff --git a/404.qmd b/404.qmd new file mode 100644 index 0000000..515733c --- /dev/null +++ b/404.qmd @@ -0,0 +1,14 @@ +--- +title: Uh-oh, looks like the page is missing! +description: The page you are looking for cannot be found 😟 +--- + +The page you are looking for either does not exist or has been moved. Please check the URL and try again. If you believe this is an error, please contact the website administrator for assistance. + +Note: many pages within our old tutorials have been moved to new locations as part of standardization efforts. It's likely the page you are looking for has been moved to a new location within the site. + + diff --git a/README.md b/README.md index 6bf59ff..08a1483 100644 --- a/README.md +++ b/README.md @@ -16,28 +16,28 @@ It is licensed under a [Creative Commons Attribution-ShareAlike 4.0 Internationa ## Self-paced workshop ### How it works -The self-paced tutorial (pages linked below) will alternate presentation of concepts and simple exercises for you to try to apply them in R. Each time you see written **YOUR TURN**, switch to your local copy of the exercise script (you can choose between a file with or without the solutions depending on e.g. your level of familiarity with R), review the examples if needed, complete the exercise, and check out the proposed answer (which often contains additional tips). Come back to the online tutorial and after finishing one page, you can navigate to the next page linked at the bottom to continue. The exercise script contains code for all the exercises and code that generates the plots that appear in the online tutorial, all in order of appearance in the tutorial. +The self-paced tutorial (pages linked below) will alternate presentation of concepts and simple exercises for you to try to apply them in R. Each time you see written **YOUR TURN**, switch to your local copy of the exercise script (you can choose between a file with or without the solutions depending on e.g. your level of familiarity with R), review the examples if needed, complete the exercise, and check out the proposed answer (which often contains additional tips). Come back to the online tutorial and after finishing one page, you can navigate to the next page linked at the bottom to continue. The exercise script contains code for all the exercises and code that generates the plots that appear in the online tutorial, all in order of appearance in the tutorial. It is necessary that you work through the sections of the tutorial in order. Please read the blurbs of each section below to get an overview of this workshop. Then click on the first page 'Download the material' and follow along by navigating to the next page linked at the bottom of each page! You can get back to this overview at any time by clicking on the title 'Introduction-Simulations-in-R' at the top of each page. ### Tutorial -* [Download the material](./tutorial_pages/download-repo.qmd) – Get this tutorial onto your machine. -* [Definition](./tutorial_pages/definition.qmd) – What are simulations? -* [Purpose](./tutorial_pages/purpose.qmd) – What can we use simulations for? -* [Basic principles](./tutorial_pages/basic-principles.qmd) – What do we need to create a simulation? -* [Random number generators](./tutorial_pages/random-numbers-generators.qmd) – How to generate random numbers in R? -* [Repeat](./tutorial_pages/repeat.qmd) – How to repeat the generation of random numbers multiple times? -* [Setting the seed](./tutorial_pages/seed.qmd) – How can you generate the same random numbers? -* [Sample size `n`](./tutorial_pages/sample-size-n.qmd) – How many values should you generate within a simulation? -* [Number of repetitions `nrep`](./tutorial_pages/number-of-simulations-nrep.qmd) – How many repeats of a simulation should you run? -* [DRY rule](./tutorial_pages/dry-rule.qmd) – How to write your own functions? -* [Simulate to check alpha](./tutorial_pages/check-alpha.qmd) – Write your first simulation and check the rate of false-positive findings. -* [Simulate to check power](./tutorial_pages/check-power.qmd) – Simulate data to perform a power analysis. -* [Simulate to prepare a preregistration](./tutorial_pages/simulate-for-preregistration.qmd) – Simulate data to test statistical analyses before preregistering them. -* [General structure](./tutorial_pages/general-structure.qmd) – What is the general structure of a simulation? -* [Limitations](./tutorial_pages/limitations.qmd) – What are the limitations of simulations? -* [Real-life example](./tutorial_pages/real-life-example.qmd) – What are real-life examples of simulations? -* [Additional resources](./tutorial_pages/resources.qmd) – What resources can help you write your own simulation? +* [Download the material](./tutorial-pages/download-repo.qmd) – Get this tutorial onto your machine. +* [Definition](./tutorial-pages/definition.qmd) – What are simulations? +* [Purpose](./tutorial-pages/purpose.qmd) – What can we use simulations for? +* [Basic principles](./tutorial-pages/basic-principles.qmd) – What do we need to create a simulation? +* [Random number generators](./tutorial-pages/random-numbers-generators.qmd) – How to generate random numbers in R? +* [Repeat](./tutorial-pages/repeat.qmd) – How to repeat the generation of random numbers multiple times? +* [Setting the seed](./tutorial-pages/seed.qmd) – How can you generate the same random numbers? +* [Sample size `n`](./tutorial-pages/sample-size-n.qmd) – How many values should you generate within a simulation? +* [Number of repetitions `nrep`](./tutorial-pages/number-of-simulations-nrep.qmd) – How many repeats of a simulation should you run? +* [DRY rule](./tutorial-pages/dry-rule.qmd) – How to write your own functions? +* [Simulate to check alpha](./tutorial-pages/check-alpha.qmd) – Write your first simulation and check the rate of false-positive findings. +* [Simulate to check power](./tutorial-pages/check-power.qmd) – Simulate data to perform a power analysis. +* [Simulate to prepare a preregistration](./tutorial-pages/simulate-for-preregistration.qmd) – Simulate data to test statistical analyses before preregistering them. +* [General structure](./tutorial-pages/general-structure.qmd) – What is the general structure of a simulation? +* [Limitations](./tutorial-pages/limitations.qmd) – What are the limitations of simulations? +* [Real-life example](./tutorial-pages/real-life-example.qmd) – What are real-life examples of simulations? +* [Additional resources](./tutorial-pages/resources.qmd) – What resources can help you write your own simulation? diff --git a/_extensions/lmu-osc/tutorial-template/_extension.yml b/_extensions/lmu-osc/tutorial-template/_extension.yml new file mode 100644 index 0000000..b1fce78 --- /dev/null +++ b/_extensions/lmu-osc/tutorial-template/_extension.yml @@ -0,0 +1,48 @@ +title: tutorial-template +author: Patrick Callahan +description: A template website for the LMU Open Science Center's tutorials +version: 1.0.4 +license: CC0-1.0 +quarto-required: ">=1.9.0" +contributes: + metadata: + project: + brand: _extensions/lmu-osc/osc-brand/brand.yml + project: + project: + type: website + website: + search: + location: sidebar + repo-actions: [edit, source, issue] + back-to-top-navigation: true + page-navigation: true + # favicon: Quarto detects the "small" image from the brand file automatically + reader-mode: true + navbar: + background: primary + logo: small + format: tutorial-template-html+tutorial + formats: + html+tutorial: + theme: + light: + [flatly, brand, _extensions/lmu-osc/osc-brand/lmu-osc-custom.scss] + dark: [darkly, brand, _extensions/lmu-osc/osc-brand/lmu-osc-custom.scss] + toc: true + toc-title: " " + code-tools: true + code-overflow: wrap + code-copy: true + code-link: true + smooth-scroll: true + link-external-icon: true + link-external-newwindow: true + footnotes-hover: true + citations-hover: true + crossrefs-hover: true + grid: + sidebar-width: 300px + css: + - assets/bootstrap-grid.min.css + html+base: osc-brand-html diff --git a/_extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/_extension.yml b/_extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/_extension.yml new file mode 100644 index 0000000..07ccc65 --- /dev/null +++ b/_extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/_extension.yml @@ -0,0 +1,16 @@ +title: LMU Open Science Center Brand +author: Patrick Callahan +version: 1.0.0 +url: https://github.com/lmu-osc/osc-brand +description: LMU Open Science Center brand assets and default HTML format +license: MIT +quarto-required: ">=1.9.0" +contributes: + metadata: + project: + brand: brand.yml + formats: + html: + theme: + light: [flatly, brand, lmu-osc-custom.scss] + dark: [darkly, brand, lmu-osc-custom.scss] diff --git a/_extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/brand.yml b/_extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/brand.yml new file mode 100644 index 0000000..3dd6c6f --- /dev/null +++ b/_extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/brand.yml @@ -0,0 +1,120 @@ +# minimal brand.yml enabling dark mode + +meta: + name: + full: LMU Open Science Center + short: OSC + link: + home: https://www.osc.lmu.de/ + github: https://github.com/lmu-osc + bluesky: https://bsky.app/profile/lmu-osc.bsky.social + description: | + Home of open science praxis at Ludwig-Maximilian UniversitΓ€t MΓΌnchen. + founded: 2019 + author: Pat Callahan + +# replace with your brand colors, logos, and typography! +color: + palette: + lmu-green: "#00883A" + lmu-black: "#232323" + lmu-white: "#FFF" + lmu-darkgrey: "#626468" + lmu-darkgray: "#626468" + lmu-middlegrey: "#C0C1C3" + lmu-middlegray: "#C0C1C3" + lmu-lightgrey: "#E6E6E7" + lmu-lightgray: "#E6E6E7" + lmu-lichtgrau: "#F5F5F5" + lmu-blue: "#0F1987" + lmu-cyan: "#009FE3" + lmu-violet: "#8C4091" + lmu-red: "#D71919" + lmu-orange: "#F18700" + background: + light: lmu-white + dark: lmu-black + foreground: + light: lmu-black + dark: lmu-white + primary: + light: lmu-green + dark: lmu-green + secondary: + light: lmu-black + dark: lmu-middlegray + tertiary: + light: lmu-blue + dark: lmu-violet + success: + light: lmu-cyan + dark: lmu-cyan + info: + light: lmu-violet + dark: lmu-violet + warning: + light: lmu-orange + dark: lmu-orange + danger: + light: lmu-red + dark: lmu-red + +logo: + images: + icon: + path: lmu-osc-favicon.jpg + alt: "LMU Open Science Center open book icon" + default: + path: lmu-osc-logo.svg + alt: "LMU Open Science Center logo" + dark: + path: lmu-osc-logo-dark.svg + alt: "LMU Open Science Center logo" + large: + path: lmu-osc-logo-large.jpg + alt: "LMU Open Science Center logo, large" + small: icon + medium: + light: default + dark: dark + large: + light: large + dark: large + +# https://www.lmu.de/de/die-lmu/struktur/zentrale-universitaetsverwaltung/presse-und-kommunikation-puk/lmu-brand-guide/designgrundsaetze/schrift/ +# Compatil is the official font, but license limited. Online content should use Roboto, and other software e.g. presentations use Arial +typography: + fonts: + - family: Roboto + source: google + - family: Arial + source: google + - family: Fira Code + source: google + base: + family: "Roboto, Arial" + # size: 1.1rem + # line-height: 1.65 + # weight: + # style: + headings: + family: "Roboto, Arial" + color: secondary + monospace: + family: "Fira Code" + # size: + # weight: + monospace-inline: + family: "Fira Code" + # color: + # background-color: + monospace-block: + family: "Fira Code" + # line-height: + # color: + # background-color: + # link: + # weight: + # color: + # background-color: + # decoration: diff --git a/_extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/lmu-osc-custom.scss b/_extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/lmu-osc-custom.scss new file mode 100644 index 0000000..4dc2397 --- /dev/null +++ b/_extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/lmu-osc-custom.scss @@ -0,0 +1,35 @@ +/*-- scss:defaults --*/ + +// Define custom brand SCSS variables +// These can reference Bootstrap theme variables (which are derived from brand.yml) +// but note that Bootstrap vars are only available in the /*-- scss:rules --*/ section. + +/*-- scss:rules --*/ + + +#quarto-content +h1, #quarto-content h1[class], #quarto-content .h1[class], +h2, #quarto-content h2[class], #quarto-content .h2[class], +h3, #quarto-content h3[class], #quarto-content .h3[class] { + margin-top: 1.33rem; + margin-bottom: 0.75rem; +} + +#quarto-content +h4, #quarto-content h4[class], #quarto-content .h4[class], +h5, #quarto-content h5[class], #quarto-content .h5[class], +h6, #quarto-content h6[class], #quarto-content .h6[class] { + margin-top: 0.66rem; + margin-bottom: 0.5rem; +} + +#quarto-content +h2, #quarto-content h2[class], #quarto-content .h2[class] { + border-bottom: $brand-lmu-violet 2px solid; +} + +#quarto-content +h3, #quarto-content h3[class], #quarto-content .h3[class] { + border-bottom: $brand-lmu-violet 1.5px solid; + padding-bottom: 0.25rem; +} \ No newline at end of file diff --git a/assets/LMU-OSC_favicon.jpg b/_extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/lmu-osc-favicon.jpg similarity index 100% rename from assets/LMU-OSC_favicon.jpg rename to _extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/lmu-osc-favicon.jpg diff --git a/_extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/lmu-osc-logo-dark.svg b/_extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/lmu-osc-logo-dark.svg new file mode 100644 index 0000000..338367e --- /dev/null +++ b/_extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/lmu-osc-logo-dark.svg @@ -0,0 +1,281 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/_extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/lmu-osc-logo-large.jpg b/_extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/lmu-osc-logo-large.jpg new file mode 100644 index 0000000000000000000000000000000000000000..25bfdccd3fe0f81365425df41d76c46d73fa4567 GIT binary patch literal 147604 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 C3p+*t literal 0 HcmV?d00001 diff --git a/_extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/lmu-osc-logo.svg b/_extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/lmu-osc-logo.svg new file mode 100644 index 0000000..e7b48ef --- /dev/null +++ b/_extensions/lmu-osc/tutorial-template/_extensions/lmu-osc/osc-brand/lmu-osc-logo.svg @@ -0,0 +1,281 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/_extensions/lmu-osc/tutorial-template/assets/bootstrap-grid.min.css b/_extensions/lmu-osc/tutorial-template/assets/bootstrap-grid.min.css new file mode 100644 index 0000000..82bb1bc --- /dev/null +++ b/_extensions/lmu-osc/tutorial-template/assets/bootstrap-grid.min.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap Grid v5.3.8 (https://getbootstrap.com/) + * Copyright 2011-2025 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}@media (min-width:576px){.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}}@media (min-width:768px){.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}}@media (min-width:992px){.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}}@media (min-width:1200px){.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}}@media (min-width:1400px){.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} +/*# sourceMappingURL=bootstrap-grid.min.css.map */ \ No newline at end of file diff --git a/_quarto.yml b/_quarto.yml index 39014f9..657ede8 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -1,76 +1,95 @@ +# Begin Project project: - type: website + type: tutorial-template render: - "*.qmd" - - "!Hallgreen2013/" - - "!Ihle2020/" + - "!hallgren-2013/" + - "!ihle-2020/" +# End Project +# Begin Website website: title: "Introduction to Simulations in R" page-footer: - center: "Copyright, 2024 Open Science Center at LMU Munich" border: false - search: - location: sidebar + center: Β© 2024 Malika Ihle. Published by LMU Open Science Center. Licensed under CC BY-SA 4.0. repo-url: https://github.com/lmu-osc/Introduction-Simulations-in-R - repo-actions: [edit, issue] - back-to-top-navigation: true - page-navigation: true - favicon: assets/LMU-OSC_favicon.jpg - margin-header: | - ![](/assets/LMU-OSC_logo.jpg){width="175"} + + navbar: + right: + - about.qmd + left: + - href: index.qmd + text: Home + tools: + - icon: github + menu: + - text: Source Code + href: https://github.com/lmu-osc/Introduction-Simulations-in-R + - text: Report a Bug + href: https://github.com/lmu-osc/Introduction-Simulations-in-R/issues + - icon: house-heart + url: https://www.osc.lmu.de/ sidebar: style: docked contents: - - text: "Home" + - text: "Overview" href: index.qmd - section: "Tutorial" contents: - - href: ./tutorial_pages/download-repo.qmd + - href: tutorial-pages/download-repo.qmd text: Download the material - - href: ./tutorial_pages/definition.qmd + - href: tutorial-pages/definition.qmd text: Definition - - href: ./tutorial_pages/purpose.qmd + - href: tutorial-pages/purpose.qmd text: Purpose - - href: ./tutorial_pages/basic-principles.qmd + - href: tutorial-pages/basic-principles.qmd text: Basic principles - - href: ./tutorial_pages/random-numbers-generators.qmd + - href: tutorial-pages/random-numbers-generators.qmd text: Random number generators - - href: ./tutorial_pages/repeat.qmd + - href: tutorial-pages/repeat.qmd text: Repeat - - href: ./tutorial_pages/seed.qmd + - href: tutorial-pages/seed.qmd text: Setting the seed - - href: ./tutorial_pages/sample-size-n.qmd + - href: tutorial-pages/sample-size-n.qmd text: Sample size `n` - - href: ./tutorial_pages/number-of-simulations-nrep.qmd + - href: tutorial-pages/number-of-simulations-nrep.qmd text: Number of repetitions `nrep` - - href: ./tutorial_pages/dry-rule.qmd + - href: tutorial-pages/dry-rule.qmd text: DRY rule - - href: ./tutorial_pages/check-alpha.qmd + - href: tutorial-pages/check-alpha.qmd text: Simulate to check alpha - - href: ./tutorial_pages/check-power.qmd + - href: tutorial-pages/check-power.qmd text: Simulate to check power - - href: ./tutorial_pages/simulate-for-preregistration.qmd + - href: tutorial-pages/simulate-for-preregistration.qmd text: Simulate to prepare a preregistration - - href: ./tutorial_pages/general-structure.qmd + - href: tutorial-pages/general-structure.qmd text: General structure - - href: ./tutorial_pages/limitations.qmd + - href: tutorial-pages/limitations.qmd text: Limitations - - href: ./tutorial_pages/real-life-example.qmd + - href: tutorial-pages/real-life-example.qmd text: Real-life example - - href: ./tutorial_pages/resources.qmd + - href: tutorial-pages/resources.qmd text: Additional resources +# End Website -format: - html: - theme: - - cosmo - - custom.scss - css: styles.css - toc: true - include-in-header: - - file: matomo-analytics.html +# Begin Includes +include-in-header: + - file: matomo-analytics.html +include-after-body: + - file: footer/footer.html +# End Includes +# Begin Format +format: + tutorial-template-html+tutorial: + css: + - footer/footer-style.css +# End Format +# Begin Editor +editor: source +# End Editor +bibliography: references.bib diff --git a/about.qmd b/about.qmd new file mode 100644 index 0000000..8630455 --- /dev/null +++ b/about.qmd @@ -0,0 +1,44 @@ +--- +title: "About" +date: 2021-11-22 +citation: + type: "webpage" + title: "Introduction to Simulations in R" + container-title: "LMU Open Science Center" + url: https://lmu-osc.github.io/Introduction-Simulations-in-R + doi: "DOI_HERE_AFTER_GENERATED" +author: + - name: Malika Ihle + roles: [conceptualization, funding acquisition, investigation, methodology, project administration, software, resources, supervision, validation, visualization, writing - original draft, writing - editing & review] + degrees: + - B.Sc. + - M.Sc. + - PhD + affiliation: + - id: osc + name: LMU Open Science Center + ror: https://ror.org/05591te55 + isni: 000000041936973X + - id: other1 + name: LMU Munich + orcid: 0000-0002-3242-5981 +google-scholar: true +--- + +## Contributors + +This site was authored by Malika Ihle, based on materials from Joel Pick, Hadley Wickham, and Kevin Hallgren, with contributions from James Smith. + +## Licenses + +The overall project is available under the [**CC BY-SA 4.0**](https://creativecommons.org/licenses/by-sa/4.0/) license found at [LICENSE](LICENSE.md); all code without any narrative text is also (at your option) available under the [**CC0 1.0 Universal**](https://creativecommons.org/publicdomain/zero/1.0/) license found at [LICENSE-CODE](LICENSE-CODE.md). + +Why two licenses? The CC BY-SA 4.0 license is for the content of the website, while the CC0 1.0 Universal license is for the code and configuration files. This is a common practice for websites that include code snippets and other content that may be reused in other projects, particularly because the CC BY-SA 4.0 license is not intended to be used with software. + +## Notes + +This tutorial was primarily written in 2021 using R and RStudio. + +## Tutorial Template Quarto Extension + +This tutorial was written using the [`lmu-osc/tutorial-template`](https://github.com/lmu-osc/tutorial-template) Quarto extension [@callahan2026]. diff --git a/assets/lmu-osc-favicon.jpg b/assets/lmu-osc-favicon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a06a8391fc5af7bf0f2ef08a9c5c9e2ad9e50763 GIT binary patch literal 26031 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/custom.scss b/custom.scss deleted file mode 100644 index 442fd2b..0000000 --- a/custom.scss +++ /dev/null @@ -1,5 +0,0 @@ -/*-- scss:defaults --*/ -// Base document colors -$navbar-bg: #009933; -$link-color: #006426; -$sidebar-hl: #006426; diff --git a/exercise_script_with_solutions.R b/exercise-script-with-solutions.R similarity index 100% rename from exercise_script_with_solutions.R rename to exercise-script-with-solutions.R diff --git a/exercise_script_without_solutions.R b/exercise-script-without-solutions.R similarity index 100% rename from exercise_script_without_solutions.R rename to exercise-script-without-solutions.R diff --git a/footer/accessibilty.qmd b/footer/accessibilty.qmd new file mode 100644 index 0000000..9ed86c5 --- /dev/null +++ b/footer/accessibilty.qmd @@ -0,0 +1,122 @@ +--- +title: "Accessibility" +page-layout: full +--- + + + +:::{.accessibility-container} + +The Ludwig-Maximilians-UniversitΓ€t MΓΌnchen strives to make its offers accessible in accordance with Β§ 9 Act on Digitalisation in the Free State of Bavaria (Bayerisches Digitalgesetz – BayDig). + +This Accessibility Statement applies to applications available at [https://www.lmu.de/de/index.html](https://www.lmu.de/de/index.html), [https://www.lmu.de/de/index.html](https://www.lmu.de/de/index.html) and all subdomain pages. + +#### Status of Compliance + +Partially compliant: This application partially corresponds to Β§ 1 BayEGovV. + +##### Legal Name +Ludwig-Maximilians-UniversitΓ€t MΓΌnchen + +##### Website(s): +[https://www.lmu.de/de/index.html](https://www.lmu.de/de/index.html), [https://www.lmu.de/de/index.html](https://www.lmu.de/de/index.html) and all subdomain pages. + +#### Known Accessibility Issues +List and explanation of the problems encountered when implementing the accessibility of these websites + +##### Content Not Accessible to People With Disabilities +- Apart from the main pages, alternative text-based content for images and tables may be missing. There may also be errors in content hierarchy and links may be unintelligible. +- PDF documents created before 09/23/2018 have not yet been converted to a fully accessible format. +- Some documents have been provided by institutions of the LMU, which are not yet all available in a fully accessible version. +- Many of our videos also lack subtitles and audio descriptions. +We will be adding written directions for the maps used to give directions. +- Quotes are often not indicated as such using the appropriate HTML tag. +- Responsive design (for viewing on mobile devices) is only partially available for the websites, screen orientation is otherwise limited to landscape format. For non-responsive pages, texts do not wrap correctly in a small viewport. +- Fields for inputting user data are not always sufficiently designated as such. +- Words or passages in other languages are not always indicated as such. +- Because of the Google Search plugin, the criteria for "valid HTML text" is not being fulfilled. + +#### Explanation + +All LMU websites are currently undergoing a complete relaunch. It therefore no longer makes sense to revise the existing websites.\ +The deficiencies of the old website have been listed above. + + +**Creation Date**: 09/22/2019\ +**Methodology**: Self-assessment + +#### Feedback Mechanism +As a user, you can inform us of any shortcomings in complying with accessibility requirements or request information in an accessible format that is not required to be displayed in an accessible format. + +##### Contact Information +Unit VI.5 Internet Services\ +Martiusstraße 4\ +80802 Munich\ +Mail: [it.internet@verwaltung.uni-muenchen.de](mailto:it.internet@verwaltung.uni-muenchen.de)\ +Phone: +49 (0) 89 / 2180-9832 + +#### Enforcement Procedure +If a request for contact remains unanswered in whole or in part within six weeks, the Landesamt fΓΌr Digitalisierung, Breitband und Vermessung (Agency for Digitisation, High-Speed Internet and Surveying) will, at the request of the user, examine whether measures are necessary with regard to the monitoring of the obligated party. + +##### Contact information of the agency responsible for the enforcement procedure +Landesamt fΓΌr Digitalisierung, Breitband und Vermessung\above +Alexandrastraße 4\ +80538 Munich\ +Phone: +49 89 2129-1111\ +Fax: +49 89 2129-1113\ +Email:[service@geodaten.bayern.de](mailto:service@geodaten.bayern.de)\ +[https://www.ldbv.bayern.de/service/kontakt/](https://www.ldbv.bayern.de/service/kontakt/) + +##### Other Help Services +Students with disabilities are supported by the [Beratungsstelle fΓΌr Studierende mit Behinderung und chronischer Erkrankung](https://www.lmu.de/de/workspace-fuer-studierende/support-angebote/studieren-mit-beeintraechtigung/) (Counselling Center for Students with Disabilities and Chronic Illnesses). + +The [Schwerbehindertenvertretung (Representative for Disabled Persons)](https://login.lmu.de/idp/profile/SAML2/Redirect/SSO?execution=e3s1) (access protected on the service portal) can support employees. + +::: \ No newline at end of file diff --git a/footer/footer-style.css b/footer/footer-style.css new file mode 100644 index 0000000..12cb5e8 --- /dev/null +++ b/footer/footer-style.css @@ -0,0 +1,21 @@ + +.osc-footer-card { + --osc-primary-green: #00883A; + background-color: var(--osc-primary-green); +} + +.osc-footer-socials a:hover { + transform: scale(1.05); + filter: brightness(1.2); + transition: all 0.2s ease; +} + +.osc-footer-card a:focus-visible { + outline: 2px solid #FFD700; + outline-offset: 2px; +} + +/* no external window thing for the icons */ +.osc-footer-socials a::after { + display: none !important; +} \ No newline at end of file diff --git a/footer/footer.html b/footer/footer.html new file mode 100644 index 0000000..f2e2998 --- /dev/null +++ b/footer/footer.html @@ -0,0 +1,91 @@ + diff --git a/footer/imprint.qmd b/footer/imprint.qmd new file mode 100644 index 0000000..ddff8e9 --- /dev/null +++ b/footer/imprint.qmd @@ -0,0 +1,112 @@ +--- +title: "Imprint and Disclaimer" +format: + html: + toc: false + page-layout: full +--- + + + +:::{.imprint-container} + +Information pursuant to Β§ 5 Telemedia Law and Β§ 18 Abs. 2 Medienstaatsvertrag (MStV) + +Ludwig-Maximilians-UniversitΓ€t MΓΌnchen is a state institution of the Free State of Bavaria and a legal entity under public law (Art. 4 (1) sentence 1 BayHIG). It is legally represented by its President, Professor Dr. med. Dr. h.c. Matthias H. TschΓΆp. + +#### Address +Ludwig-Maximilians-UniversitΓ€t MΓΌnchen\ +Geschwister-Scholl-Platz 1\ +80539 Munich\ +Phone: +49 (0) 89 / 2180-0 + +Web presence: [https://www.lmu.de/de/index.html](https://www.lmu.de/de/index.html) \ +Contact: [poststelle@verwaltung.uni-muenchen.de](mailto:poststelle@verwaltung.uni-muenchen.de)\ +[Addition contact information](https://www.lmu.de/en/index.html) + +#### Notices for encrypted communication + +In the event that you wish to send us an encrypted message, please use the following public X509-certificate for encryption of your message. + +#### Authorized Oversight Agency + +Bavarian State Ministry for Science and Art\ +Salvatorstraße 2\ +80333 Munich + +Internet: [https://www.stmwk.bayern.de](https://www.stmwk.bayern.de) + +#### Sales Tax ID Number of the LMU + +Sales tax ID number pursuant to Β§ 27 a Sales Tax Law:\ +DE 811205325 + +#### Responsible for content according to Β§ 18 para. 2 MStV + +Ludwig-Maximilians-UniversitΓ€t MΓΌnchen\ +Felix SchΓΆnbrodt\ +Email: [felix.schoenbrodt@psy.lmu.de](mailto:felix.schoenbrodt@psy.lmu.de) + +#### Responsible party for technical implementation + +The webmaster of the facility is responsible for technical implementation. Technical implementation is handled by the Content Management System Fiona by [Infopark AG](https://www.lmu.de/en/index.html). + +#### Statement of Release + +The information herein is correct to the best of our knowledge, however, error cannot be avoided with absolute certainty. Solely the specifications in the pertinent legal bases (laws, orders, statutes) are legally binding. + +We cannot assume any liability for the particular currency, accuracy, completeness and availability of the provided information. + +We are not liable for damages caused by the use of this internet offer. This exclusion of liability shall not apply if the regulations of Β§ 839 BGB (liability for violation of official duty) are involved. We are not liable for any damages caused by call-up or downloading of data by damaged software or by the installation or use of software. + +This exclusion of liability does not apply to information that falls within the scope of the Order (EU) 2016/679 of the European Parliament and of the Council dated 27 April 2016 (General Data Protection Regulation). The accuracy and currency of this information is guaranteed. + +#### Disclaimer +The information offered by the LMU contains cross-references (β€œlinks”) to other internet offers by the LMU or by external, third-parties. Basically the internet pages will open automatically in a new window. + +Through this cross-reference, the LMU handles access for use of this content (Β§ 5 Telemedia Law). We are not responsible for this β€œforeign” content since we do not initiate the transmission of the information, have not selected the addressee of the transmitted information and also have not selected or changed the transmitted information. + +An automatic, short-term interim saving of this β€œforeign information” by the LMU does not occur due to the selected call-up and linking method, so that the LMU does not thereby assume any responsibility for this foreign content. + +However, upon initial linking with these internet offers, the LMU has checked the foreign content to determine whether it may trigger a potential responsibility under civil or penal law. But we do not receive any automatic information about changes to the foreign internet offers and thus cannot constantly monitor their content for any changes. Therefore we also cannot assume any responsibility for them. Solely the particular merchant of the foreign internet offer is liable for illegal, erroneous or incomplete content, and in particular for damages which arise from the use or non-use of information by third parties. However, we endeavor to check the included links regularly with regard to these named criteria. + +::: \ No newline at end of file diff --git a/footer/privacy.qmd b/footer/privacy.qmd new file mode 100644 index 0000000..3f31fd0 --- /dev/null +++ b/footer/privacy.qmd @@ -0,0 +1,179 @@ +--- +title: "Privacy Policy" +format: + html: + toc: false + page-layout: full +--- + + + +For data collected by the LMU Open Science Center, [LMU's general privacy policy](https://www.lmu.de/en/footer/privacy-policy/index.html){target="_blank"} applies. + +Additionally, this site is hosted on the webhosting service GitHub Pages ([https://docs.github.com/en/pages](https://docs.github.com/en/pages)) with it's own privacy policy available at [https://docs.github.com/de/site-policy/privacy-policies/github-general-privacy-statement](https://docs.github.com/de/site-policy/privacy-policies/github-general-privacy-statement). + + + + +#### Matomo Tracking Opt-Out + +This opt-out is only for the Matomo web analytics tool in use directly the LMU Open Science Center website. It does not affect any other tracking or analytics tools that may be in use on this site, including those used by GitHub Pages. + +```{=html} +
    + +``` \ No newline at end of file diff --git a/Hallgren2013/bootstrapping.r b/hallgren-2013/bootstrapping.r similarity index 100% rename from Hallgren2013/bootstrapping.r rename to hallgren-2013/bootstrapping.r diff --git a/Hallgren2013/mediation_raw_data.csv b/hallgren-2013/mediation-raw-data.csv similarity index 100% rename from Hallgren2013/mediation_raw_data.csv rename to hallgren-2013/mediation-raw-data.csv diff --git a/Hallgren2013/novel_question_output.csv b/hallgren-2013/novel-question-output.csv similarity index 100% rename from Hallgren2013/novel_question_output.csv rename to hallgren-2013/novel-question-output.csv diff --git a/Hallgren2013/novel question.R b/hallgren-2013/novel-question.R similarity index 100% rename from Hallgren2013/novel question.R rename to hallgren-2013/novel-question.R diff --git a/Hallgren2013/power analysis.R b/hallgren-2013/power-analysis.R similarity index 100% rename from Hallgren2013/power analysis.R rename to hallgren-2013/power-analysis.R diff --git a/Hallgren2013/ReadingSheet.md b/hallgren-2013/reading-sheet.md similarity index 96% rename from Hallgren2013/ReadingSheet.md rename to hallgren-2013/reading-sheet.md index 8f4f770..5d166ba 100644 --- a/Hallgren2013/ReadingSheet.md +++ b/hallgren-2013/reading-sheet.md @@ -1,3 +1,7 @@ +--- +aliases: Hallgren2013/ReadingSheet.md +--- + # Conducting Simulation Studies in the R Programming Environment - Reading Sheet *** diff --git a/Ihle2020/glm_Freq_vs_YN.R b/ihle-2020/glm-freq-vs-yn.R similarity index 100% rename from Ihle2020/glm_Freq_vs_YN.R rename to ihle-2020/glm-freq-vs-yn.R diff --git a/index.qmd b/index.qmd index 6bf59ff..423f705 100644 --- a/index.qmd +++ b/index.qmd @@ -16,28 +16,55 @@ It is licensed under a [Creative Commons Attribution-ShareAlike 4.0 Internationa ## Self-paced workshop ### How it works -The self-paced tutorial (pages linked below) will alternate presentation of concepts and simple exercises for you to try to apply them in R. Each time you see written **YOUR TURN**, switch to your local copy of the exercise script (you can choose between a file with or without the solutions depending on e.g. your level of familiarity with R), review the examples if needed, complete the exercise, and check out the proposed answer (which often contains additional tips). Come back to the online tutorial and after finishing one page, you can navigate to the next page linked at the bottom to continue. The exercise script contains code for all the exercises and code that generates the plots that appear in the online tutorial, all in order of appearance in the tutorial. +The self-paced tutorial (pages linked below) will alternate presentation of concepts and simple exercises for you to try to apply them in R. Each time you see written **YOUR TURN**, switch to your local copy of the exercise script (you can choose between a file with or without the solutions depending on e.g. your level of familiarity with R), review the examples if needed, complete the exercise, and check out the proposed answer (which often contains additional tips). Come back to the online tutorial and after finishing one page, you can navigate to the next page linked at the bottom to continue. The exercise script contains code for all the exercises and code that generates the plots that appear in the online tutorial, all in order of appearance in the tutorial. It is necessary that you work through the sections of the tutorial in order. Please read the blurbs of each section below to get an overview of this workshop. Then click on the first page 'Download the material' and follow along by navigating to the next page linked at the bottom of each page! You can get back to this overview at any time by clicking on the title 'Introduction-Simulations-in-R' at the top of each page. ### Tutorial -* [Download the material](./tutorial_pages/download-repo.qmd) – Get this tutorial onto your machine. -* [Definition](./tutorial_pages/definition.qmd) – What are simulations? -* [Purpose](./tutorial_pages/purpose.qmd) – What can we use simulations for? -* [Basic principles](./tutorial_pages/basic-principles.qmd) – What do we need to create a simulation? -* [Random number generators](./tutorial_pages/random-numbers-generators.qmd) – How to generate random numbers in R? -* [Repeat](./tutorial_pages/repeat.qmd) – How to repeat the generation of random numbers multiple times? -* [Setting the seed](./tutorial_pages/seed.qmd) – How can you generate the same random numbers? -* [Sample size `n`](./tutorial_pages/sample-size-n.qmd) – How many values should you generate within a simulation? -* [Number of repetitions `nrep`](./tutorial_pages/number-of-simulations-nrep.qmd) – How many repeats of a simulation should you run? -* [DRY rule](./tutorial_pages/dry-rule.qmd) – How to write your own functions? -* [Simulate to check alpha](./tutorial_pages/check-alpha.qmd) – Write your first simulation and check the rate of false-positive findings. -* [Simulate to check power](./tutorial_pages/check-power.qmd) – Simulate data to perform a power analysis. -* [Simulate to prepare a preregistration](./tutorial_pages/simulate-for-preregistration.qmd) – Simulate data to test statistical analyses before preregistering them. -* [General structure](./tutorial_pages/general-structure.qmd) – What is the general structure of a simulation? -* [Limitations](./tutorial_pages/limitations.qmd) – What are the limitations of simulations? -* [Real-life example](./tutorial_pages/real-life-example.qmd) – What are real-life examples of simulations? -* [Additional resources](./tutorial_pages/resources.qmd) – What resources can help you write your own simulation? +* [Download the material](./tutorial-pages/download-repo.qmd) – Get this tutorial onto your machine. +* [Definition](./tutorial-pages/definition.qmd) – What are simulations? +* [Purpose](./tutorial-pages/purpose.qmd) – What can we use simulations for? +* [Basic principles](./tutorial-pages/basic-principles.qmd) – What do we need to create a simulation? +* [Random number generators](./tutorial-pages/random-numbers-generators.qmd) – How to generate random numbers in R? +* [Repeat](./tutorial-pages/repeat.qmd) – How to repeat the generation of random numbers multiple times? +* [Setting the seed](./tutorial-pages/seed.qmd) – How can you generate the same random numbers? +* [Sample size `n`](./tutorial-pages/sample-size-n.qmd) – How many values should you generate within a simulation? +* [Number of repetitions `nrep`](./tutorial-pages/number-of-simulations-nrep.qmd) – How many repeats of a simulation should you run? +* [DRY rule](./tutorial-pages/dry-rule.qmd) – How to write your own functions? +* [Simulate to check alpha](./tutorial-pages/check-alpha.qmd) – Write your first simulation and check the rate of false-positive findings. +* [Simulate to check power](./tutorial-pages/check-power.qmd) – Simulate data to perform a power analysis. +* [Simulate to prepare a preregistration](./tutorial-pages/simulate-for-preregistration.qmd) – Simulate data to test statistical analyses before preregistering them. +* [General structure](./tutorial-pages/general-structure.qmd) – What is the general structure of a simulation? +* [Limitations](./tutorial-pages/limitations.qmd) – What are the limitations of simulations? +* [Real-life example](./tutorial-pages/real-life-example.qmd) – What are real-life examples of simulations? +* [Additional resources](./tutorial-pages/resources.qmd) – What resources can help you write your own simulation? + + + +:::: {.columns} + +::: {.column width="47.5%"} + +::: {.callout-tip title="Support the LMU Open Science Center!"} + +**Like this tutorial? Be sure to give [the repository](https://github.com/lmu-osc/Introduction-Simulations-in-R) a star and [follow us on GitHub](https://github.com/lmu-osc)!** +::: + +::: + +::: {.column width="5%"} +::: + +::: {.column width="47.5%"} + + +::: {.callout-tip title="Questions about this tutorial?"} +**If you have questions for the author of this tutorial, please take a look at the [About](about.qmd) page.** +::: + +::: + +:::: diff --git a/references.bib b/references.bib new file mode 100644 index 0000000..90464e4 --- /dev/null +++ b/references.bib @@ -0,0 +1,10 @@ + +@book{callahan2026, + title = {LMU Open Science Center Tutorial Template: A Quarto Extension}, + author = {Callahan, Patrick}, + year = {2026}, + month = {07}, + date = {2026-07}, + doi = {10.5281/zenodo.21263721}, + url = {https://github.com/lmu-osc/tutorial-template} +} diff --git a/styles.css b/styles.css deleted file mode 100644 index 42bf444..0000000 --- a/styles.css +++ /dev/null @@ -1,5 +0,0 @@ -/* css styles */ - -.nav-page .nav-page-text { - font-size: 15pt; -} diff --git a/tutorial_pages/basic-principles.qmd b/tutorial-pages/basic-principles.qmd similarity index 86% rename from tutorial_pages/basic-principles.qmd rename to tutorial-pages/basic-principles.qmd index 6fe48b3..27aa3b7 100644 --- a/tutorial_pages/basic-principles.qmd +++ b/tutorial-pages/basic-principles.qmd @@ -1,3 +1,7 @@ +--- +aliases: [tutorial_pages/basic-principles.qmd] +--- + # Basic principles Basically, a simulation consists of: diff --git a/tutorial_pages/check-alpha.qmd b/tutorial-pages/check-alpha.qmd similarity index 98% rename from tutorial_pages/check-alpha.qmd rename to tutorial-pages/check-alpha.qmd index 40ad5d0..3616091 100644 --- a/tutorial_pages/check-alpha.qmd +++ b/tutorial-pages/check-alpha.qmd @@ -1,3 +1,7 @@ +--- +aliases: [tutorial_pages/check-alpha.qmd] +--- + # Using simulations to check alpha In most quantitative sciences, we accept a type I error rate of 0.05, which is often called the `alpha` or significance level. This value tells us the probability of rejecting the null hypothesis (i.e. of finding an effect) given that the null hypothesis is true. diff --git a/tutorial_pages/check-power.qmd b/tutorial-pages/check-power.qmd similarity index 98% rename from tutorial_pages/check-power.qmd rename to tutorial-pages/check-power.qmd index 376d6f2..5741891 100644 --- a/tutorial_pages/check-power.qmd +++ b/tutorial-pages/check-power.qmd @@ -1,3 +1,7 @@ +--- +aliases: [tutorial_pages/check-power.qmd] +--- + # Checking power through simulations The power of a statistical test tells us the probability that the test correctly rejects the null hypothesis. In other words, if we only examine true effects, the power is the proportion of tests that will (correctly) reject the null hypothesis. Often, the power is set to 80%, though, as with `alpha = 0.05`, this is an arbitrary choice. diff --git a/tutorial_pages/definition.qmd b/tutorial-pages/definition.qmd similarity index 92% rename from tutorial_pages/definition.qmd rename to tutorial-pages/definition.qmd index 0571263..300eb11 100644 --- a/tutorial_pages/definition.qmd +++ b/tutorial-pages/definition.qmd @@ -1,3 +1,7 @@ +--- +aliases: [tutorial_pages/definition.qmd] +--- + # Definition **"A computer simulation (or 'sim') is an attempt to model a real-life or hypothetical situation on a computer so that it can be studied to see how the system works. By changing variables in the simulation, predictions may be made about the behavior of the system. It is a tool to virtually investigate the behavior of the system under study."** diff --git a/tutorial_pages/download-repo.qmd b/tutorial-pages/download-repo.qmd similarity index 96% rename from tutorial_pages/download-repo.qmd rename to tutorial-pages/download-repo.qmd index 14af993..2e04c17 100644 --- a/tutorial_pages/download-repo.qmd +++ b/tutorial-pages/download-repo.qmd @@ -1,3 +1,7 @@ +--- +aliases: [tutorial_pages/download-repo.qmd] +--- + # Make this repository a local RStudio project You have two options to fetch this material: diff --git a/tutorial_pages/dry-rule.qmd b/tutorial-pages/dry-rule.qmd similarity index 97% rename from tutorial_pages/dry-rule.qmd rename to tutorial-pages/dry-rule.qmd index 242b1ea..a29c9dc 100644 --- a/tutorial_pages/dry-rule.qmd +++ b/tutorial-pages/dry-rule.qmd @@ -1,3 +1,7 @@ +--- +aliases: [tutorial_pages/dry-rule.qmd] +--- + # **D**o not **R**epeat **Y**ourself – DRY rule ## *vs.* **W**rite **E**verything **T**wice – WET rule diff --git a/tutorial_pages/general-structure.qmd b/tutorial-pages/general-structure.qmd similarity index 95% rename from tutorial_pages/general-structure.qmd rename to tutorial-pages/general-structure.qmd index 81f9c45..61414cb 100644 --- a/tutorial_pages/general-structure.qmd +++ b/tutorial-pages/general-structure.qmd @@ -1,3 +1,7 @@ +--- +aliases: [tutorial_pages/general-structure.qmd] +--- + # General structure of a simulation 1. **Define** what type of data and variables need to be simulated, i.e. their **distribution**, their class (e.g. factor vs. numerical values), **sample sizes** (within a dataset and number of repetitions), what will need to vary (e.g. the strength of relationship), etc. diff --git a/tutorial_pages/limitations.qmd b/tutorial-pages/limitations.qmd similarity index 92% rename from tutorial_pages/limitations.qmd rename to tutorial-pages/limitations.qmd index 18c3c36..684b801 100644 --- a/tutorial_pages/limitations.qmd +++ b/tutorial-pages/limitations.qmd @@ -1,3 +1,7 @@ +--- +aliases: [tutorial_pages/limitations.qmd] +--- + # Limitations to simulations 1. **Assumptions** made regarding variables might not be true, e.g. the distribution of supposedly normally distributed data may not be quite normal. (Have a back-up analysis plan!) diff --git a/tutorial_pages/number-of-simulations-nrep.qmd b/tutorial-pages/number-of-simulations-nrep.qmd similarity index 94% rename from tutorial_pages/number-of-simulations-nrep.qmd rename to tutorial-pages/number-of-simulations-nrep.qmd index 62c633b..86d6eab 100644 --- a/tutorial_pages/number-of-simulations-nrep.qmd +++ b/tutorial-pages/number-of-simulations-nrep.qmd @@ -1,3 +1,7 @@ +--- +aliases: [tutorial_pages/number-of-simulations-nrep.qmd] +--- + # Number of repetitions `nrep` Sampling theory applies to the number of repetitions `nrep` (also referred to as the number of *replications*) just as much as it does to the sample size `n` within a simulation. diff --git a/tutorial_pages/purpose.qmd b/tutorial-pages/purpose.qmd similarity index 97% rename from tutorial_pages/purpose.qmd rename to tutorial-pages/purpose.qmd index b971b27..bac5b86 100644 --- a/tutorial_pages/purpose.qmd +++ b/tutorial-pages/purpose.qmd @@ -1,3 +1,7 @@ +--- +aliases: [tutorial_pages/purpose.qmd] +--- + # Purpose You can use computer simulations to: diff --git a/tutorial_pages/random-numbers-generators.qmd b/tutorial-pages/random-numbers-generators.qmd similarity index 90% rename from tutorial_pages/random-numbers-generators.qmd rename to tutorial-pages/random-numbers-generators.qmd index c56af89..067decc 100644 --- a/tutorial_pages/random-numbers-generators.qmd +++ b/tutorial-pages/random-numbers-generators.qmd @@ -1,3 +1,7 @@ +--- +aliases: [tutorial_pages/random-numbers-generators.qmd] +--- + # Random number generators R contains several functions to generate random numbers. @@ -9,7 +13,7 @@ Sampling without replacement means that when you repeatedly draw e.g. one item a *** **YOUR TURN:** -Sample 100 values between 3 and 103 with replacement. For this, open the R script(s) with the exercises (`./exercise_script_with_solutions.R` and/or `./exercise_script_without_solutions.R`) from the root of your local repository, review the examples if needed, complete the exercise, and check out the proposed answer. +Sample 100 values between 3 and 103 with replacement. For this, open the R script(s) with the exercises (`./exercise-script-with-solutions.R` and/or `./exercise-script-without-solutions.R`) from the root of your local repository, review the examples if needed, complete the exercise, and check out the proposed answer. *** diff --git a/tutorial_pages/real-life-example.qmd b/tutorial-pages/real-life-example.qmd similarity index 93% rename from tutorial_pages/real-life-example.qmd rename to tutorial-pages/real-life-example.qmd index 4a75c13..0db11e1 100644 --- a/tutorial_pages/real-life-example.qmd +++ b/tutorial-pages/real-life-example.qmd @@ -1,3 +1,7 @@ +--- +aliases: [tutorial_pages/real-life-example.qmd] +--- + # Real-life example This is a walk through one relatively simple simulation written to check whether the following two models would provide the same results: @@ -7,7 +11,7 @@ This is a walk through one relatively simple simulation written to check whether I created this code while preparing my preregistration for a simple behavioural ecology experiment about methods for independently manipulating palatability and colour in small insect prey ([article](https://doi.org/10.1371/journal.pone.0231205), [OSF preregistration](https://osf.io/f8uk9?view_only=3943e7bb9c5f4effbf119ca5b062fe80)). -The R script screenshot below, `glm_Freq_vs_YN.R`, can be found in the folder [Ihle2020](https://github.com/lmu-osc/Introduction-Simulations-in-R/tree/main/Ihle2020). +The R script screenshot below, `glm-freq-vs-yn.R`, can be found in the folder [ihle-2020](https://github.com/lmu-osc/Introduction-Simulations-in-R/tree/main/ihle-2020). This walkthrough will use the steps as defined on the page '[General structure](./general-structure.qmd)'. diff --git a/tutorial_pages/repeat.qmd b/tutorial-pages/repeat.qmd similarity index 94% rename from tutorial_pages/repeat.qmd rename to tutorial-pages/repeat.qmd index 9ee2d3f..16272bd 100644 --- a/tutorial_pages/repeat.qmd +++ b/tutorial-pages/repeat.qmd @@ -1,3 +1,7 @@ +--- +aliases: [tutorial_pages/repeat.qmd] +--- + # Repetition The function `replicate(nrep, expression)` repeats the `expression` provided `nrep` times. diff --git a/tutorial_pages/resources.qmd b/tutorial-pages/resources.qmd similarity index 90% rename from tutorial_pages/resources.qmd rename to tutorial-pages/resources.qmd index 01eb0bc..2ea861d 100644 --- a/tutorial_pages/resources.qmd +++ b/tutorial-pages/resources.qmd @@ -1,16 +1,20 @@ +--- +aliases: [tutorial_pages/resources.qmd] +--- + # Resources ## Follow-up self-paced tutorial on simulation of data analyses for advanced power analyses * https://lmu-osc.github.io/Simulations-for-Advanced-Power-Analyses/ ## Hallgren 2013 -The article suggested for getting familiarised with the topic prior to the session, i.e. [Hallgren, A. K. (2013). Conducting simulation studies in the R programming environment. *Tutorials in Quantitative Methods for Psychology*, *9*(2), 43–60](https://doi.org/10.20982/tqmp.09.2.p043), contains accompanying R scripts and CSV data files which you can peruse in the [Hallgren2013](https://github.com/lmu-osc/Introduction-Simulations-in-R/tree/main/Hallgren2013) folder of this repository. It contains: +The article suggested for getting familiarised with the topic prior to the session, i.e. [Hallgren, A. K. (2013). Conducting simulation studies in the R programming environment. *Tutorials in Quantitative Methods for Psychology*, *9*(2), 43–60](https://doi.org/10.20982/tqmp.09.2.p043), contains accompanying R scripts and CSV data files which you can peruse in the [hallgren-2013](https://github.com/lmu-osc/Introduction-Simulations-in-R/tree/main/hallgren-2013) folder of this repository. It contains: -* Annotated R syntax file for Example 1: `novel question.R`. -* Annotated R syntax file for Example 2: `power analysis.R`. +* Annotated R syntax file for Example 1: `novel-question.R`. +* Annotated R syntax file for Example 2: `power-analysis.R`. * Annotated R syntax file for Example 3: `bootstrapping.R`. -* CSV dataset generated in Example 1, which is also used later in Example 2: `novel_question_output.csv`. -* CSV dataset used in Example 3: `mediation_raw_data.csv`. +* CSV dataset generated in Example 1, which is also used later in Example 2: `novel-question-output.csv`. +* CSV dataset used in Example 3: `mediation-raw-data.csv`. ## Other articles diff --git a/tutorial_pages/sample-size-n.qmd b/tutorial-pages/sample-size-n.qmd similarity index 97% rename from tutorial_pages/sample-size-n.qmd rename to tutorial-pages/sample-size-n.qmd index 575a982..e542c95 100644 --- a/tutorial_pages/sample-size-n.qmd +++ b/tutorial-pages/sample-size-n.qmd @@ -1,3 +1,7 @@ +--- +aliases: [tutorial_pages/sample-size-n.qmd] +--- + # Sample size `n` How many values should you generate within a simulation? Let's explore. diff --git a/tutorial_pages/seed.qmd b/tutorial-pages/seed.qmd similarity index 95% rename from tutorial_pages/seed.qmd rename to tutorial-pages/seed.qmd index 302ed36..5fb0a9a 100644 --- a/tutorial_pages/seed.qmd +++ b/tutorial-pages/seed.qmd @@ -1,3 +1,7 @@ +--- +aliases: [tutorial_pages/seed.qmd] +--- + # Setting the seed * `set.seed()` diff --git a/tutorial_pages/simulate-for-preregistration.qmd b/tutorial-pages/simulate-for-preregistration.qmd similarity index 97% rename from tutorial_pages/simulate-for-preregistration.qmd rename to tutorial-pages/simulate-for-preregistration.qmd index 945d67b..517b3a3 100644 --- a/tutorial_pages/simulate-for-preregistration.qmd +++ b/tutorial-pages/simulate-for-preregistration.qmd @@ -1,3 +1,7 @@ +--- +aliases: [tutorial_pages/simulate-for-preregistration.qmd] +--- + # Simulating data to check or preregister code From ce5673114f6253b46f98f9c804564741e9a5e3db Mon Sep 17 00:00:00 2001 From: Patrick Callahan Date: Thu, 16 Jul 2026 12:57:29 +0200 Subject: [PATCH 2/8] Ignore filenames in assets --- .filenameignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.filenameignore b/.filenameignore index eccf444..5fc81a5 100644 --- a/.filenameignore +++ b/.filenameignore @@ -5,7 +5,7 @@ _site/** .quarto/** .github/** _extensions/ -assets/bootstrap-grid.min.css +assets/ # Common documentation files to ignore LICENSE-CODE.md From b043f46bd672d576e7d0ece8299c7c2e5a9ddbc4 Mon Sep 17 00:00:00 2001 From: Patrick Callahan Date: Thu, 16 Jul 2026 12:58:30 +0200 Subject: [PATCH 3/8] Ignore folders --- .filenameignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.filenameignore b/.filenameignore index 5fc81a5..d590e99 100644 --- a/.filenameignore +++ b/.filenameignore @@ -6,6 +6,8 @@ _site/** .github/** _extensions/ assets/ +hallgren-2013 +ihle-2020 # Common documentation files to ignore LICENSE-CODE.md From 5e8b6df23913756dc2dc563e95fe5a873b4a3bee Mon Sep 17 00:00:00 2001 From: Patrick Callahan Date: Thu, 16 Jul 2026 13:02:03 +0200 Subject: [PATCH 4/8] Update styler --- .github/workflows/style.yaml | 74 ++++++------------------------------ 1 file changed, 12 insertions(+), 62 deletions(-) diff --git a/.github/workflows/style.yaml b/.github/workflows/style.yaml index a249278..c8ef65f 100644 --- a/.github/workflows/style.yaml +++ b/.github/workflows/style.yaml @@ -1,77 +1,27 @@ -# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples -# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help on: workflow_dispatch: - # push: - # paths: ["**.[rR]", "**.[qrR]md", "**.[rR]markdown", "**.[rR]nw", "**.[rR]profile"] -name: Tidyverse Style Formatting +name: Air Formatting -permissions: read-all +permissions: + contents: write jobs: - style: + format: runs-on: ubuntu-latest - permissions: - contents: write - env: - GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} steps: - name: Checkout repo - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: fetch-depth: 0 - - name: Setup R - uses: r-lib/actions/setup-r@v2 - with: - use-public-rspm: true - - - name: Install styler and roxygen2 - uses: r-lib/actions/setup-r-dependencies@v2 - with: - packages: styler, roxygen2 - - - name: Enable styler cache - run: styler::cache_activate() - shell: Rscript {0} + - name: Install Air + uses: posit-dev/setup-air@v1 - - name: Determine cache location - id: styler-location - run: | - cat( - "location=", - styler::cache_info(format = "tabular")$location, - "\n", - file = Sys.getenv("GITHUB_OUTPUT"), - append = TRUE, - sep = "" - ) - shell: Rscript {0} - - - name: Cache styler - uses: actions/cache@v4 - with: - path: ${{ steps.styler-location.outputs.location }} - key: ${{ runner.os }}-styler-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-styler- - ${{ runner.os }}- - - - name: Style - run: styler::style_dir() - shell: Rscript {0} + - name: Format + run: air format . - name: Commit and push changes - run: | - if FILES_TO_COMMIT=($(git diff-index --name-only ${{ github.sha }} \ - | egrep --ignore-case '\.(R|[qR]md|Rmarkdown|Rnw|Rprofile)$')) - then - git config --local user.name "$GITHUB_ACTOR" - git config --local user.email "$GITHUB_ACTOR@users.noreply.github.com" - git commit ${FILES_TO_COMMIT[*]} -m "Style code (GHA)" - git pull --ff-only - git push origin - else - echo "No changes to commit." - fi + uses: stefanzweifel/git-auto-commit-action@v7 + with: + commit_message: "Style code (Air)" From 7a2c63e6d7747599230d3281c47d7eb925b27687 Mon Sep 17 00:00:00 2001 From: Patrick Callahan Date: Thu, 16 Jul 2026 13:08:30 +0200 Subject: [PATCH 5/8] Update aliases --- tutorial-pages/basic-principles.qmd | 2 +- tutorial-pages/check-alpha.qmd | 2 +- tutorial-pages/check-power.qmd | 2 +- tutorial-pages/definition.qmd | 2 +- tutorial-pages/download-repo.qmd | 2 +- tutorial-pages/dry-rule.qmd | 2 +- tutorial-pages/general-structure.qmd | 2 +- tutorial-pages/limitations.qmd | 2 +- tutorial-pages/number-of-simulations-nrep.qmd | 2 +- tutorial-pages/purpose.qmd | 2 +- tutorial-pages/random-numbers-generators.qmd | 2 +- tutorial-pages/real-life-example.qmd | 2 +- tutorial-pages/repeat.qmd | 2 +- tutorial-pages/resources.qmd | 2 +- tutorial-pages/sample-size-n.qmd | 2 +- tutorial-pages/seed.qmd | 2 +- tutorial-pages/simulate-for-preregistration.qmd | 2 +- 17 files changed, 17 insertions(+), 17 deletions(-) diff --git a/tutorial-pages/basic-principles.qmd b/tutorial-pages/basic-principles.qmd index 27aa3b7..236292c 100644 --- a/tutorial-pages/basic-principles.qmd +++ b/tutorial-pages/basic-principles.qmd @@ -1,5 +1,5 @@ --- -aliases: [tutorial_pages/basic-principles.qmd] +aliases: [tutorial_pages/basic-principles.html] --- # Basic principles diff --git a/tutorial-pages/check-alpha.qmd b/tutorial-pages/check-alpha.qmd index 3616091..9a062d2 100644 --- a/tutorial-pages/check-alpha.qmd +++ b/tutorial-pages/check-alpha.qmd @@ -1,5 +1,5 @@ --- -aliases: [tutorial_pages/check-alpha.qmd] +aliases: [tutorial_pages/check-alpha.html] --- # Using simulations to check alpha diff --git a/tutorial-pages/check-power.qmd b/tutorial-pages/check-power.qmd index 5741891..48a0b7a 100644 --- a/tutorial-pages/check-power.qmd +++ b/tutorial-pages/check-power.qmd @@ -1,5 +1,5 @@ --- -aliases: [tutorial_pages/check-power.qmd] +aliases: [tutorial_pages/check-power.html] --- # Checking power through simulations diff --git a/tutorial-pages/definition.qmd b/tutorial-pages/definition.qmd index 300eb11..d95186a 100644 --- a/tutorial-pages/definition.qmd +++ b/tutorial-pages/definition.qmd @@ -1,5 +1,5 @@ --- -aliases: [tutorial_pages/definition.qmd] +aliases: [tutorial_pages/definition.html] --- # Definition diff --git a/tutorial-pages/download-repo.qmd b/tutorial-pages/download-repo.qmd index 2e04c17..a402464 100644 --- a/tutorial-pages/download-repo.qmd +++ b/tutorial-pages/download-repo.qmd @@ -1,5 +1,5 @@ --- -aliases: [tutorial_pages/download-repo.qmd] +aliases: [tutorial_pages/download-repo.html] --- # Make this repository a local RStudio project diff --git a/tutorial-pages/dry-rule.qmd b/tutorial-pages/dry-rule.qmd index a29c9dc..c764b46 100644 --- a/tutorial-pages/dry-rule.qmd +++ b/tutorial-pages/dry-rule.qmd @@ -1,5 +1,5 @@ --- -aliases: [tutorial_pages/dry-rule.qmd] +aliases: [tutorial_pages/dry-rule.html] --- # **D**o not **R**epeat **Y**ourself – DRY rule diff --git a/tutorial-pages/general-structure.qmd b/tutorial-pages/general-structure.qmd index 61414cb..55cddbf 100644 --- a/tutorial-pages/general-structure.qmd +++ b/tutorial-pages/general-structure.qmd @@ -1,5 +1,5 @@ --- -aliases: [tutorial_pages/general-structure.qmd] +aliases: [tutorial_pages/general-structure.html] --- # General structure of a simulation diff --git a/tutorial-pages/limitations.qmd b/tutorial-pages/limitations.qmd index 684b801..0a08eef 100644 --- a/tutorial-pages/limitations.qmd +++ b/tutorial-pages/limitations.qmd @@ -1,5 +1,5 @@ --- -aliases: [tutorial_pages/limitations.qmd] +aliases: [tutorial_pages/limitations.html] --- # Limitations to simulations diff --git a/tutorial-pages/number-of-simulations-nrep.qmd b/tutorial-pages/number-of-simulations-nrep.qmd index 86d6eab..9542052 100644 --- a/tutorial-pages/number-of-simulations-nrep.qmd +++ b/tutorial-pages/number-of-simulations-nrep.qmd @@ -1,5 +1,5 @@ --- -aliases: [tutorial_pages/number-of-simulations-nrep.qmd] +aliases: [tutorial_pages/number-of-simulations-nrep.html] --- # Number of repetitions `nrep` diff --git a/tutorial-pages/purpose.qmd b/tutorial-pages/purpose.qmd index bac5b86..bd0e084 100644 --- a/tutorial-pages/purpose.qmd +++ b/tutorial-pages/purpose.qmd @@ -1,5 +1,5 @@ --- -aliases: [tutorial_pages/purpose.qmd] +aliases: [tutorial_pages/purpose.html] --- # Purpose diff --git a/tutorial-pages/random-numbers-generators.qmd b/tutorial-pages/random-numbers-generators.qmd index 067decc..35943cd 100644 --- a/tutorial-pages/random-numbers-generators.qmd +++ b/tutorial-pages/random-numbers-generators.qmd @@ -1,5 +1,5 @@ --- -aliases: [tutorial_pages/random-numbers-generators.qmd] +aliases: [tutorial_pages/random-numbers-generators.html] --- # Random number generators diff --git a/tutorial-pages/real-life-example.qmd b/tutorial-pages/real-life-example.qmd index 0db11e1..c4b1fb4 100644 --- a/tutorial-pages/real-life-example.qmd +++ b/tutorial-pages/real-life-example.qmd @@ -1,5 +1,5 @@ --- -aliases: [tutorial_pages/real-life-example.qmd] +aliases: [tutorial_pages/real-life-example.html] --- # Real-life example diff --git a/tutorial-pages/repeat.qmd b/tutorial-pages/repeat.qmd index 16272bd..dae4c9f 100644 --- a/tutorial-pages/repeat.qmd +++ b/tutorial-pages/repeat.qmd @@ -1,5 +1,5 @@ --- -aliases: [tutorial_pages/repeat.qmd] +aliases: [tutorial_pages/repeat.html] --- # Repetition diff --git a/tutorial-pages/resources.qmd b/tutorial-pages/resources.qmd index 2ea861d..605ea2e 100644 --- a/tutorial-pages/resources.qmd +++ b/tutorial-pages/resources.qmd @@ -1,5 +1,5 @@ --- -aliases: [tutorial_pages/resources.qmd] +aliases: [tutorial_pages/resources.html] --- # Resources diff --git a/tutorial-pages/sample-size-n.qmd b/tutorial-pages/sample-size-n.qmd index e542c95..35da4c7 100644 --- a/tutorial-pages/sample-size-n.qmd +++ b/tutorial-pages/sample-size-n.qmd @@ -1,5 +1,5 @@ --- -aliases: [tutorial_pages/sample-size-n.qmd] +aliases: [tutorial_pages/sample-size-n.html] --- # Sample size `n` diff --git a/tutorial-pages/seed.qmd b/tutorial-pages/seed.qmd index 5fb0a9a..23dcc8c 100644 --- a/tutorial-pages/seed.qmd +++ b/tutorial-pages/seed.qmd @@ -1,5 +1,5 @@ --- -aliases: [tutorial_pages/seed.qmd] +aliases: [tutorial_pages/seed.html] --- # Setting the seed diff --git a/tutorial-pages/simulate-for-preregistration.qmd b/tutorial-pages/simulate-for-preregistration.qmd index 517b3a3..74f0a9b 100644 --- a/tutorial-pages/simulate-for-preregistration.qmd +++ b/tutorial-pages/simulate-for-preregistration.qmd @@ -1,5 +1,5 @@ --- -aliases: [tutorial_pages/simulate-for-preregistration.qmd] +aliases: [tutorial_pages/simulate-for-preregistration.html] --- # Simulating data to check or preregister code From 62ff34e3a800546dd61ec18a07b4d1576a5c11e1 Mon Sep 17 00:00:00 2001 From: Patrick Callahan Date: Thu, 16 Jul 2026 13:12:04 +0200 Subject: [PATCH 6/8] Fix level one headers to use title key instead --- index.qmd | 4 +++- tutorial-pages/basic-principles.qmd | 3 +-- tutorial-pages/check-alpha.qmd | 3 +-- tutorial-pages/check-power.qmd | 3 +-- tutorial-pages/definition.qmd | 3 +-- tutorial-pages/download-repo.qmd | 3 +-- tutorial-pages/dry-rule.qmd | 3 +-- tutorial-pages/general-structure.qmd | 3 +-- tutorial-pages/limitations.qmd | 3 +-- tutorial-pages/number-of-simulations-nrep.qmd | 5 ++--- tutorial-pages/purpose.qmd | 3 +-- tutorial-pages/random-numbers-generators.qmd | 3 +-- tutorial-pages/real-life-example.qmd | 3 +-- tutorial-pages/repeat.qmd | 3 +-- tutorial-pages/resources.qmd | 3 +-- tutorial-pages/sample-size-n.qmd | 5 ++--- tutorial-pages/seed.qmd | 3 +-- tutorial-pages/simulate-for-preregistration.qmd | 3 +-- 18 files changed, 22 insertions(+), 37 deletions(-) diff --git a/index.qmd b/index.qmd index 423f705..6eaf6f4 100644 --- a/index.qmd +++ b/index.qmd @@ -1,4 +1,6 @@ -# Introduction to Simulations in R +--- +title: "Introduction to Simulations in R" +--- ## About this work This tutorial was created by [Malika Ihle](https://www.osc.uni-muenchen.de/about_us/coordinator/index.html) based on materials from [Joel Pick](https://joelpick.github.io/), [Hadley Wickham](https://www.yumpu.com/en/document/view/19077330/simulation-hadley-wickham), and [Kevin Hallgren](https://doi.org/10.20982/tqmp.09.2.p043), with contributions from [James Smith](https://github.com/worcjamessmith). diff --git a/tutorial-pages/basic-principles.qmd b/tutorial-pages/basic-principles.qmd index 236292c..7f7fc3d 100644 --- a/tutorial-pages/basic-principles.qmd +++ b/tutorial-pages/basic-principles.qmd @@ -1,9 +1,8 @@ --- aliases: [tutorial_pages/basic-principles.html] +title: "Basic principles" --- -# Basic principles - Basically, a simulation consists of: **1) Generating `n` random numbers from a known distribution.** **2) Repeating this `nrep` times.** diff --git a/tutorial-pages/check-alpha.qmd b/tutorial-pages/check-alpha.qmd index 9a062d2..129cc32 100644 --- a/tutorial-pages/check-alpha.qmd +++ b/tutorial-pages/check-alpha.qmd @@ -1,9 +1,8 @@ --- aliases: [tutorial_pages/check-alpha.html] +title: "Using simulations to check alpha" --- -# Using simulations to check alpha - In most quantitative sciences, we accept a type I error rate of 0.05, which is often called the `alpha` or significance level. This value tells us the probability of rejecting the null hypothesis (i.e. of finding an effect) given that the null hypothesis is true. In other words, if there is no true effect (e.g. no difference between two groups), we would expect our null hypothesis of no effect to be rejected (incorrectly) (`alpha` * 100)% of the time. diff --git a/tutorial-pages/check-power.qmd b/tutorial-pages/check-power.qmd index 48a0b7a..0a56461 100644 --- a/tutorial-pages/check-power.qmd +++ b/tutorial-pages/check-power.qmd @@ -1,9 +1,8 @@ --- aliases: [tutorial_pages/check-power.html] +title: "Checking power through simulations" --- -# Checking power through simulations - The power of a statistical test tells us the probability that the test correctly rejects the null hypothesis. In other words, if we only examine true effects, the power is the proportion of tests that will (correctly) reject the null hypothesis. Often, the power is set to 80%, though, as with `alpha = 0.05`, this is an arbitrary choice. Generally, we want to do power analysis before collecting data, to work out the sample size we need to detect some effect. If we are calculating a required sample size, the power analysis can also be called a sample size calculation. diff --git a/tutorial-pages/definition.qmd b/tutorial-pages/definition.qmd index d95186a..bc96418 100644 --- a/tutorial-pages/definition.qmd +++ b/tutorial-pages/definition.qmd @@ -1,9 +1,8 @@ --- aliases: [tutorial_pages/definition.html] +title: "Definition" --- -# Definition - **"A computer simulation (or 'sim') is an attempt to model a real-life or hypothetical situation on a computer so that it can be studied to see how the system works. By changing variables in the simulation, predictions may be made about the behavior of the system. It is a tool to virtually investigate the behavior of the system under study."**       *Wikipedia* diff --git a/tutorial-pages/download-repo.qmd b/tutorial-pages/download-repo.qmd index a402464..a803832 100644 --- a/tutorial-pages/download-repo.qmd +++ b/tutorial-pages/download-repo.qmd @@ -1,9 +1,8 @@ --- aliases: [tutorial_pages/download-repo.html] +title: "Make this repository a local RStudio project" --- -# Make this repository a local RStudio project - You have two options to fetch this material: ## A. You know version control with Git and GitHub diff --git a/tutorial-pages/dry-rule.qmd b/tutorial-pages/dry-rule.qmd index c764b46..a395cba 100644 --- a/tutorial-pages/dry-rule.qmd +++ b/tutorial-pages/dry-rule.qmd @@ -1,9 +1,8 @@ --- aliases: [tutorial_pages/dry-rule.html] +title: "Do not Repeat Yourself – DRY rule" --- -# **D**o not **R**epeat **Y**ourself – DRY rule - ## *vs.* **W**rite **E**verything **T**wice – WET rule Following the WET rule: diff --git a/tutorial-pages/general-structure.qmd b/tutorial-pages/general-structure.qmd index 55cddbf..caa426f 100644 --- a/tutorial-pages/general-structure.qmd +++ b/tutorial-pages/general-structure.qmd @@ -1,9 +1,8 @@ --- aliases: [tutorial_pages/general-structure.html] +title: "General structure of a simulation" --- -# General structure of a simulation - 1. **Define** what type of data and variables need to be simulated, i.e. their **distribution**, their class (e.g. factor vs. numerical values), **sample sizes** (within a dataset and number of repetitions), what will need to vary (e.g. the strength of relationship), etc. 2. **Generate data**, random data or data including an effect (e.g. an imposed correlation between two variables). diff --git a/tutorial-pages/limitations.qmd b/tutorial-pages/limitations.qmd index 0a08eef..0309a18 100644 --- a/tutorial-pages/limitations.qmd +++ b/tutorial-pages/limitations.qmd @@ -1,9 +1,8 @@ --- aliases: [tutorial_pages/limitations.html] +title: "Limitations to simulations" --- -# Limitations to simulations - 1. **Assumptions** made regarding variables might not be true, e.g. the distribution of supposedly normally distributed data may not be quite normal. (Have a back-up analysis plan!) 2. **Parameter space may be unknown**. (Explore it a bit and use previous observations to be at least in a relevant range.) diff --git a/tutorial-pages/number-of-simulations-nrep.qmd b/tutorial-pages/number-of-simulations-nrep.qmd index 9542052..86f76df 100644 --- a/tutorial-pages/number-of-simulations-nrep.qmd +++ b/tutorial-pages/number-of-simulations-nrep.qmd @@ -1,9 +1,8 @@ --- aliases: [tutorial_pages/number-of-simulations-nrep.html] +title: "Number of repetitions `nrep`" --- -# Number of repetitions `nrep` - Sampling theory applies to the number of repetitions `nrep` (also referred to as the number of *replications*) just as much as it does to the sample size `n` within a simulation. **Means and SDs from 24 repetitions simulating N(0,1) with n = 10:** @@ -19,7 +18,7 @@ Now, let's do the same with a number of repetitions `nrep` of 1000.
    -### Conclusion +## Conclusion The number of repetitions needs to be a large enough number to obtain a good representation of the distribution of the simulation results, e.g. 1000. diff --git a/tutorial-pages/purpose.qmd b/tutorial-pages/purpose.qmd index bd0e084..743136b 100644 --- a/tutorial-pages/purpose.qmd +++ b/tutorial-pages/purpose.qmd @@ -1,9 +1,8 @@ --- aliases: [tutorial_pages/purpose.html] +title: "Purpose" --- -# Purpose - You can use computer simulations to: * **Test your statistical intuition or demonstrate mathematical properties you cannot easily anticipate.** diff --git a/tutorial-pages/random-numbers-generators.qmd b/tutorial-pages/random-numbers-generators.qmd index 35943cd..3c1f4e1 100644 --- a/tutorial-pages/random-numbers-generators.qmd +++ b/tutorial-pages/random-numbers-generators.qmd @@ -1,9 +1,8 @@ --- aliases: [tutorial_pages/random-numbers-generators.html] +title: "Random number generators" --- -# Random number generators - R contains several functions to generate random numbers. Type `?`*`function`* in your console to get information on the function's arguments (i.e. the values that must be provided to obtain the function's result). diff --git a/tutorial-pages/real-life-example.qmd b/tutorial-pages/real-life-example.qmd index c4b1fb4..653036c 100644 --- a/tutorial-pages/real-life-example.qmd +++ b/tutorial-pages/real-life-example.qmd @@ -1,9 +1,8 @@ --- aliases: [tutorial_pages/real-life-example.html] +title: "Real-life example" --- -# Real-life example - This is a walk through one relatively simple simulation written to check whether the following two models would provide the same results: * A generalized linear model based on a contingency table of counts (Poisson distribution). diff --git a/tutorial-pages/repeat.qmd b/tutorial-pages/repeat.qmd index dae4c9f..07c646c 100644 --- a/tutorial-pages/repeat.qmd +++ b/tutorial-pages/repeat.qmd @@ -1,9 +1,8 @@ --- aliases: [tutorial_pages/repeat.html] +title: "Repetition" --- -# Repetition - The function `replicate(nrep, expression)` repeats the `expression` provided `nrep` times. For example, `replicate(10, mean(rnorm(100)))` reads: 'Draw 100 values from a normal distribution with a mean of 0 and a standard deviation of 1 (the default values of `rnorm(n, mean, sd)`), calculate the mean of these 100 values, and do all that 10 times.' diff --git a/tutorial-pages/resources.qmd b/tutorial-pages/resources.qmd index 605ea2e..45f6c84 100644 --- a/tutorial-pages/resources.qmd +++ b/tutorial-pages/resources.qmd @@ -1,8 +1,7 @@ --- aliases: [tutorial_pages/resources.html] +title: "Resources" --- - -# Resources ## Follow-up self-paced tutorial on simulation of data analyses for advanced power analyses * https://lmu-osc.github.io/Simulations-for-Advanced-Power-Analyses/ diff --git a/tutorial-pages/sample-size-n.qmd b/tutorial-pages/sample-size-n.qmd index 35da4c7..2871be4 100644 --- a/tutorial-pages/sample-size-n.qmd +++ b/tutorial-pages/sample-size-n.qmd @@ -1,9 +1,8 @@ --- aliases: [tutorial_pages/sample-size-n.html] +title: "Sample size `n`" --- -# Sample size `n` - How many values should you generate within a simulation? Let's explore. If I draw 10 data points from a normal distribution with a mean of 0 and a standard deviation of 1 (i.e N(0,1)), after setting the seed to 10 (for no specific reason), here is the distribution of the values I get: @@ -43,7 +42,7 @@ Now, let's do the same with a sample size `n` of 1000.
    -### Conclusion +## Conclusion The sample size within a simulation affects the **precision** with which the parameters of that distribution can be estimated. What should determine the sample size within your simulation? diff --git a/tutorial-pages/seed.qmd b/tutorial-pages/seed.qmd index 23dcc8c..04f7dcb 100644 --- a/tutorial-pages/seed.qmd +++ b/tutorial-pages/seed.qmd @@ -1,9 +1,8 @@ --- aliases: [tutorial_pages/seed.html] +title: "Setting the seed" --- -# Setting the seed - * `set.seed()` Computers in general, and R specifically, can, in fact, only provide *pseudo*random number generators. diff --git a/tutorial-pages/simulate-for-preregistration.qmd b/tutorial-pages/simulate-for-preregistration.qmd index 74f0a9b..a814c6f 100644 --- a/tutorial-pages/simulate-for-preregistration.qmd +++ b/tutorial-pages/simulate-for-preregistration.qmd @@ -1,9 +1,8 @@ --- aliases: [tutorial_pages/simulate-for-preregistration.html] +title: "Simulating data to check or preregister code" --- -# Simulating data to check or preregister code - One of the simplest uses of simulations is to make a dataset on which you can run and therefore pre-specify your analytic code. From 384b469c69631ac924e38bdf84c4f797b7a70e0c Mon Sep 17 00:00:00 2001 From: Patrick Callahan Date: Wed, 19 Aug 2026 11:32:34 -0500 Subject: [PATCH 7/8] Additional file renaming and misc fixes --- .filenameignore | 3 - .github/workflows/README.md | 76 ++++++++++++++++++ CITATION.cff | 12 ++- _quarto.yml | 1 + about.qmd | 12 ++- ...00hist10N01.png => 1000-hists-n10-n01.png} | Bin .../{24hist10N01.png => 24-hists-n10-n01.png} | Bin ...hist1000N01.png => 24-hists-n1000-n01.png} | Bin assets/{download.PNG => download.png} | Bin ...g-directory.PNG => existing-directory.png} | Bin assets/{files-list.PNG => files-list.png} | Bin ...{find-directory.PNG => find-directory.png} | Bin assets/{hist10N01.png => hist-n10-n01.png} | Bin ...musd-24-10-N01.png => musd-24-n10-n01.png} | Bin ...-24-1000-N01.png => musd-24-n1000-n01.png} | Bin hallgren-2013/reading-sheet.md | 4 +- tutorial-pages/download-repo.qmd | 8 +- tutorial-pages/number-of-simulations-nrep.qmd | 4 +- tutorial-pages/sample-size-n.qmd | 11 ++- 19 files changed, 104 insertions(+), 27 deletions(-) create mode 100644 .github/workflows/README.md rename assets/{1000hist10N01.png => 1000-hists-n10-n01.png} (100%) rename assets/{24hist10N01.png => 24-hists-n10-n01.png} (100%) rename assets/{24hist1000N01.png => 24-hists-n1000-n01.png} (100%) rename assets/{download.PNG => download.png} (100%) rename assets/{existing-directory.PNG => existing-directory.png} (100%) rename assets/{files-list.PNG => files-list.png} (100%) rename assets/{find-directory.PNG => find-directory.png} (100%) rename assets/{hist10N01.png => hist-n10-n01.png} (100%) rename assets/{musd-24-10-N01.png => musd-24-n10-n01.png} (100%) rename assets/{musd-24-1000-N01.png => musd-24-n1000-n01.png} (100%) diff --git a/.filenameignore b/.filenameignore index d590e99..1f06d59 100644 --- a/.filenameignore +++ b/.filenameignore @@ -5,9 +5,6 @@ _site/** .quarto/** .github/** _extensions/ -assets/ -hallgren-2013 -ihle-2020 # Common documentation files to ignore LICENSE-CODE.md diff --git a/.github/workflows/README.md b/.github/workflows/README.md new file mode 100644 index 0000000..f659f84 --- /dev/null +++ b/.github/workflows/README.md @@ -0,0 +1,76 @@ +# Workflows (GitHub Actions) + +This document explains the GitHub Actions workflows in `.github/workflows/` in beginner-to-intermediate friendly language: what each workflow does, how it is triggered, and what is essential to keep working. + +## Quick summary + +- Location: `.github/workflows/` +- How to run: workflows run automatically on `push` to `main`, on a schedule, or manually via the **Actions** tab β†’ "Run workflow" (if `workflow_dispatch` is enabled). + +--- + +## Individual workflows + +### citation-check.yml β€” Validate `CITATION.cff` + +- Purpose: Validate the project's `CITATION.cff` so metadata (authors, ORCID, affiliations) is well-formed and machine-readable. +- Triggers: `push` to `main` when `CITATION.cff` changes, and manual runs (`workflow_dispatch`). +- What it does: checks out the repo and runs `dieghernan/cff-validator@v3`. +- Essentials to keep: the `Checkout` step and the validator step. No extra secrets are required. +- Tips: safe to update the validator action version; don't remove checkout. + +### filename-check.yml β€” Enforce filename rules + +- Purpose: Ensure file and path names meet limits (length, depth, allowed extensions) to prevent publishing problems. +- Triggers: `push` to `main`, `pull_request`, and manual runs. +- What it does: uses `NeuroShepherd/check-filenames-action@v1` with inputs such as `max-path-length`, `max-depth`, and allowed `file-types`. It may respect a `.filenameignore` file when present. +- Essentials to keep: the check-filenames action and its configuration inputs. +- Tips: adjust `max-path-length`/`max-depth` or add `.filenameignore` entries if legitimate files are flagged. + +### publish.yaml β€” Render and publish the Quarto site + +- Purpose: Build the Quarto site and publish the rendered site to the `gh-pages` branch. +- Triggers: `push` to `main`, weekly schedule (cron), and manual runs. +- What it does (high-level): checks out code, installs Quarto, installs system and R dependencies as needed, renders the site, and publishes to `gh-pages` using `quarto-actions/publish@v2`. +- Essentials to keep: + - `quarto-dev/quarto-actions/setup@v2` (Quarto install) + - the render and publish step (`quarto-actions/publish@v2`) + - repository permission for `contents: write` to allow publishing +- Notes: + - If you use R, the workflow detects `renv.lock` and restores packages; include `renv.lock` for reproducible builds. + - The workflow installs system libraries via `apt` (image handling, PDF, and some R packages require these). Remove packages only if you understand the consequences. +- Common edits: change schedule timing or branch triggers. Removing the publish step disables automatic deployment. + +### style.yaml β€” Format R/QMD code using `styler` + +- Purpose: Automatically format R and Quarto/R Markdown code using `styler::style_dir()` and optionally commit formatted code. +- Triggers: currently manual (`workflow_dispatch`) β€” push triggers are commented out. +- What it does: installs R and `styler`, runs `styler::style_dir()`, and if files were reformatted the workflow commits and pushes changes using `GITHUB_TOKEN`. +- Essentials to keep: the style run and cache steps; the commit step is optional depending on whether you want automatic changes. +- Tips: to avoid unexpected commits, run manually or restrict to PR checks instead of auto-committing. + +--- + +## Quick guidance β€” what to change vs what to leave alone + +- Safe to change: + - Schedules and branch triggers + - Input limits for checks (e.g., filename length, allowed file types) + - Action versions (bump to newer versions) +- Be careful editing: + - The `publish` workflow's render/publish steps β€” removing them will stop site builds and deployment. + - System dependency installation (`apt` lines) used by rendering and some R packages. + - The auto-commit logic in `style.yaml` if you don't want automatic pushes. That is this workflow only runs on `workflow_dispatch` meaning it currently can only be manually triggered in Actions. + +## How to run workflows manually + +- In GitHub: Open the repository β†’ **Actions** tab β†’ choose a workflow β†’ click **Run workflow** (if available). +- Locally: To test Quarto rendering locally, use `quarto preview` or `quarto render` in your project directory. + +## Where to look for failures + +- Open the **Actions** tab in GitHub, select the workflow run, and inspect step logs to see errors and stack traces. + +--- + + diff --git a/CITATION.cff b/CITATION.cff index 2356958..2bd3c69 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -1,12 +1,10 @@ cff-version: 1.2.0 -message: "If you use this software, please cite it as below." +message: "If you refer to this tutorial, please cite it as below." authors: -- family-names: "Ihle" - given-names: "Malika" - orcid: "https://orcid.org/0000-0002-3242-5981" - affiliation: - - name: "LMU Open Science Center" - ror: "https://ror.org/029e6qe04" + - family-names: "Ihle" + given-names: "Malika" + orcid: "https://orcid.org/0000-0002-3242-5981" + affiliation: "LMU Open Science Center" title: "Introduction to Simulations in R" version: 0.1.0 doi: "DOI_HERE_AFTER_GENERATED" diff --git a/_quarto.yml b/_quarto.yml index 657ede8..63c29e8 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -8,6 +8,7 @@ project: # End Project # Begin Website +repo-url: https://github.com/lmu-osc/Introduction-Simulations-in-R website: title: "Introduction to Simulations in R" page-footer: diff --git a/about.qmd b/about.qmd index 8630455..51395c5 100644 --- a/about.qmd +++ b/about.qmd @@ -17,10 +17,11 @@ author: affiliation: - id: osc name: LMU Open Science Center - ror: https://ror.org/05591te55 - isni: 000000041936973X + ror: https://ror.org/029e6qe04 - id: other1 name: LMU Munich + ror: https://ror.org/05591te55 + isni: 000000041936973X orcid: 0000-0002-3242-5981 google-scholar: true --- @@ -42,3 +43,10 @@ This tutorial was primarily written in 2021 using R and RStudio. ## Tutorial Template Quarto Extension This tutorial was written using the [`lmu-osc/tutorial-template`](https://github.com/lmu-osc/tutorial-template) Quarto extension [@callahan2026]. + +::: {#refs} +::: + +## How to Cite + +**To cite this tutorial, please refer to the project's [CITATION.cff](CITATION.cff) file or use the BibTeX citation provided in the appendix below.** diff --git a/assets/1000hist10N01.png b/assets/1000-hists-n10-n01.png similarity index 100% rename from assets/1000hist10N01.png rename to assets/1000-hists-n10-n01.png diff --git a/assets/24hist10N01.png b/assets/24-hists-n10-n01.png similarity index 100% rename from assets/24hist10N01.png rename to assets/24-hists-n10-n01.png diff --git a/assets/24hist1000N01.png b/assets/24-hists-n1000-n01.png similarity index 100% rename from assets/24hist1000N01.png rename to assets/24-hists-n1000-n01.png diff --git a/assets/download.PNG b/assets/download.png similarity index 100% rename from assets/download.PNG rename to assets/download.png diff --git a/assets/existing-directory.PNG b/assets/existing-directory.png similarity index 100% rename from assets/existing-directory.PNG rename to assets/existing-directory.png diff --git a/assets/files-list.PNG b/assets/files-list.png similarity index 100% rename from assets/files-list.PNG rename to assets/files-list.png diff --git a/assets/find-directory.PNG b/assets/find-directory.png similarity index 100% rename from assets/find-directory.PNG rename to assets/find-directory.png diff --git a/assets/hist10N01.png b/assets/hist-n10-n01.png similarity index 100% rename from assets/hist10N01.png rename to assets/hist-n10-n01.png diff --git a/assets/musd-24-10-N01.png b/assets/musd-24-n10-n01.png similarity index 100% rename from assets/musd-24-10-N01.png rename to assets/musd-24-n10-n01.png diff --git a/assets/musd-24-1000-N01.png b/assets/musd-24-n1000-n01.png similarity index 100% rename from assets/musd-24-1000-N01.png rename to assets/musd-24-n1000-n01.png diff --git a/hallgren-2013/reading-sheet.md b/hallgren-2013/reading-sheet.md index 5d166ba..4a5e96d 100644 --- a/hallgren-2013/reading-sheet.md +++ b/hallgren-2013/reading-sheet.md @@ -1,6 +1,4 @@ ---- -aliases: Hallgren2013/ReadingSheet.md ---- + # Conducting Simulation Studies in the R Programming Environment - Reading Sheet diff --git a/tutorial-pages/download-repo.qmd b/tutorial-pages/download-repo.qmd index a803832..f302d72 100644 --- a/tutorial-pages/download-repo.qmd +++ b/tutorial-pages/download-repo.qmd @@ -14,7 +14,7 @@ Fork and clone [this repository](https://github.com/lmu-osc/Introduction-Simulat Please download the GitHub repository that we are using today: https://github.com/lmu-osc/Introduction-Simulations-in-R.
    - +
    Once the .zip file downloaded, extract it and place the folder in the desired directory (e.g. Documents). @@ -25,17 +25,17 @@ If you do not have R or RStudio installed, please follow [these instructions](ht Open RStudio, go to 'File', choose 'New Project...', and select 'Existing Directory'.
    - +
    Select the downloaded (and extracted) folder by clicking on 'Browse', then select 'Create Project'.
    - +
    In the panel containing the 'Files' tab, find the exercise sheet and open it by double clicking on it.
    - +
    *** diff --git a/tutorial-pages/number-of-simulations-nrep.qmd b/tutorial-pages/number-of-simulations-nrep.qmd index 86f76df..73b17dd 100644 --- a/tutorial-pages/number-of-simulations-nrep.qmd +++ b/tutorial-pages/number-of-simulations-nrep.qmd @@ -7,14 +7,14 @@ Sampling theory applies to the number of repetitions `nrep` (also referred to as **Means and SDs from 24 repetitions simulating N(0,1) with n = 10:**
    - +
    Now, let's do the same with a number of repetitions `nrep` of 1000. **Means and SDs from 1000 repetitions simulating N(0,1) with n = 10:**
    - +
    diff --git a/tutorial-pages/sample-size-n.qmd b/tutorial-pages/sample-size-n.qmd index 2871be4..6396272 100644 --- a/tutorial-pages/sample-size-n.qmd +++ b/tutorial-pages/sample-size-n.qmd @@ -1,5 +1,4 @@ --- -aliases: [tutorial_pages/sample-size-n.html] title: "Sample size `n`" --- @@ -8,14 +7,14 @@ How many values should you generate within a simulation? Let's explore. If I draw 10 data points from a normal distribution with a mean of 0 and a standard deviation of 1 (i.e N(0,1)), after setting the seed to 10 (for no specific reason), here is the distribution of the values I get: **1 repetition simulating N(0,1) with n = 10:** - +
    If I repeat this simulation 24 times, here are the distributions of the 10 values pseudo-randomly sampled from N(0,1): **24 repetitions simulating N(0,1) with n = 10:**
    - +
    @@ -26,19 +25,19 @@ How are the means and standard deviations of the 24 repetitions distributed? **Distributions of the means and SDs from 24 repetitions simulating N(0,1) with n = 10:**
    - +
    Now, let's do the same with a sample size `n` of 1000. **24 repetitions simulating the same distribution, i.e. N(0,1), with n = 1000:**
    - +
    **Distributions of the means and SDs from 24 repetitions simulating N(0,1) with n = 1000:**
    - +
    From d109897bdf323cfa7d7ecd5c906589eccac4c699 Mon Sep 17 00:00:00 2001 From: Patrick Callahan Date: Wed, 19 Aug 2026 11:36:29 -0500 Subject: [PATCH 8/8] Add file name exceptions --- .filenameignore | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.filenameignore b/.filenameignore index 1f06d59..6f89b7f 100644 --- a/.filenameignore +++ b/.filenameignore @@ -16,4 +16,9 @@ README-template.md CITATION.cff CITATION-template.cff _quarto.yml -404.qmd \ No newline at end of file +404.qmd + +# exceptions +assets/ +hallgren-2013 +ihle-2020 \ No newline at end of file