-
Notifications
You must be signed in to change notification settings - Fork 0
Site Architecture
The MishMash website is a Jekyll static site hosted on GitHub Pages. It uses the Cayman remote theme with extensive custom CSS.
Jekyll is configured with source: site in the root _config.yml. The repo is split:
mishmash-web/
├── _config.yml # Jekyll config (points source at site/)
├── Gemfile # Ruby dependencies
├── .github/workflows/ # CI, deploy, nightly NVA sync
├── config/ # Local credentials, tag_merge_map.yml
├── scripts/ # Python automation
└── site/ # ← all published site content
├── _config.yml # (none — config is at repo root)
├── _data/ # YAML data (translations, results, tag groups)
├── _directory/ # people, institutions, projects collection
├── _events/ # events collection
├── _news/ # news collection
├── _includes/ # reusable HTML snippets
├── _layouts/ # page templates
├── about/ # about & organisation pages
├── assets/ # CSS, images, portraits, logos
├── events/ # events index, ICS calendar
├── gallery/
├── internal/ # password-protected WP pages
├── news/
├── no/ # Norwegian pages
├── people/network/ # interactive people network graph
├── results/
├── search/
├── vacancies/
├── wp1/ … wp7/ # work package pages
├── index.md # front page
└── search.json # Liquid template → search index
Build output goes to _site/ at the repo root (gitignored).
source: site
destination: _site
markdown: kramdown
remote_theme: pages-themes/cayman@v0.2.0
url: "https://mishmash.no"
timezone: Europe/Oslo
future: true # publishes events with future datesPlugins:
-
jekyll-remote-theme— Cayman base theme -
jekyll-feed— RSS/Atom feeds for events and news -
jekyll-redirect-from— supportsredirect_fromin front matter
| Collection | Source folder | Output URL |
|---|---|---|
events |
site/_events/ |
/events/:title/ |
news |
site/_news/ |
/news/:title/ |
directory |
site/_directory/ |
/:path/ (overridden per entry) |
Directory entries set explicit permalinks, e.g. /people/{slug}/, /institutions/{slug}/, /projects/{slug}/.
| File | Purpose |
|---|---|
default.html |
Base layout — header, navigation, footer, language switcher, SEO |
page.html |
Simple content wrapper for about/WP/institution pages |
person.html |
Person profile with affiliations, tags, publications |
event.html |
Event metadata, iCalendar generation |
internal.html |
Password-gated pages (client-side SHA-256) |
meeting.html |
Board/council meeting pages |
| File | Purpose |
|---|---|
events_front_page.html |
Next upcoming events on the front page |
news_front_page.html |
Recent news items |
partner_events_front_page.html |
Partner institution events |
events_wp_pages.html |
WP-filtered event lists |
nva-results-list.html |
Research results cards from NVA data |
board_meetings.html / council_meetings.html
|
Meeting lists |
lang-switcher.html |
English ↔ Norwegian switcher |
| File | Content |
|---|---|
translations.yml |
UI strings (en, nb) |
mishmash_results.yml |
MishMash publications from NVA (nightly sync) |
partner_events.yml |
AI events scraped from partner sites |
other_events.yml |
Additional external events |
work_packages.yml |
WP metadata for network graph and listings |
tag_groups.yml |
Research tag groupings for people network |
institution_locations.yml |
Map coordinates for institutions |
| File | Purpose |
|---|---|
custom.css |
Brand colours, typography, header nav dropdowns, search badges, results cards |
people-network.css |
D3 people network graph |
style.css |
Cayman theme overrides |
icons.css |
Icon definitions |
adaptive.css |
Adaptive content / stretchtext (see Adaptive Content) |
Styling belongs in these files — layouts use classes, not inline styles.
Pages with adaptive: true in front matter get the audience switcher and stretchtext support. Reader groups are defined in site/_data/audiences.yml; the assets are adaptive.css, assets/js/adaptive.js, and the audience-switcher.html / stretch.html includes. Authoring guide: Adaptive Content.
Alternative frontends built by student groups. Each themes/<name>/ shadows files in site/ at build time via scripts/ui (list / new / serve / build); production builds ignore themes/ entirely. Guide: Student Development and themes/README.md in the repo.
- Default: English (
en) - Norwegian:
site/no/(e.g.site/no/about/description/index.md) - Set
lang: nbin Norwegian front matter - Link EN ↔ NO with
translation_url - Prefer absolute asset paths (
/assets/...) in shared includes
site/people/network/index.html renders an interactive D3 graph of researchers connected by shared institutions, tags, or work packages.
-
Connection modes: institutions, tags, work packages (from
site/_data/work_packages.yml) -
Role filters: Board, Council, Members (
Memberrole), WP Leaders (slugs inwork_packages.yml) -
Tag display groups:
site/_data/tag_groups.yml -
Styles:
site/assets/css/people-network.css