-
Notifications
You must be signed in to change notification settings - Fork 0
Maintaining the Page
Alexander Refsum Jensenius edited this page Jun 21, 2026
·
3 revisions
Day-to-day maintenance runbook for mishmash.no.
| Component | Details |
|---|---|
| Generator | Jekyll 4.x, Cayman remote theme |
| Source |
site/ (see _config.yml source: site) |
| Hosting | GitHub Pages → mishmash.no |
| CI | .github/workflows/web-tests.yml |
| Deploy |
.github/workflows/pages.yml on push to main
|
| Nightly sync | .github/workflows/enrich-directory-people.yml |
bundle install
bundle exec jekyll serve --livereload
# → http://127.0.0.1:4000
python3 -m venv venv && source venv/bin/activate
pip install -r scripts/requirements.txt| What | Where |
|---|---|
| Front page |
site/index.md, site/no/index.md
|
| About & organisation |
site/about/, site/no/about/
|
| Work packages |
site/wp1/ … site/wp7/, site/internal/wp*/
|
| Events | site/_events/ |
| News | site/_news/ |
| People |
site/_directory/people/ (117 entries) |
| Institutions |
site/_directory/institutions/ (36 entries) |
| Projects |
site/_directory/projects/ (22 entries) |
| Vacancies | site/vacancies/index.md |
| Results data | site/_data/mishmash_results.yml |
| WP leader list | site/_data/work_packages.yml |
| UI strings | site/_data/translations.yml |
| Layouts & CSS |
site/_layouts/, site/_includes/, site/assets/css/
|
- Branch from
main - Edit the right collection or data file
- Build and validate locally
- Open PR, wait for Web Quality Checks
- Merge and confirm Pages deployment
bundle exec jekyll build --trace
bundle exec htmlproofer ./_site --disable-external --no-enforce-https
python3 scripts/validate_directory.pyThe directory validator prints errors (fix before merge) and warnings (deprecated roles, missing NVA/ORCID, path-style slug lists, WP leader role mismatches).
Optional accessibility (matches CI):
python3 -m http.server 4000 --directory _site &
npx --yes wait-on@7 http://127.0.0.1:4000/
npx --yes pa11y-ci@3 --config .pa11yci.jsonThe nightly workflow (05:00 UTC) runs in order:
-
enrich_directory_from_nva.py— refresh people from NVA/ORCID -
sync_results_from_nva.py— updatemishmash_results.yml -
sync_directory_reciprocity.py— fix bidirectional cross-links -
merge_tags.py— applyconfig/tag_merge_map.yml -
validate_directory.py— sanity check - Commit and push to
mainif anything changed
To run the same steps locally:
python3 scripts/enrich_directory_from_nva.py --discover-nva --discover-nva-loose --max-works 10
python3 scripts/sync_results_from_nva.py
python3 scripts/sync_directory_reciprocity.py
python3 scripts/merge_tags.py
python3 scripts/validate_directory.pyAudit tag variants before adding new merge mappings:
python3 scripts/merge_tags.py --report
python3 scripts/merge_tags.py --dry-run- Use slug references in cross-link lists, not
/people/…paths - Use canonical roles (
Member,Work package leader,Board member, …) — see Directory - WP leaders must appear in both
site/_data/work_packages.ymland personroles
Internal WP pages use internal_password_hash in root _config.yml.
Rotate password:
echo -n 'newpassword' | sha256sumReplace the hash value and redeploy.
- Use absolute asset paths (
/assets/...) in shared includes -
future: truepublishes future-dated events immediately - Directory cross-links must be reciprocal — run
validate_directory.py - Do not hand-edit
mishmash_results.ymlunless you know why; usesync_results_from_nva.py - Never commit
config/nva-credentials*.jsonorvenv/ - NVA sync overwrites
tagson profiles withurls.nva— tag merge runs nightly to normalise variants
- Repo: CONTRIBUTING.md
- Scripts: scripts/README.md
- Directory, Tags and Keywords, Scripts and Automation