feat: add Incognito branding and wiki landing pages
This commit is contained in:
parent
6791b9b96c
commit
25db9a8c3f
10 changed files with 277 additions and 5 deletions
|
|
@ -14,6 +14,24 @@ export default defineConfig({
|
|||
description: 'Academic knowledge and student resources maintained by MSV Incognito.',
|
||||
lastUpdated: true,
|
||||
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
23
docs/brand-sources.md
Normal 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
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
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
75
src/assets/logo.svg
Normal 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 |
|
|
@ -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: [] },
|
||||
];
|
||||
|
|
|
|||
10
src/content/docs/about-incognito.md
Normal file
10
src/content/docs/about-incognito.md
Normal 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.
|
||||
|
|
@ -1,6 +1,54 @@
|
|||
---
|
||||
title: Home
|
||||
description: Academic knowledge and student resources maintained by MSV Incognito.
|
||||
title: Incognito Wiki
|
||||
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 master’s programme." />
|
||||
<LinkCard title="Master DSDM" href="./master-dsdm/" description="Resources for the Data Science for Decision Making master’s 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 bachelor’s 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.
|
||||
|
||||
### Master’s 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
49
src/styles/incognito.css
Normal 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);
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
import assert from 'node:assert/strict';
|
||||
import { readFile } from 'node:fs/promises';
|
||||
import { readFile, stat } from 'node:fs/promises';
|
||||
import test from 'node:test';
|
||||
|
||||
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, /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}`);
|
||||
}
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue