Skip to content

Commit c754d1d

Browse files
Merge branch 'main' into v1/add-research-cycle
2 parents 8c6851d + 49cea28 commit c754d1d

File tree

950 files changed

+25800
-26493
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

950 files changed

+25800
-26493
lines changed

.github/_name_checker.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,28 +31,28 @@
3131
print()
3232
errors_found = True
3333

34-
# Check 2: Files containing hyphens instead of underscores
35-
files_with_hyphens = [name for name in names_from_files if '-' in name]
36-
if files_with_hyphens:
37-
print("ERROR: Profile names with hyphens found (use underscores instead):")
38-
for name in files_with_hyphens:
34+
# Check 2: Files containing underscores instead of hyphens
35+
files_with_underscores = [name for name in names_from_files if '_' in name]
36+
if files_with_underscores:
37+
print("ERROR: Profile names with underscores found (use hyphens instead):")
38+
for name in files_with_underscores:
3939
print(f" - {name}")
4040
print()
4141
errors_found = True
4242

4343
# Check 3: Files containing spaces
4444
files_with_spaces = [name for name in names_from_files if ' ' in name]
4545
if files_with_spaces:
46-
print("ERROR: Profile names with spaces found (use underscores instead):")
46+
print("ERROR: Profile names with spaces found (use hyphens instead):")
4747
for name in files_with_spaces:
4848
print(f" - {name}")
4949
print()
5050
errors_found = True
5151

5252
# Check 4: Files containing non-ASCII characters (umlauts, etc.)
53-
files_with_special_chars = [name for name in names_from_files if not re.match(r'^[a-zA-Z0-9_]+$', name)]
53+
files_with_special_chars = [name for name in names_from_files if not re.match(r'^[a-zA-Z0-9-]+$', name)]
5454
if files_with_special_chars:
55-
print("ERROR: Profile names with special characters found (use only a-z, A-Z, 0-9, and underscores):")
55+
print("ERROR: Profile names with special characters found (use only a-z, A-Z, 0-9, and hyphens):")
5656
for name in files_with_special_chars:
5757
print(f" - {name}")
5858
print()
@@ -62,12 +62,12 @@
6262
if errors_found:
6363
print("Profile naming convention checks FAILED.")
6464
print("Please ensure profile filenames:")
65-
print(" - Use underscores (_) instead of hyphens or spaces")
66-
print(" - Contain only ASCII characters (a-z, A-Z, 0-9, _)")
65+
print(" - Use hyphens (-) instead of underscores or spaces")
66+
print(" - Contain only ASCII characters (a-z, A-Z, 0-9, -)")
6767
print(" - Are unique (no duplicates)")
6868
print("If there are duplicate names, consider adding middle initials to differentiate them.")
6969
print("If middle initials are already used, consider adding full middle names.")
70-
print("The final option, if needed, is to append a numeric suffix (e.g., _1, _2) to make names unique.")
70+
print("The final option, if needed, is to append a numeric suffix (e.g., -1, -2) to make names unique.")
7171
sys.exit(1)
7272
else:
7373
print("All profile naming convention checks PASSED.")

.github/add-new-year-to-events.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
---
2+
title: Add new year to events page
3+
labels: Events
4+
---
5+
6+
Each year, a new listing for Past events needs to be added to the Events page here:
7+
8+
https://github.com/lmu-osc/lmu-osc.github.io/blob/main/events/index.qmd
9+
10+
The code that needs to be added looks like this:
11+
12+
```yaml
13+
listing:
14+
- id: upcoming-events
15+
template: upcoming-events-template.ejs
16+
contents: events/
17+
sort-ui: [title, date]
18+
sort: "date desc"
19+
filter-ui: true
20+
page-size: 999
21+
categories: unnumbered
22+
- id: year_2025
23+
contents: events/
24+
sort: "date desc"
25+
page-size: 999
26+
template: past-events-template.ejs
27+
template-params:
28+
year: 2025
29+
- id: year_2024
30+
contents: events/
31+
sort: "date desc"
32+
page-size: 999
33+
template: past-events-template.ejs
34+
template-params:
35+
year: 2024
36+
...
37+
```
38+
39+
Simply insert another chunk of this code with updated years:
40+
41+
```yaml
42+
- id: year_2024
43+
contents: events/
44+
sort: "date desc"
45+
page-size: 999
46+
template: past-events-template.ejs
47+
template-params:
48+
year: 2024
49+
```
50+
51+
And then updated the page below to look like this:
52+
53+
```
54+
## Past Events
55+
56+
### New year here
57+
58+
::: {#year_YYYY}
59+
:::
60+
61+
...
62+
```
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
on:
2+
repository_dispatch:
3+
workflow_dispatch:
4+
schedule:
5+
- cron: "0 0 1 1 *"
6+
7+
jobs:
8+
linkChecker:
9+
runs-on: ubuntu-latest
10+
permissions:
11+
issues: write # required for peter-evans/create-issue-from-file
12+
steps:
13+
- name: Checkout repository
14+
uses: actions/checkout@v4
15+
- name: Create issue
16+
uses: JasonEtco/create-an-issue@v2
17+
env:
18+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
19+
with:
20+
filename: .github/add-new-year-to-events.md

.github/workflows/publish.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,20 @@ jobs:
1212
runs-on: ubuntu-latest
1313
permissions:
1414
contents: write
15+
env:
16+
RENV_CONFIG_AUTO_SNAPSHOT: "false"
17+
RENV_CONFIG_SNAPSHOT_TYPE: "explicit"
1518
steps:
1619
- name: Check out repository
1720
uses: actions/checkout@v4
21+
22+
- name: Install system dependencies
23+
run: |
24+
sudo apt-get update
25+
sudo apt-get install -y --no-install-recommends \
26+
libcurl4-openssl-dev \
27+
libssl-dev \
28+
libxml2-dev
1829
1930
- name: Install R
2031
uses: r-lib/actions/setup-r@v2

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ rsconnect/
5353
_site/
5454
_freeze/
5555

56-
# Quarto LMU Open Science Center templates
57-
lmu-osc-custom.scss
5856

5957
**/*.quarto_ipynb
6058
quick_notes.md
59+
60+
/.luarc.json

.lycheeignore

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,42 @@
11
https://lists.lrz.de/mailman/listinfo/lmu-osc
22
https://www.psy.lmu.de/
3-
https://lmu-munich.zoom.us/
3+
https://lmu-munich.zoom.us/
4+
https://lmu-munich.zoom-x.de
5+
https://*.zoom.us*
6+
https://*.zoom-x.us*
7+
https://*.zoom.de*
8+
https://*.zoom-x.de*
9+
https://tellmi.psy.lmu.de/formr/*
10+
https://www.linkedin.com/*
11+
https://doi.org/*
12+
https://www.researchgate.net/profile/*
13+
14+
15+
16+
17+
18+
19+
https://jobs.zeit.de/jobs/muenchen_professur_w2_fuer_klinische_psychologie_und_psychotherapie_152537.html?wt_zmc=nl.int.zonpmr.jobnewsletter.2018-01-18.stellenmarkt.textlink.selektion.x&c=429152&si=qBad04Sbm08t1mUV5uQYKWEdSm6es4egoFdnXVrU2mTUNSSUSKLgArjblpxl2ksMcXOIIG9zq0W8AQNhqqMvw&utm_medium=nl&utm_campaign=jobnewsletter&utm_source=2018-01-18&wt_cc1=static.6
20+
21+
https://akademie-soziologie.de/wp-content/uploads/2018/03/20180308_Stellungnahme-zu-Replikation.pdf
22+
https://ub.fau.de/schulungen/a-short-introduction-to-data-publishing-and-data-journals/
23+
https://ub.fau.de/schulungen/a-short-introduction-to-data-publishing-and-data-journals/
24+
https://www.br.de/radio/br24/sendungen/campusmagazin/campus-gespraech-felix-schoenbrodt-open-science-center-lmu-100.html
25+
https://www.uni-muenchen.de/aktuelles/preise/2020/hochschulperle.html
26+
https://www.youtube.com/watch?v=Fo7GP95Fs2w&list=PLgqUxMeOmFHz3dxbD-zR7kbuaJbeB9SWD&index=2
27+
https://www.youtube.com/watch?v=YaHlcwyn2Jk&feature=youtu.be
28+
https://zeitung.faz.net/faz/geisteswissenschaften/2021-05-26/276e8404c41a1bbca09960cbd628341f/?GEPC=s5
29+
https://conferences.leibniz-psychology.org/index.php/openscience/os2019
30+
https://www.graduatecenter.uni-muenchen.de/veranstaltungen/kurzbuendig/open_science/index.html
31+
https://www.graduatecenter.uni-muenchen.de/veranstaltungen/kurzbuendig/open_science/index.html
32+
https://www.open-science-conference.eu/registration/
33+
34+
35+
https://christina-peter.jimdosite.com/
36+
https://leibniz-psychology.org/en/services/media-center/
37+
https://www.berlin-university-alliance.de/
38+
https://www.edu.lmu.de/lbp/personen/lehrstuhlinhaber/gebhardt/index.html
39+
https://www.edu.lmu.de/lernbehindertenpaedagogik/personen/wiss_ma/ebenbeck/index.html
40+
https://www.fu-berlin.de/sites/open-science/index.html
41+
https://www.mzes.uni-mannheim.de/openscience/
42+
https://www.taisukeimai.com/*

README.md

Lines changed: 66 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,92 @@
1-
# LMU Open Science Center Home Page
1+
# LMU Open Science Center Website
2+
3+
TL;DR: Run these commands to download the project, and build the first time.
4+
5+
```bash
6+
git clone git@github.com:lmu-osc/lmu-osc.github.io.git
7+
cd lmu-osc.github.io
8+
R -e "renv::restore()"
9+
quarto preview
10+
```
11+
12+
The `renv:restore()` and `quarto preview` processes might take a bit to run the first time so go brew a ☕.
213

314
## Overview
415

5-
This repository hosts the OSC's home webpage where content from workshops, other websites, and related information is organized/linked to.
16+
This repository contains the source for the LMU Open Science Center website.
617

7-
## Updating this Page
18+
The site is built with [Quarto](https://quarto.org/) as a multi-page website and combines hand-authored content, reusable templates, custom styling, and a small amount of automation for publishing and maintenance.
819

9-
A CI/CD pipeline for automatically rendering and redeploying the website has been set up using GitHub Actions. What does this mean? TL;DR only changes to `.qmd` files (and `_quarto.yml`) should be made, and users who wish to make changes will need to make a new branch, push that branch to this repo, and open a pull request for their changes.
20+
At a high level, this repository contains the public-facing OSC website content, the navigation and page structure across the main site sections, the reusable templates and styling that support them, and the automation used for publishing and lightweight repository checks.
1021

11-
### Detailed Explanation
22+
## Tech Stack
1223

13-
High-level: the GitHub Action is configured to automatically rebuild and redeploy the site whenever a push is made to the `main` branch of this repository. There is a branch protection rule preventing direct pushes to `main` so pull requests for changes are required. The GH Action rebuilds the website on the `gh-pages` branch of this repo, and the GitHub Pages configuration is currently set to deploy the website from this branch in the Settings -> Pages repo section.
24+
The site is built with [Quarto](https://quarto.org/) and uses R with `renv` for reproducible dependency management. Content is primarily authored in YAML, Markdown, and `.qmd` files, with styling handled through SCSS and CSS. Deployment and repository checks are automated through GitHub Actions. The main Quarto configuration lives in `_quarto.yml`, rendered output is written to `_site/`, and Quarto caching is stored in `_freeze/`.
1425

15-
### Making Changes
26+
## Repository Structure
1627

17-
If you don't already have the repository on your system, clone a copy.
28+
The most important top-level directories are:
1829

19-
```
20-
git clone git@github.com:lmu-osc/lmu-osc.github.io.git
21-
```
30+
- `about/`: About pages and organizational information
31+
- `assets/`: shared images, JavaScript, Bootstrap, and Font Awesome assets
32+
- `events/`: event pages, templates, and helper scripts
33+
- `footer/`: footer markup and footer-specific styling
34+
- `news/`: news pages and metadata
35+
- `partners/`: partner and institutional member pages
36+
- `people/`: people pages, profile data, and listing templates
37+
- `training/`: training catalog, tutorials, and training-track content
38+
- `scripts/`: helper scripts used during site maintenance
39+
- `renv/`: project-local R environment management
40+
- \*`_site/`: rendered website output
41+
- \*`_freeze/`: Quarto execution cache
2242

23-
If you cloned a while ago or your copy is otherwise likely to be behind the code on GitHub, you'll want to pull the changes to your computer. (This is equivalent to fetching the changes *and* merging them.)
43+
The main entry point for the site is `index.qmd`.
2444

25-
```
26-
git pull
27-
```
45+
\* These files will appear locally, but do not and should not be on the GitHub repo.
2846

29-
Note that this will only integrate the changes for the branch you currently have checked out. If you want to pull changes for **all** of the branches you have locally and that have changes on GitHub, run `git pull --all` instead.
47+
## Content Organization
3048

31-
At this point, your local copy should be synced up with the remote repository on GitHub. To make changes, you will now need to create a new branch and checkout that new branch so you are working on it.
49+
Most pages in the repository are written as `.qmd` files. Section folders typically contain a landing page such as `index.qmd`, individual content pages, and any templates, metadata files, stylesheets, or helper scripts that are specific to that section. Some areas have their own internal documentation or specialized workflows. For example, `people/` contains profile pages, listing templates, and its own README for the people-page data model, while `events/` and `news/` include helper scripts for creating, migrating, or transferring content. In general, source content should be edited in the section folders rather than in `_site/`.
3250

33-
```
34-
git branch <new_branch>
35-
git checkout <new_branch>
36-
```
51+
## Local Development
3752

38-
Make any desired changes and commit them. You can use the template code below or use your GUI for this easily.
53+
### Prerequisites
3954

40-
```
41-
git add -A
42-
git commit -m "Your message here"
43-
```
55+
To work on this site locally, you should have Quarto, R, the project dependencies restored via `renv`, and `curl` available on your system. An IDE such as RStudio or VS Code is helpful, but not required.
56+
57+
### Initial Setup
4458

45-
If this is a new branch, you will need to push the branch to GitHub.
59+
Clone the repository, open the project, and restore the R dependencies.
4660

61+
In R:
62+
63+
```r
64+
renv::restore()
4765
```
48-
git push -u origin <new_branch>
66+
67+
This project uses a project-local `renv` library so builds are reproducible across machines and CI.
68+
69+
### Previewing the Site
70+
71+
To preview the site locally, run:
72+
73+
```bash
74+
quarto preview
4975
```
5076

51-
Now, there should be a notification on the repo page that a new branch has been pushed, and it should also ask if you would like to open a pull request. Follow this link, write an informative title and description of the pull request, and open it for review. (Ideally, someone else will be able to review your changes, but self-approvals are also fine if needed.) Following review, there are generally 3 options for pull requests: squashing, merging, and rebasing. I've disabled rebasing in this repo, and one should squash commits. (Squashing basically collapses all of the commits on your working branch e.g. `<new_branch>` into a single commit. It's a method to keep the commit history relatively clean and clear.)
77+
This starts a local preview server so you can inspect changes before committing them. Quarto writes the rendered output to `_site/`.
78+
79+
## Contribution Guidance
80+
81+
When contributing to the site, edit source files such as `.qmd`, `.yml`, `.css`, and templates—not directly in `_site/`, which is rendered output and should not be treated as the source of truth. Changes made directly to `_site/` will not be reflected in the final published website.
82+
83+
Preview the affected pages locally using `quarto preview` before opening a pull request, and keep section-specific changes inside the relevant folder when possible. If working on structured sections such as `people/`, check whether that directory already has its own README or templates before inventing a new pattern.
84+
85+
86+
## Deployment
87+
88+
On pushes to `main`, the `publish.yml` workflow restores dependencies, renders the site, and publishes to GitHub Pages. The repository also includes automated checks for links, profile naming conventions, and other maintenance tasks.
5289

53-
After the PR has been completed, the GH Action will take effect and the website should be updated within 5-10 minutes. You may need to view the page in incognito mode or force refresh multiple times as your browser will likely have an older cached version of the page.
5490

55-
Finally, you'll want to update your own local copy of this repository by returning to the beginning of these instructions (i.e. run `git pull`).
5691

5792

0 commit comments

Comments
 (0)