-
Notifications
You must be signed in to change notification settings - Fork 0
Student Development
The MishMash website doubles as a development playground for students — see Web Philosophy for why. There are two main tracks: frontend (alternative UIs) and backend (automation and data). Work is coordinated through the MishMash website project.
git clone https://github.com/MishMash-Norway/mishmash-web.git
cd mishmash-web
bundle install # Jekyll
bundle exec jekyll serve --livereload # → http://127.0.0.1:4000
# backend work also needs:
python3 -m venv venv && source venv/bin/activate
pip install -r scripts/requirements.txtEach group builds a theme in themes/<group-name>/ that shadows files in site/ at build time — override one CSS file or redesign every layout, and everything you don't override falls back to the real site. The production site is never affected.
./scripts/ui new group-a # scaffold your theme
./scripts/ui serve group-a # run the site with your UI (livereload)
./scripts/ui serve techy # try the demo themes: example, techy, artsy
./scripts/ui serve default --port 4001 # the original, side by sideFull guide: themes/README.md in the repository. If your theme overrides _layouts/default.html, keep the page.adaptive blocks so adaptive pages (Adaptive Content) keep working.
The Python scripts in scripts/ sync the directory from NVA/ORCID, fetch partner news/events, normalise tags, process images, and validate everything (Scripts and Automation). Good starting points for student projects:
- Wikidata connector — resolve people/institutions to Wikidata IDs and pull facts from there (see the roadmap in Web Philosophy)
- Wikimedia Commons images — source openly licensed portraits and event photos
- Readability checks — measure whether the adaptive reading levels (Adaptive Content) actually differ, e.g. LIX scores per variant in CI
- New data sources — more partner feeds, conference calendars, funding databases
-
JSON endpoints — expose directory/results data for external apps (the site already generates
search.json)
Conventions for scripts: use the helpers in scripts/directory_io.py and scripts/repo_paths.py; add a test_*.py next to your script; never commit credentials (see config/README.md).
-
Work on a branch, submit a pull request.
maindeploys straight to mishmash.no; the Web Quality Checks workflow must pass before merge. -
Keep your work in your area — your theme folder, or your script plus its tests. Changes to shared files (
site/_layouts/,site/assets/css/custom.css, sync scripts) need discussion in the PR. -
Styling lives in CSS files, not inline styles. Layout markup uses classes (
.wp-dropdown,.adaptive, …) styled fromsite/assets/css/. -
Directory entries are folders with
index.md, aslugmatching the folder name, and apermalink: /<section>/<slug>/— the validator enforces this. -
Cross-links by slug, not path (
university-of-oslo, not/institutions/university-of-oslo/). - Validate before pushing:
bundle exec jekyll build --trace
bundle exec htmlproofer ./_site --disable-external --no-enforce-https
python3 scripts/validate_directory.pyOpen an issue in the repository, or contact the website project team via the project page.