feat: add Incognito branding and wiki landing pages

This commit is contained in:
msa46 2026-08-02 16:24:35 +02:00
parent 6791b9b96c
commit 25db9a8c3f
10 changed files with 277 additions and 5 deletions

View file

@ -14,6 +14,24 @@ export default defineConfig({
description: 'Academic knowledge and student resources maintained by MSV Incognito.', description: 'Academic knowledge and student resources maintained by MSV Incognito.',
lastUpdated: true, lastUpdated: true,
sidebar, sidebar,
logo: {
light: './src/assets/logo-dark.png',
dark: './src/assets/logo.svg',
alt: 'MSV Incognito',
replacesTitle: true,
},
favicon: '/favicon.ico',
customCss: ['./src/styles/incognito.css'],
social: [
{
icon: 'external',
label: 'MSV Incognito website',
href: 'https://msvincognito.nl/',
},
],
editLink: {
baseUrl: 'https://git.msvincognito.nl/Incognito-Tech/Incognito-Wiki/_edit/main/',
},
}), }),
], ],
}); });

23
docs/brand-sources.md Normal file
View file

@ -0,0 +1,23 @@
# Incognito brand sources
Official assets were captured on 2026-08-02 from the following public sources:
| Source URL | Destination | Captured |
| --- | --- | --- |
| https://msvincognito.nl/assets/logo.svg | `src/assets/logo.svg` | 2026-08-02 |
| https://msvincognito.nl/assets/logo-dark.png | `src/assets/logo-dark.png` | 2026-08-02 |
| https://msvincognito.nl/favicon.ico | `public/favicon.ico` | 2026-08-02 |
The association stylesheet supplied these recovered brand colours:
| Role | Colour |
| --- | --- |
| Ink/navy | `#071526` |
| Dark navy | `#10253d` |
| Primary blue | `#155eef` |
| Bright blue | `#2f7cff` |
| Light blue | `#eaf2ff` |
| Soft blue | `#eef4ff` |
| Pink accent | `#ef3b8f` |
| Orange accent | `#f57a32` |
| Violet accent | `#5746d8` |

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
src/assets/logo-dark.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

75
src/assets/logo.svg Normal file
View file

@ -0,0 +1,75 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.0"
width="650.000000pt"
height="159.000000pt"
viewBox="0 0 650.000000 159.000000"
preserveAspectRatio="xMidYMid meet"
id="svg18"
xml:space="preserve"
xmlns="http://www.w3.org/2000/svg"><defs
id="defs18" /><g
transform="translate(0.000000,159.000000) scale(0.100000,-0.100000)"
fill="#60a5fa"
stroke="none"
id="g18"><path
d="m 995,1325 c -95,-65 -78.29412,-73.6471 -94,-602 l -1,-473 h 65 65 v 473 c 0,446 11.2941,470.5882 28.2941,485.5882 26,28.4118 42.6471,28.353 78.8824,-8.4117 C 1155.1765,1180.1765 1165,1166 1165,719 V 250 h 63 62 v 468 c 0,521 12.2353,510.5294 64,512 53.2726,1.5134 66,16 66,-508 V 250 h 65 65 v 477 c 0,467 0,478 -21,521 -25.6823,49.6524 -85.4198,96.6433 -148.5294,100 -48,-3 -97.9412,-10 -122.9412,-30 L 1225,1293 l -34,25 c -25,20 -48,27 -95,30 -53,3 -83.6471,-13.2353 -101,-23 z"
id="path4"
style="fill:#60a5fa;fill-opacity:1" /><path
d="m 1747,1329 c -91.4465,-49.8825 -91.8541,-140.1648 -92,-233 0,-123 2,-134 27,-182 15,-28 61,-91 102,-139 107,-125 126,-167 126,-277 0,-81 -2,-91 -25,-113 -13,-14 -31,-25 -39,-25 -56,0 -76,42 -76,165 v 95 h -61 -61 l 4,-128 c 3,-123 4,-130 31,-165 39,-51 93,-77 162,-77 65,0 100,16 143,64 41,47 56,124 48,241 -9,111 -41,185 -121,275 -96,106 -126,160 -138,242 -16,113 4,158 68,158 54,0 65,-26 65,-147 V 980 h 65 65 v 88 c -1,152 -30,221 -110,262 -51,26 -132,26 -183,-1 z"
id="path5"
style="fill:#60a5fa;fill-opacity:1" /><path
d="M2140 800 l0 -550 85 0 c46 0 96 5 110 12 31 14 157 198 176 255 9 27 14 155 16 436 l4 397 -65 0 -66 0 0 -385 c0 -433 3 -410 -77 -522 l-48 -68 -3 488 -2 487 -65 0 -65 0 0 -550z"
id="path6"
style="fill:#60a5fa;fill-opacity:1" /><path
d="M2790 785 l0 -555 65 0 65 0 0 555 0 555 -65 0 -65 0 0 -555z"
id="path8"
style="fill:#60a5fa;fill-opacity:1" /><path
d="M5410 1280 l0 -60 65 0 65 0 0 60 0 60 -65 0 -65 0 0 -60z"
id="path9"
style="fill:#60a5fa;fill-opacity:1" /><path
d="m 5660,1165 c 0,-63 -1,-65 -25,-65 -24,0 -25,-3 -25,-60 0,-57 1,-60 24,-60 h 25 l 3,-308 c -3.0606,-122.15354 -1.5453,-308.78639 33,-357 37,-60 83,-85 153,-85 63,0 102,18 136,62 40,54 47,100 44,278 l -3,165 -62,3 -63,3 V 568 c 0,-141 -3,-178 -16,-196 -18,-26 -46,-28 -68,-6 -14,13 -16,56 -16,315 v 299 h 110 110 v 60 60 h -110 -110 v 65 65 h -70 -70 z"
id="path10"
style="fill:#60a5fa;fill-opacity:1" /><path
d="M 3010,675 V 230 h 65 65 v 358 359 c 40.7181,45.33024 79.075,46.09627 130,12 V 594 230 h 65 66 l -3,404 c 0,0 3.2837,347.91494 -5.9412,372.647 C 3362.2489,1086.5677 3221.5592,1114.0908 3140,1069 v 25 c 0,25 -2,26 -65,26 h -65 z"
id="path11"
style="fill:#60a5fa;fill-opacity:1" /><path
d="m 3625,1109 c -50,-19 -92,-56 -114,-102 -20,-41 -21,-59 -21,-333 0,-281 1,-291 23,-334 12,-24 39,-57 60,-74 31,-25 49,-31 102,-34 56,-4 70,-1 109,22 61,36 96,96 96,164 v 52 h -65 -65 v -40 c 0,-74 -67,-107 -110,-53 -20,26 -21,35 -18,306 3,262 4,279 22,293 27,19 70,18 89,-4 14,-16 17,-45 17,-190 V 610 h 66 65 l -3,194 c -4.2763,144.40886 31.1736,202.3117 -96,289 -38,22 -117,30 -157,16 z"
id="path12"
style="fill:#60a5fa;fill-opacity:1" /><path
d="m 4525,1106 c -16,-7 -41,-26 -55,-41 -57.1917,-65.34415 -37.5661,-273.37011 -38.3986,-368 -4,-383 9.3986,-405 67.3986,-444 45,-30 120,-31 167,-2 l 34,21 v -55 c 0,-63 -19,-87 -69,-87 -25,0 -36,6 -49,30 -16,28 -20,30 -81,30 h -63 l 6,-32 c 18,-91 90,-143 196,-142 91,1 153,38 179,107 7,19 11,194 11,513 v 484 h -65 c -63,0 -65,-1 -65,-25 v -26 l -29,22 c -36,26 -106,34 -146,15 z m 150,-132 25,-16 V 674 c 0,-281 0,-283 -22,-298 -29,-21 -67,-20 -90,1 -17,15 -18,37 -18,295 0,265 1,279 20,298 24,24 52,25 85,4 z"
id="path14"
style="fill:#60a5fa;fill-opacity:1" /><path
d="M5410 675 l0 -445 65 0 65 0 0 445 0 445 -65 0 -65 0 0 -445z"
id="path16"
style="fill:#60a5fa;fill-opacity:1" /><path
d="M6237 1110 c-46 -14 -98 -60 -118 -104 -17 -37 -19 -69 -19 -334 0 -322 2 -332 61 -389 43 -40 77 -53 143 -53 70 0 135 40 165 102 20 42 21 58 21 340 0 289 0 296 -23 339 -43 81 -147 126 -230 99z m105 -137 c17 -15 18 -38 18 -300 0 -270 -1 -284 -20 -303 -26 -26 -64 -25 -90 2 -19 21 -20 34 -20 298 0 233 2 279 16 298 18 27 69 30 96 5 z"
id="path17"
style="fill:#60a5fa;fill-opacity:1" /><path
d="m 4921.7647,672.05882 v -445 h 65 65 v 358 359 c 40.7181,45.33024 79.075,46.09627 130,12 v -365 -364 h 65 66 l -3,404 c 0,0 3.2837,347.91494 -5.9412,372.64698 -29.8099,79.9207 -170.4996,107.4438 -252.0588,62.353 v 25 c 0,25 -2,26 -65,26 h -65 z"
id="path19"
style="fill:#60a5fa;fill-opacity:1" /><path
d="m 4092,1110 c -46,-14 -98,-60 -118,-104 -17,-37 -19,-69 -19,-334 0 -322 2,-332 61,-389 43,-40 77,-53 143,-53 70,0 135,40 165,102 20,42 21,58 21,340 0 289 0 296 -23 339 -43,81 -147,126 -230,99 z m 105 -137 c 17,-15 18,-38 18,-300 0 -270 -1,-284 -20,-303 -26,-26 -64,-25 -90,2 -19,21 -20,34 -20,298 0 233 2,279 16,298 18 27 69 30 96,5 z"
id="path20"
style="fill:#60a5fa;fill-opacity:1" /></g><g
id="g6"
transform="matrix(0.04232784,0,0,0.04232784,1.8492015,-20.074075)"><path
style="fill:#ffffff;fill-opacity:1"
d="m 596.6135,591.32228 777.7446,-106.41607 111.9014,188.148 c 0,0 -130.4668,124.2375 -430.0852,185.32468 -390.64123,79.64521 -544.18084,-1.17771 -544.18084,-1.17771 z"
id="path1-5"
/><path
style="fill:#ffffff;fill-opacity:1"
d="M 476.30907,913.83076 C 1138.7976,1039.5019 1545.2894,696.62141 1545.2894,696.62141 l 166.6928,156.90129 c 0,0 -182.2261,67.772 -589.2549,199.4281 -75.9953,24.5811 -1104.351329,345.2686 -1104.351329,345.2686 l 0.274268,-21.3929 c 0,0 130.046641,-59.8295 311.205621,-254.1578 C 463.71767,979.07573 476.30907,913.83076 476.30907,913.83076 Z"
id="path2-2"
/><path
style="fill:#ffffff;fill-opacity:1"
d="m 1285.4139,1054.2411 -755.57824,428.2127 86.10799,243.5848 -104.72593,32.5814 c 0,0 -54.05564,-36.9441 -105.04863,-78.1469 -50.99299,-41.2028 -98.92332,-86.6642 -117.39073,-119.058 -35.88473,-62.9455 -38.84711,-92.2079 -22.94057,-135.5265 12.12016,-33.0071 58.31334,-73.7462 58.31334,-73.7462 z"
id="path3-9"
/><path
style="fill:#ffffff;fill-opacity:1"
d="m 446.27685,3652.9784 732.52795,1.6456 5.3482,-159.3498 c 0,0 -155.632,9.3292 -295.15908,7.8799 C 768.89645,3501.9066 631.07073,3486.21 631.07073,3486.21 Z"
id="path4-3"
/><path
id="path5-1"
style="fill:#ffffff;fill-opacity:1"
d="m 1924.2656,792.63477 -1336.23435,699.93363 98.1875,257.2636 -393.30078,213.3789 c 0,0 270.09069,251.0497 283.86719,493.6836 24.04415,423.4697 -113.27149,954.4532 -113.27149,954.4532 0,0 308.75437,74.0995 647.82033,42.5117 349.6229,-32.5714 509.5918,-126.4375 509.5918,-126.4375 l -69.6641,-618.2012 147.0078,-117.9355 -201.3144,-366.9707 -52.6582,-472.2891 -371.9082,-14.8106 429.5039,-98.1875 c 0,0 55.8808,-36.6293 225.4492,-365.0507 99.7965,-193.2865 196.9238,-481.34183 196.9238,-481.34183 z M 849.17773,2682.9238 l 239.19527,339.002 -84.5546,76.0234 -240.09574,-333.9609 z" /></g></svg>

After

Width:  |  Height:  |  Size: 7 KiB

View file

@ -1 +1,8 @@
export const sidebar = [{ label: 'Home', link: '/' }]; export const sidebar = [
{ label: 'Home', link: '/' },
{ label: 'About Incognito', link: '/about-incognito/' },
{ label: 'Bachelor', items: [] },
{ label: 'Master AI', items: [] },
{ label: 'Master DSDM', items: [] },
{ label: 'Useful Information', items: [] },
];

View file

@ -0,0 +1,10 @@
---
title: About Incognito
description: Learn more about MSV Incognito, the study association behind this wiki.
---
# MSV Incognito
MSV Incognito is the study association for the Department of Data Science & Artificial Intelligence at Maastricht University.
Visit the [MSV Incognito website](https://msvincognito.nl/) to learn more about the association, its activities, and opportunities to become active in one of its committees.

View file

@ -1,6 +1,54 @@
--- ---
title: Home title: Incognito Wiki
description: Academic knowledge and student resources maintained by MSV Incognito. description: Academic knowledge and student resources for Data Science and AI at Maastricht University.
template: splash
editUrl: false
--- ---
Migration in progress. import { CardGrid, LinkButton, LinkCard } from '@astrojs/starlight/components';
# Welcome to the knowledge base of MSV Incognito
MSV Incognito is the study association for the Department of Data Science & Artificial Intelligence at Maastricht University. This wiki brings together study information and course resources for the programmes we support.
<p>
<LinkButton href="https://msvincognito.nl/" icon="external">Visit MSV Incognito</LinkButton>
</p>
## Explore the wiki
<CardGrid>
<LinkCard title="Bachelor" href="./bachelor/" description="Programme and course information for the bachelor." />
<LinkCard title="Master AI" href="./master-ai/" description="Resources for the Artificial Intelligence masters programme." />
<LinkCard title="Master DSDM" href="./master-dsdm/" description="Resources for the Data Science for Decision Making masters programme." />
<LinkCard title="Useful Information" href="./useful-information/" description="Practical information for students." />
<LinkCard title="About Incognito" href="./about-incognito/" description="Learn about the study association behind this wiki." />
</CardGrid>
## Maastricht University
Maastricht University (UM) is the youngest university in the Netherlands. Its “Leading in Learning” approach is closely associated with Problem-Based Learning (PBL): students work in small tutorial groups to analyse problems, exchange knowledge, and set their learning goals together. This approach connects education with independent research and collaboration.
## Data Science & Knowledge Engineering
The programmes cover the integration of knowledge into computer systems to solve complex problems that ordinarily need significant human expertise. The field connects mathematical logic, artificial intelligence, data mining, machine learning, decision support, knowledge management, and cognitive science.
<p>
<a href="https://www.youtube.com/watch?v=__N81DcxsEw">Watch the programme video on YouTube</a>
</p>
### Bachelor
The bachelors programme includes Java and Matlab as primary languages, with Prolog and C/C++ available as optional languages, alongside LaTeX. Its Project-Centred Learning (PCL) approach has students work in small groups throughout a semester on phases of one project, such as traffic simulation, ECG separation, multi-agent surveillance, or speaker recognition.
### Masters programmes
**Artificial Intelligence** focuses on developing and applying intelligent systems that can learn, reason, and collaborate. Research areas include machine learning, information retrieval, intelligent search, and multi-agent systems.
**Operations Research** focuses on optimisation and decision-making with applied mathematical tools and models. Research areas include signal processing, mathematical modelling and simulation, bioinformatics, and evolutionary game theory.
## Useful official links
- [MSV Incognito website](https://msvincognito.nl/)
- [Maastricht University department website](https://www.maastrichtuniversity.nl/about-um/faculties/humanities-and-sciences/department-data-science-knowledge-engineering)
- [Maastricht University ICT manuals](https://www.maastrichtuniversity.nl/support/ict-services/manuals-and-information)

49
src/styles/incognito.css Normal file
View file

@ -0,0 +1,49 @@
/* Official Incognito palette, applied through Starlight's public design tokens. */
:root {
--incognito-ink: #071526;
--incognito-navy: #10253d;
--incognito-primary: #155eef;
--incognito-bright: #2f7cff;
--incognito-light: #eaf2ff;
--incognito-soft: #eef4ff;
--incognito-pink: #ef3b8f;
--incognito-orange: #f57a32;
--incognito-violet: #5746d8;
--sl-color-accent-low: #10253d;
--sl-color-accent: #155eef;
--sl-color-accent-high: #eaf2ff;
--sl-color-text-accent: #2f7cff;
--sl-color-bg-accent: #eaf2ff;
}
:root[data-theme='light'] {
--sl-color-text: #10253d;
--sl-color-text-accent: #155eef;
--sl-color-accent-low: #eef4ff;
--sl-color-accent: #155eef;
--sl-color-accent-high: #10253d;
--sl-color-bg-accent: #155eef;
}
.status-empty,
.status-missing {
border-inline-start: 0.25rem solid var(--incognito-violet);
border-radius: 0.25rem;
padding: 0.875rem 1rem;
}
.status-empty {
background: var(--incognito-soft);
color: var(--incognito-navy);
}
.status-missing {
background: color-mix(in srgb, var(--incognito-orange) 13%, transparent);
border-inline-start-color: var(--incognito-orange);
}
:root:not([data-theme='light']) .status-empty {
background: color-mix(in srgb, var(--incognito-violet) 22%, transparent);
color: var(--sl-color-gray-1);
}

View file

@ -1,5 +1,5 @@
import assert from 'node:assert/strict'; import assert from 'node:assert/strict';
import { readFile } from 'node:fs/promises'; import { readFile, stat } from 'node:fs/promises';
import test from 'node:test'; import test from 'node:test';
test('package scripts expose the local workflow', async () => { test('package scripts expose the local workflow', async () => {
@ -16,3 +16,45 @@ test('Astro configuration is environment-portable', async () => {
assert.match(config, /process\.env\.BASE/); assert.match(config, /process\.env\.BASE/);
assert.match(config, /starlight\(/); assert.match(config, /starlight\(/);
}); });
test('Incognito branding assets and configuration are present', async () => {
for (const asset of [
'public/favicon.ico',
'src/assets/logo.svg',
'src/assets/logo-dark.png',
]) {
const details = await stat(asset);
assert.ok(details.size > 0, `${asset} should not be empty`);
}
const config = await readFile('astro.config.mjs', 'utf8');
assert.match(config, /customCss/);
assert.match(config, /logo/);
assert.match(config, /dark:\s*'\.\/src\/assets\/logo\.svg'/);
assert.match(config, /light:\s*'\.\/src\/assets\/logo-dark\.png'/);
assert.match(config, /favicon/);
assert.match(config, /https:\/\/msvincognito\.nl\//);
});
test('the landing and association pages are available', async () => {
for (const page of [
'src/content/docs/index.mdx',
'src/content/docs/about-incognito.md',
]) {
const details = await stat(page);
assert.ok(details.size > 0, `${page} should not be empty`);
}
});
test('landing page navigation uses the migration manifest destinations', async () => {
const landingPage = await readFile('src/content/docs/index.mdx', 'utf8');
for (const destination of [
'./bachelor/',
'./master-ai/',
'./master-dsdm/',
'./useful-information/',
'./about-incognito/',
]) {
assert.ok(landingPage.includes(`href="${destination}"`), `missing ${destination}`);
}
});