first commit

This commit is contained in:
William Diakite 2025-03-24 11:51:24 -04:00
commit 5af43e867d
24 changed files with 4067 additions and 0 deletions

23
.gitignore vendored Normal file
View file

@ -0,0 +1,23 @@
node_modules
# Output
.output
.vercel
.netlify
.wrangler
/.svelte-kit
/build
# OS
.DS_Store
Thumbs.db
# Env
.env
.env.*
!.env.example
!.env.test
# Vite
vite.config.js.timestamp-*
vite.config.ts.timestamp-*

1
.npmrc Normal file
View file

@ -0,0 +1 @@
engine-strict=true

6
.prettierignore Normal file
View file

@ -0,0 +1,6 @@
# Package Managers
package-lock.json
pnpm-lock.yaml
yarn.lock
bun.lock
bun.lockb

15
.prettierrc Normal file
View file

@ -0,0 +1,15 @@
{
"useTabs": true,
"singleQuote": true,
"trailingComma": "none",
"printWidth": 100,
"plugins": ["prettier-plugin-svelte"],
"overrides": [
{
"files": "*.svelte",
"options": {
"parser": "svelte"
}
}
]
}

38
README.md Normal file
View file

@ -0,0 +1,38 @@
# sv
Everything you need to build a Svelte project, powered by [`sv`](https://github.com/sveltejs/cli).
## Creating a project
If you're seeing this, you've probably already done this step. Congrats!
```bash
# create a new project in the current directory
npx sv create
# create a new project in my-app
npx sv create my-app
```
## Developing
Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
```bash
npm run dev
# or start the server and open the app in a new browser tab
npm run dev -- --open
```
## Building
To create a production version of your app:
```bash
npm run build
```
You can preview the production build with `npm run preview`.
> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment.

37
eslint.config.js Normal file
View file

@ -0,0 +1,37 @@
import prettier from 'eslint-config-prettier';
import js from '@eslint/js';
import { includeIgnoreFile } from '@eslint/compat';
import svelte from 'eslint-plugin-svelte';
import globals from 'globals';
import { fileURLToPath } from 'node:url';
import ts from 'typescript-eslint';
import svelteConfig from './svelte.config.js';
const gitignorePath = fileURLToPath(new URL('./.gitignore', import.meta.url));
export default ts.config(
includeIgnoreFile(gitignorePath),
js.configs.recommended,
...ts.configs.recommended,
...svelte.configs.recommended,
prettier,
...svelte.configs.prettier,
{
languageOptions: {
globals: { ...globals.browser, ...globals.node }
},
rules: { 'no-undef': 'off' }
},
{
files: ['**/*.svelte', '**/*.svelte.ts', '**/*.svelte.js'],
ignores: ['eslint.config.js', 'svelte.config.js'],
languageOptions: {
parserOptions: {
projectService: true,
extraFileExtensions: ['.svelte'],
parser: ts.parser,
svelteConfig
}
}
}
);

3392
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

35
package.json Normal file
View file

@ -0,0 +1,35 @@
{
"name": "alliances",
"private": true,
"version": "0.0.1",
"type": "module",
"scripts": {
"dev": "vite dev",
"build": "vite build",
"preview": "vite preview",
"prepare": "svelte-kit sync || echo ''",
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
"format": "prettier --write .",
"lint": "prettier --check . && eslint ."
},
"devDependencies": {
"@eslint/compat": "^1.2.5",
"@eslint/js": "^9.18.0",
"@sveltejs/adapter-static": "^3.0.8",
"@sveltejs/kit": "^2.16.0",
"@sveltejs/vite-plugin-svelte": "^5.0.0",
"eslint": "^9.18.0",
"eslint-config-prettier": "^10.0.1",
"eslint-plugin-svelte": "^3.0.0",
"globals": "^16.0.0",
"mdsvex": "^0.12.3",
"prettier": "^3.4.2",
"prettier-plugin-svelte": "^3.3.3",
"svelte": "^5.0.0",
"svelte-check": "^4.0.0",
"typescript": "^5.0.0",
"typescript-eslint": "^8.20.0",
"vite": "^6.0.0"
}
}

13
src/app.d.ts vendored Normal file
View file

@ -0,0 +1,13 @@
// See https://svelte.dev/docs/kit/types#app.d.ts
// for information about these interfaces
declare global {
namespace App {
// interface Error {}
// interface Locals {}
// interface PageData {}
// interface PageState {}
// interface Platform {}
}
}
export {};

12
src/app.html Normal file
View file

@ -0,0 +1,12 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%sveltekit.assets%/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
%sveltekit.head%
</head>
<body data-sveltekit-preload-data="hover">
<div style="display: contents">%sveltekit.body%</div>
</body>
</html>

View file

@ -0,0 +1,10 @@
<script lang="ts">
let { document } = $props();
const metadata = document.metadata;
console.log(metadata);
</script>
<article>
<document.default />
</article>

View file

@ -0,0 +1,37 @@
---
date: 2025/03/20
start: 4:30pm
end: 6pm
---
# Territoires & spoliation
agency est la plus récente collaboration du duo parent-enfant tīná gúyáńí, composé de Glenna Cardinal et de seth cardinal dodginghorse. Elle retrace lhistoire de la perte de leur maison ancestrale, située dans la nation tsuutina, suite à une entente de transfert de terres au profit de la construction de la Southwest Calgary Ring Road. Cette éviction forcée sert de trame de fond pour explorer le déracinement et la revendication par le biais de la guérison.
En ayant recours au cinéma, à la musique et à lart visuel, la paire dartistes critiquent les institutions coloniales qui continuent de détruire les maisons matrilinéaires et de diviser les familles et les communautés. À travers un hommage touchant à leur terre/maison et à leur parenté, cette exposition envisage une nouvelle forme dagentivité; une qui soit autodéterminée, non-coloniale et non-patriarcale.
🌍 Alliances Transcoloniales Événement #1 : Spoliation
📅 Jeudi 20 mars 2025 | 16h30 18h
📍 MAI Montréal, arts interculturels
📌 3680, rue Jeanne-Mance, Montréal H2X 2K5
🍻 Suivi dun verre dans un bar coop 🤍
👉 Visite guidée de lexpo Agency
✨ Par le duo Tsuutina tīná gúyáńí : une réflexion puissante sur le déracinement, la perte de territoire et la guérison face au colonialisme.
👉 Atelier anthropologique participatif sur frontières, expropriations, luttes territoriales.
🎤 Avec :
Marguerite Chiarello (MAI)
Zaccharie Atgé (Anthropo)
Anna Houdebine & Aziz Boughedir (Alliances Transcoloniales)
💬 Étudiant·es en anthropo et histoire de lart : vous êtes les bienvenu·es !
📎 Infos : https://m-a-i.qc.ca/evenement/agency/
📲 Insta : @alliances_transcoloniales_udem

View file

@ -0,0 +1,28 @@
---
date: 2025/03/20
start: 4:30pm
end: 6pm
---
# Spoliation
agency est la plus récente collaboration du duo parent-enfant tīná gúyáńí, composé de Glenna Cardinal et de seth cardinal dodginghorse. Elle retrace lhistoire de la perte de leur maison ancestrale, située dans la nation tsuutina, suite à une entente de transfert de terres au profit de la construction de la Southwest Calgary Ring Road. Cette éviction forcée sert de trame de fond pour explorer le déracinement et la revendication par le biais de la guérison.
En ayant recours au cinéma, à la musique et à lart visuel, la paire dartistes critiquent les institutions coloniales qui continuent de détruire les maisons matrilinéaires et de diviser les familles et les communautés. À travers un hommage touchant à leur terre/maison et à leur parenté, cette exposition envisage une nouvelle forme dagentivité; une qui soit autodéterminée, non-coloniale et non-patriarcale.
🌍 Alliances Transcoloniales Événement #1 : Spoliation
📅 Jeudi 20 mars 2025 | 16h30 18h
📍 MAI Montréal, arts interculturels
📌 3680, rue Jeanne-Mance, Montréal H2X 2K5
🍻 Suivi dun verre dans un bar coop 🤍
👉 Visite guidée de lexpo Agency
✨ Par le duo Tsuutina tīná gúyáńí : une réflexion puissante sur le déracinement, la perte de territoire et la guérison face au colonialisme.
👉 Atelier anthropologique participatif sur frontières, expropriations, luttes territoriales.
🎤 Avec :
Marguerite Chiarello (MAI)
Zaccharie Atgé (Anthropo)
Anna Houdebine & Aziz Boughedir (Alliances Transcoloniales)
💬 Étudiant·es en anthropo et histoire de lart : vous êtes les bienvenu·es !
📎 Infos : https://m-a-i.qc.ca/evenement/agency/
📲 Insta : @alliances_transcoloniales_udem

1
src/lib/index.ts Normal file
View file

@ -0,0 +1 @@
// place files you want to import through the `$lib` alias in this folder.

109
src/lib/styles/fluid.css Normal file
View file

@ -0,0 +1,109 @@
body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
li,
.fluid,
textarea,
input,
select,
button,
th,
td {
--fl: 0;
--font-size-min: 14;
--font-size-max: 20;
--font-ratio-min: 1.25;
--font-ratio-max: 1.3333333333333333;
--font-width-min: 320;
--font-width-max: 1500;
--fluid-min: calc(var(--font-size-min) * pow(var(--font-ratio-min), var(--fl, 0)));
--fluid-max: calc(var(--font-size-max) * pow(var(--font-ratio-max), var(--fl, 0)));
--fluid-preferred: calc((var(--fluid-max) - var(--fluid-min)) / (var(--font-width-max) - var(--font-width-min)));
--fluid-type: clamp((var(--fluid-min) / 16) * 1rem,
((var(--fluid-min) / 16) * 1rem) - (((var(--fluid-preferred) * var(--font-width-min)) / 16) * 1rem) + (var(--fluid-preferred) * var(--variable-unit, 100vi)),
(var(--fluid-max) / 16) * 1rem);
font-size: var(--fluid-type);
}
/* This makes containers, with container queries use a cqi unit instead of vi */
.fluid-text-container {
container-type: inline-size;
--variable-unit: 100cqi;
}
h1,
.h1 {
--fl: 5;
}
h2,
.h2 {
--fl: 4;
}
h3,
.h3 {
--fl: 3;
}
h4,
.h4 {
--fl: 2;
}
h5,
.h5 {
--fl: 1;
}
h6,
.h6 {
--fl: 0;
}
p,
li,
body {
--fl: 0;
}
.fs-xs {
--fl: -1;
}
.fs-base {
--fl: 0;
}
.fs-s {
--fl: 1;
}
.fs-m {
--fl: 2;
}
.fs-l {
--fl: 3;
}
.fs-xl {
--fl: 4;
}
.fs-xxl {
--fl: 5;
}
.fs-xxxl {
--fl: 6;
}
.fs-xxxxl {
--fl: 7;
}

135
src/lib/styles/reset.css Normal file
View file

@ -0,0 +1,135 @@
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
display: block;
}
body {
line-height: 1;
}
ol,
ul {
list-style: none;
}
blockquote,
q {
quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}

99
src/lib/styles/styles.css Normal file
View file

@ -0,0 +1,99 @@
@import 'reset.css';
/* @import 'fluid.css'; */
@import url('https://fonts.googleapis.com/css2?family=Inclusive+Sans:ital,wght@0,300..700;1,300..700&display=swap');
html {
--bg-color: rgb(20, 153, 84);
font-family: "Inclusive Sans", sans-serif;
color: white;
text-transform: lowercase;
box-sizing: border-box;
background-color: var(--bg-color);
width: 100%;
}
body {
width: 100%;
}
header {
position: fixed;
height: max-content;
bottom: 0;
padding-left: 2rem;
&>* {}
& h1 {
font-weight: 500;
border-top: solid 1px white;
font-size: 10rem;
background-color: var(--bg-color);
letter-spacing: 0.6rem;
}
}
h2 {
font-size: 1.1rem;
}
nav {
& ul {
display: flex;
flex-direction: column;
gap: 1rem;
margin-bottom: 2rem;
}
& a {
color: white;
text-decoration: none;
font-weight: 400;
letter-spacing: 0.15rem;
}
}
section {
position: absolute;
left: 50%;
/* max-width: 68ch; */
padding: 1rem 2rem 42vh 0;
z-index: -1;
& h2 {
margin-bottom: 3rem;
margin-top: 1rem;
}
}
article h1 {
font-size: 5rem;
font-style: italic;
margin-bottom: 1rem;
&::before {
content: '#'
}
}
article+article {
margin-top: 6rem;
}
article p {
font-size: 1.1rem;
line-height: 1.3rem;
/* font-weight: 400; */
&+p {
margin-top: 0.8rem;
}
}

27
src/routes/+page.svelte Normal file
View file

@ -0,0 +1,27 @@
<script lang="ts">
import '$lib/styles/styles.css';
import Article from '$lib/components/Article.svelte';
let { data } = $props();
$inspect(data.documents);
</script>
<header>
<nav>
<ul>
<li><a href="#events">Événements</a></li>
<li><a href="#archives">Archives</a></li>
<li><a href="#">Déclaration de principes</a></li>
<li><a href="#">bibliographie sélective</a></li>
</ul>
</nav>
<h1>Alliances Transcoloniales</h1>
</header>
<section>
<h2 id="events">Événements</h2>
{#each data.documents as d}
<Article document={d} />
{/each}
<h2 id="archives">Archives</h2>
</section>

6
src/routes/+page.ts Normal file
View file

@ -0,0 +1,6 @@
export const load = async () => {
const documents = import.meta.glob('$lib/content/events/*.md', { eager: true })
return {
documents: Object.values(documents)
}
}

7
src/routes/layout.svelte Normal file
View file

@ -0,0 +1,7 @@
<script lang="ts">
let { children } = $props();
</script>
<div>
{@render children()}
</div>

BIN
static/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

11
svelte.config.js Normal file
View file

@ -0,0 +1,11 @@
import { mdsvex } from 'mdsvex';
import adapter from '@sveltejs/adapter-static';
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
const config = {
preprocess: [vitePreprocess(), mdsvex({ extensions: ['.svx', '.md'] })],
kit: { adapter: adapter() },
extensions: ['.svelte', '.svx', '.md']
};
export default config;

19
tsconfig.json Normal file
View file

@ -0,0 +1,19 @@
{
"extends": "./.svelte-kit/tsconfig.json",
"compilerOptions": {
"allowJs": true,
"checkJs": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"resolveJsonModule": true,
"skipLibCheck": true,
"sourceMap": true,
"strict": true,
"moduleResolution": "bundler"
}
// Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias
// except $lib which is handled by https://svelte.dev/docs/kit/configuration#files
//
// If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
// from the referenced tsconfig.json - TypeScript does not merge them in
}

6
vite.config.ts Normal file
View file

@ -0,0 +1,6 @@
import { sveltekit } from '@sveltejs/kit/vite';
import { defineConfig } from 'vite';
export default defineConfig({
plugins: [sveltekit()]
});