somewhat better
BIN
public/favicon/android-chrome-192x192.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
public/favicon/android-chrome-512x512.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
public/favicon/apple-touch-icon.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
9
public/favicon/browserconfig.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<browserconfig>
|
||||
<msapplication>
|
||||
<tile>
|
||||
<square150x150logo src="/mstile-150x150.png"/>
|
||||
<TileColor>#ffc40d</TileColor>
|
||||
</tile>
|
||||
</msapplication>
|
||||
</browserconfig>
|
||||
BIN
public/favicon/favicon-16x16.png
Normal file
|
After Width: | Height: | Size: 857 B |
BIN
public/favicon/favicon-32x32.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
public/favicon/mstile-150x150.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
16
public/favicon/safari-pinned-tab.svg
Normal file
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||
width="1350.000000pt" height="1350.000000pt" viewBox="0 0 1350.000000 1350.000000"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
<metadata>
|
||||
Created by potrace 1.14, written by Peter Selinger 2001-2017
|
||||
</metadata>
|
||||
<g transform="translate(0.000000,1350.000000) scale(0.100000,-0.100000)"
|
||||
fill="#000000" stroke="none">
|
||||
<path d="M13310 8119 c-1618 -85 -3061 -244 -4722 -519 -1678 -279 -3360 -641
|
||||
-5698 -1226 -623 -156 -995 -251 -2467 -630 l-423 -109 0 -2117 0 -2118 6750
|
||||
0 6750 0 0 3365 c0 3199 -1 3365 -17 3364 -10 -1 -88 -6 -173 -10z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 745 B |
19
public/site.webmanifest
Normal file
@ -0,0 +1,19 @@
|
||||
{
|
||||
"name": "Livecoding.fr",
|
||||
"short_name": "Livecoding.fr",
|
||||
"icons": [
|
||||
{
|
||||
"src": "favicon/android-chrome-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "favicon/android-chrome-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"theme_color": "#ffffff",
|
||||
"background_color": "#ffffff",
|
||||
"display": "standalone"
|
||||
}
|
||||
@ -4,6 +4,7 @@
|
||||
<meta charset="utf-8" />
|
||||
<link rel="icon" href="%sveltekit.assets%/favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
%sveltekit.head%
|
||||
</head>
|
||||
<body data-sveltekit-preload-data="hover">
|
||||
|
||||
86
src/lib/components/TitleBar.svelte
Normal file
@ -0,0 +1,86 @@
|
||||
<script lang="ts">
|
||||
export let data;
|
||||
const pages = data.pages;
|
||||
let active_page = pages["accueil"];
|
||||
function changePage(pageName: string): void {
|
||||
const pageKey = pageName.toLowerCase();
|
||||
if (pages[pageKey as keyof typeof pages]) {
|
||||
active_page = pages[pageKey as keyof typeof pages];
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<nav class="pl-8 py-2 md:flex md:justify-between md:items-center pr-8">
|
||||
<div class="flex items-center justify-between">
|
||||
<a
|
||||
on:click={() => changePage("Accueil")}
|
||||
class="text-3xl font-extrabold text-transparent bg-clip-text bg-gradient-to-r from-orange-300 to-orange-200 uppercase"
|
||||
>livecoding.fr</a
|
||||
>
|
||||
<!-- Mobile menu button -->
|
||||
<div on:click={toggleNavbar} class="flex md:hidden">
|
||||
<button
|
||||
type="button"
|
||||
class="text-gray-100 hover:text-gray-400 focus:outline-none focus:text-gray-400"
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="1.5"
|
||||
stroke="currentColor"
|
||||
class="w-6 h-6"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"
|
||||
/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Mobile Menu open: "block", Menu closed: "hidden" -->
|
||||
<div
|
||||
class="flex-col mt-8 space-y-4 md:flex md:space-y-0 md:flex-row md:items-center md:space-x-10 md:mt-0 {showMenu
|
||||
? 'flex'
|
||||
: 'hidden'}"
|
||||
>
|
||||
<a
|
||||
on:click={() => changePage("Evenements")}
|
||||
class="text-gray-100 hover:text-orange-300 flex md:hidden"
|
||||
>Évènements</a
|
||||
>
|
||||
<a
|
||||
on:click={() => changePage("Membres")}
|
||||
class="text-gray-100 hover:text-orange-300 flex md:hidden">Membres</a
|
||||
>
|
||||
<a
|
||||
on:click={() => changePage("Outils")}
|
||||
class="text-gray-100 hover:text-orange-300 flex md:hidden">Outils</a
|
||||
>
|
||||
<a
|
||||
on:click={() => changePage("Guides")}
|
||||
class="text-gray-100 hover:text-orange-300 flex md:hidden">Guides</a
|
||||
>
|
||||
<a
|
||||
on:click={() => changePage("Réseaux")}
|
||||
class="text-gray-100 hover:text-orange-300 flex md:hidden">Réseaux</a
|
||||
>
|
||||
<a
|
||||
on:click={() => changePage("Ressources")}
|
||||
class="text-gray-100 hover:text-orange-300 flex md:hidden"
|
||||
>Ressources</a
|
||||
>
|
||||
<a
|
||||
on:click={() => changePage("Presse")}
|
||||
class="text-gray-100 hover:text-orange-300 flex md:hidden">Presse</a
|
||||
>
|
||||
<a
|
||||
on:click={() => changePage("Contact")}
|
||||
class="text-gray-100 hover:text-orange-300 flex md:hidden">Contact</a
|
||||
>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
@ -1,6 +0,0 @@
|
||||
export const shuffleArray = (array) => {
|
||||
for (let i = array.length - 1; i > 0; i--) {
|
||||
const j = Math.floor(Math.random() * (i + 1));
|
||||
[array[i], array[j]] = [array[j], array[i]];
|
||||
}
|
||||
};
|
||||
13
src/lib/utils.ts
Normal file
@ -0,0 +1,13 @@
|
||||
export const shuffleArray = (array: any[]) => {
|
||||
for (let i = array.length - 1; i > 0; i--) {
|
||||
const j = Math.floor(Math.random() * (i + 1));
|
||||
[array[i], array[j]] = [array[j], array[i]];
|
||||
}
|
||||
};
|
||||
|
||||
function changePage(pages: any, pageName: string): void {
|
||||
const pageKey = pageName.toLowerCase();
|
||||
if (pages[pageKey as keyof typeof pages]) {
|
||||
active_page = pages[pageKey as keyof typeof pages];
|
||||
}
|
||||
}
|
||||
8
src/routes/+error.svelte
Normal file
@ -0,0 +1,8 @@
|
||||
<script lang="ts">
|
||||
export let data;
|
||||
const pages = data.pages;
|
||||
let showMenu = false;
|
||||
|
||||
</script>
|
||||
|
||||
<h1 class="text-center">404: Page non trouvée !</h1>
|
||||
@ -1,6 +1,112 @@
|
||||
<script>
|
||||
<script lang="ts">
|
||||
export const prerender = true;
|
||||
import "../app.postcss";
|
||||
let showMenu = false;
|
||||
function toggleNavbar() { showMenu = !showMenu; }
|
||||
</script>
|
||||
|
||||
<slot />
|
||||
<div>
|
||||
<div class="bg-neutral-800 dark:bg-base-300">
|
||||
<nav class="pl-8 py-2 md:flex md:justify-between md:items-center pr-8">
|
||||
<div class="flex items-center justify-between">
|
||||
<a href="/" class="text-3xl font-extrabold text-transparent bg-clip-text bg-gradient-to-r from-orange-300 to-orange-200 uppercase"
|
||||
>livecoding.fr</a
|
||||
>
|
||||
<!-- Mobile menu button -->
|
||||
<div on:click={toggleNavbar} class="flex md:hidden">
|
||||
<button type="button" class="text-gray-100 hover:text-gray-400 focus:outline-none focus:text-gray-400" >
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="1.5"
|
||||
stroke="currentColor"
|
||||
class="w-6 h-6"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"
|
||||
/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Mobile Menu open: "block", Menu closed: "hidden" -->
|
||||
<div
|
||||
class="flex-col mt-8 space-y-4 md:flex md:space-y-0 md:flex-row md:items-center md:space-x-10 md:mt-0 {showMenu
|
||||
? 'flex'
|
||||
: 'hidden'}"
|
||||
>
|
||||
<a href="evenements/" class="text-gray-100 hover:text-orange-300 flex md:hidden" >Évènements</a>
|
||||
<a href="membres" class="text-gray-100 hover:text-orange-300 flex md:hidden">Membres</a>
|
||||
<a href="outils" class="text-gray-100 hover:text-orange-300 flex md:hidden">Outils</a>
|
||||
<a href="guides" class="text-gray-100 hover:text-orange-300 flex md:hidden">Guides</a>
|
||||
<a href="reseaux" class="text-gray-100 hover:text-orange-300 flex md:hidden">Réseaux</a>
|
||||
<a href="ressources" class="text-gray-100 hover:text-orange-300 flex md:hidden">Ressources</a>
|
||||
<a href="presse" class="text-gray-100 hover:text-orange-300 flex md:hidden">Presse</a>
|
||||
<a href="contacts" class="text-gray-100 hover:text-orange-300 flex md:hidden">Contact</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<main class="bg-gray-100 dark:bg-base-100">
|
||||
<div class="drawer lg:drawer-open">
|
||||
<input id="my-drawer-2" type="checkbox" class="drawer-toggle" />
|
||||
<div class="drawer-content space-y-4 flex flex-col lg:px-16 px-4 py-8">
|
||||
<slot />
|
||||
</div>
|
||||
<div class="drawer-side">
|
||||
<label
|
||||
for="my-drawer-2"
|
||||
aria-label="close sidebar"
|
||||
class="drawer-overlay"
|
||||
/>
|
||||
<ul
|
||||
class="menu p-4 w-40 min-h-full bg-neutral-800 dark:bg-base-300 text-base-content"
|
||||
>
|
||||
<li class="text-xl">
|
||||
<a class="text-white hover:text-orange-300" href="evenements">Évènements</a>
|
||||
</li>
|
||||
<li class="text-xl">
|
||||
<a class="text-white hover:text-orange-300" href="membres">Membres</a >
|
||||
</li>
|
||||
<li class="text-xl">
|
||||
<a
|
||||
class="text-white hover:text-orange-300" href="outils">Outils</a>
|
||||
</li>
|
||||
<li class="text-xl">
|
||||
<a class="text-white hover:text-orange-300" href="guides">Guides</a>
|
||||
</li>
|
||||
|
||||
<li class="text-xl">
|
||||
<a class="text-white hover:text-orange-300" href="reseaux">Réseaux</a>
|
||||
</li>
|
||||
<li class="text-xl">
|
||||
<a class="text-white hover:text-orange-300" href="ressources">Ressources</a>
|
||||
</li>
|
||||
|
||||
<li class="text-xl">
|
||||
<a class="text-white hover:text-orange-300" href="presse">Presse</a>
|
||||
</li>
|
||||
<li class="text-xl">
|
||||
<a class="text-white hover:text-orange-300" href="contacts">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
|
||||
<footer
|
||||
class="footer ml-0 pl-0 pb-4 pt-4 bg-neutral-800 dark:bg-base-300 justify-between pr-16"
|
||||
>
|
||||
<p class="indent-4 text-bold text-white">Raphaël Forment</p>
|
||||
<p>
|
||||
<a class="pl-4" href="https://github.com/Bubobubobubobubo/livecodingfr"
|
||||
>GitHub</a
|
||||
>
|
||||
</p>
|
||||
</footer>
|
||||
|
||||
0
src/routes/+layout.ts
Normal file
@ -1,200 +0,0 @@
|
||||
<script lang="ts">
|
||||
import Accueil from "$lib/base/Accueil.svelte.md";
|
||||
import Evenements from "$lib/base/Evenements.svelte.md";
|
||||
import Contact from "$lib/base/Contact.svelte.md";
|
||||
import Presse from "$lib/base/Presse.svelte.md";
|
||||
import Membres from "$lib/base/Membres.svelte.md";
|
||||
import Outils from "$lib/base/Outils.svelte.md";
|
||||
import Reseaux from "$lib/base/Reseaux.svelte.md";
|
||||
import Ressources from "$lib/base/Ressources.svelte.md";
|
||||
import Guides from "$lib/base/Guides.svelte.md";
|
||||
const pages = {
|
||||
accueil: Accueil,
|
||||
evenements: Evenements,
|
||||
membres: Membres,
|
||||
outils: Outils,
|
||||
guides: Guides,
|
||||
réseaux: Reseaux,
|
||||
presse: Presse,
|
||||
ressources: Ressources,
|
||||
contact: Contact,
|
||||
};
|
||||
let active_page = pages["accueil"];
|
||||
|
||||
let showMenu = false;
|
||||
|
||||
function toggleNavbar() {
|
||||
showMenu = !showMenu;
|
||||
}
|
||||
|
||||
/**
|
||||
* Changes the active page based on the provided page name.
|
||||
*
|
||||
* @param {string} pageName - The name of the page to activate.
|
||||
*/
|
||||
function changePage(pageName: string): void {
|
||||
const pageKey = pageName.toLowerCase(); // Convert to lowercase to match the keys in the pages object.
|
||||
if (pages[pageKey]) {
|
||||
active_page = pages[pageKey];
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<div>
|
||||
<div class="bg-neutral-800 dark:bg-base-300">
|
||||
<nav class="pl-8 py-2 md:flex md:justify-between md:items-center pr-8">
|
||||
<div class="flex items-center justify-between">
|
||||
<a
|
||||
on:click={() => changePage("Accueil")}
|
||||
class="text-3xl font-extrabold text-transparent bg-clip-text bg-gradient-to-r from-orange-300 to-orange-200 uppercase"
|
||||
>livecoding.fr</a
|
||||
>
|
||||
<!-- Mobile menu button -->
|
||||
<div on:click={toggleNavbar} class="flex md:hidden">
|
||||
<button
|
||||
type="button"
|
||||
class="text-gray-100 hover:text-gray-400 focus:outline-none focus:text-gray-400"
|
||||
>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="1.5"
|
||||
stroke="currentColor"
|
||||
class="w-6 h-6"
|
||||
>
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"
|
||||
/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Mobile Menu open: "block", Menu closed: "hidden" -->
|
||||
<div
|
||||
class="flex-col mt-8 space-y-4 md:flex md:space-y-0 md:flex-row md:items-center md:space-x-10 md:mt-0 {showMenu
|
||||
? 'flex'
|
||||
: 'hidden'}"
|
||||
>
|
||||
<a
|
||||
on:click={() => changePage("Evenements")}
|
||||
class="text-gray-100 hover:text-orange-300 flex md:hidden"
|
||||
>Évènements</a
|
||||
>
|
||||
<a
|
||||
on:click={() => changePage("Membres")}
|
||||
class="text-gray-100 hover:text-orange-300 flex md:hidden">Membres</a
|
||||
>
|
||||
<a
|
||||
on:click={() => changePage("Outils")}
|
||||
class="text-gray-100 hover:text-orange-300 flex md:hidden">Outils</a
|
||||
>
|
||||
<a
|
||||
on:click={() => changePage("Guides")}
|
||||
class="text-gray-100 hover:text-orange-300 flex md:hidden">Guides</a
|
||||
>
|
||||
<a
|
||||
on:click={() => changePage("Réseaux")}
|
||||
class="text-gray-100 hover:text-orange-300 flex md:hidden">Réseaux</a
|
||||
>
|
||||
<a
|
||||
on:click={() => changePage("Ressources")}
|
||||
class="text-gray-100 hover:text-orange-300 flex md:hidden"
|
||||
>Ressources</a
|
||||
>
|
||||
<a
|
||||
on:click={() => changePage("Presse")}
|
||||
class="text-gray-100 hover:text-orange-300 flex md:hidden">Presse</a
|
||||
>
|
||||
<a
|
||||
on:click={() => changePage("Contact")}
|
||||
class="text-gray-100 hover:text-orange-300 flex md:hidden">Contact</a
|
||||
>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<main class="bg-gray-100 dark:bg-base-100">
|
||||
<div class="drawer lg:drawer-open">
|
||||
<input id="my-drawer-2" type="checkbox" class="drawer-toggle" />
|
||||
<div class="drawer-content space-y-4 flex flex-col lg:px-16 px-4 py-8">
|
||||
<svelte:component this={active_page} />
|
||||
</div>
|
||||
<div class="drawer-side">
|
||||
<label
|
||||
for="my-drawer-2"
|
||||
aria-label="close sidebar"
|
||||
class="drawer-overlay"
|
||||
/>
|
||||
<ul
|
||||
class="menu p-4 w-40 min-h-full bg-neutral-800 dark:bg-base-300 text-base-content"
|
||||
>
|
||||
<li class="text-xl">
|
||||
<a
|
||||
class="text-white hover:text-orange-300"
|
||||
on:click={() => changePage("Evenements")}>Évènements</a
|
||||
>
|
||||
</li>
|
||||
<li class="text-xl">
|
||||
<a
|
||||
class="text-white hover:text-orange-300"
|
||||
on:click={() => changePage("Membres")}>Membres</a
|
||||
>
|
||||
</li>
|
||||
<li class="text-xl">
|
||||
<a
|
||||
class="text-white hover:text-orange-300"
|
||||
on:click={() => changePage("Outils")}>Outils</a
|
||||
>
|
||||
</li>
|
||||
<li class="text-xl">
|
||||
<a
|
||||
class="text-white hover:text-orange-300"
|
||||
on:click={() => changePage("Guides")}>Guides</a
|
||||
>
|
||||
</li>
|
||||
|
||||
<li class="text-xl">
|
||||
<a
|
||||
class="text-white hover:text-orange-300"
|
||||
on:click={() => changePage("Réseaux")}>Réseaux</a
|
||||
>
|
||||
</li>
|
||||
<li class="text-xl">
|
||||
<a
|
||||
class="text-white hover:text-orange-300"
|
||||
on:click={() => changePage("Ressources")}>Ressources</a
|
||||
>
|
||||
</li>
|
||||
|
||||
<li class="text-xl">
|
||||
<a
|
||||
class="text-white hover:text-orange-300"
|
||||
on:click={() => changePage("Presse")}>Presse</a
|
||||
>
|
||||
</li>
|
||||
<li class="text-xl">
|
||||
<a
|
||||
class="text-white hover:text-orange-300"
|
||||
on:click={() => changePage("Contact")}>Contact</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer
|
||||
class="footer ml-0 pl-0 pb-4 pt-4 bg-neutral-800 dark:bg-base-300 justify-between pr-16"
|
||||
>
|
||||
<p class="indent-4 text-bold text-white">Raphaël Forment</p>
|
||||
<p>
|
||||
<a class="pl-4" href="https://github.com/Bubobubobubobubo/livecodingfr"
|
||||
>GitHub</a
|
||||
>
|
||||
</p>
|
||||
</footer>
|
||||
</main>
|
||||
@ -1,6 +1,11 @@
|
||||
<script>
|
||||
import Info from "$lib/components/Info.svelte"
|
||||
</script>
|
||||
<svelte:head>
|
||||
<title>LC.FR</title>
|
||||
</svelte:head>
|
||||
|
||||
|
||||
|
||||
# Qu'est-ce que le live-coding ?
|
||||
|
||||
23
src/routes/accueil/+page.svelte.md
Normal file
@ -0,0 +1,23 @@
|
||||
<script>
|
||||
import Info from "$lib/components/Info.svelte"
|
||||
</script>
|
||||
<svelte:head>
|
||||
<title>Accueil</title>
|
||||
</svelte:head>
|
||||
|
||||
|
||||
# Qu'est-ce que le live-coding ?
|
||||
|
||||
<Info info="Le <i>live coding</i> est une pratique artistique qui fait de l'acte de programmation un geste expressif et performatif. Les <i>live coders</i> considèrent l'interface de programmation comme un instrument de musique. Le <i>live coding</i> est un art au croisement entre synthèse sonore, improvisation musicale et musique algorithmique générative.<br><br> Le <i>live coding</i> est au croisement de plusieurs arts et encourage des approches transdisciplinaires de la création : musique, arts visuels, informatique, jeux vidéos, danse, etc. Plus largement, le <i>live coding</i> est un domaine critique qui encourage les artistes à repenser leur rapport à l'informatique. Le <i>live coding</i> est traversé par la culture <i>hacker</i>, par la philosophie du logiciel libre et <i>open source</i>. Il souhaite également développer une nouvelle forme d'expressivité au sein des arts, en considérant l'ordinateur comme une interface pour la <i>programmation exploratoire</i> ou <i>programmation conversationnelle</i>." markdown=false />
|
||||
|
||||
Historiquement, le _live coding_ est un type de création porté par le collectif [TOPLAP](https://toplap.org). Il existe de nombreux groupes en Europe et dans le monde qui sont issus de ce collectif : [TOPLAP Barcelona](https://toplap.cat/en/home), [Livecode NYC](https://livecode.nyc/), parmi d'autres. La pratique du _live coding_ s'est popularisée au travers du [Manifeste TOPLAP]() et des [Algoraves](https://algorave.com) (_algorithmic rave parties_). Il s'agit pourtant de _l'arbre qui cache la forêt_ : le _live coding_ est une pratique qui existe depuis la fin des années 1980, et que l'on retrouve un peu partout dans les arts numériques.
|
||||
|
||||
# À propos de ce site
|
||||
|
||||
Ce site est une collection de ressources. Il est conçu pour combler un vide. La communauté francophone du _live coding_ ne possédait pas de site permettant aux artistes et musiciens français de se trouver et d'échanger facilement. Disposer d'un site dédié permet de rompre avec la nécessité de se tenir informé sans cesse sur les réseaux sociaux sous peine de manquer une information. Ce site est conçu et maintenu par [Raphaël Forment](https://raphaelforment.fr) (BuboBubo).
|
||||
|
||||
L'information sur chacune des pages est randomisée pour favoriser la découverte.
|
||||
|
||||
# Comment contribuer ?
|
||||
|
||||
Le site est hébergé sur [GitHub](https://github.com/Bubobubobubobubo/livecodingfr). Pour ajouter une information au site, veuillez créer une [Pull Request](https://docs.github.com/fr/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request). Vous pouvez aussi contacter l'un des membres qui se chargera de transmettre l'information.
|
||||
@ -1,3 +1,6 @@
|
||||
<svelte:head>
|
||||
<title>Contact</title>
|
||||
</svelte:head>
|
||||
<script>
|
||||
import Info from "$lib/components/Info.svelte"
|
||||
</script>
|
||||
@ -1,3 +1,6 @@
|
||||
<svelte:head>
|
||||
<title>Évènements</title>
|
||||
</svelte:head>
|
||||
<script>
|
||||
import Calendar from "$lib/components/Calendar.svelte";
|
||||
import Info from "$lib/components/Info.svelte";
|
||||
@ -1,4 +1,8 @@
|
||||
# Tutorials
|
||||
<svelte:head>
|
||||
<title>Guides</title>
|
||||
</svelte:head>
|
||||
|
||||
# Guides
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla nec odio et
|
||||
quam. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla nec.
|
||||
quam. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla nec.
|
||||
@ -5,6 +5,11 @@
|
||||
let members = Membres;
|
||||
shuffleArray(members);
|
||||
</script>
|
||||
<svelte:head>
|
||||
<title>Membres</title>
|
||||
</svelte:head>
|
||||
|
||||
|
||||
|
||||
# Membres
|
||||
|
||||
@ -1,3 +1,6 @@
|
||||
<svelte:head>
|
||||
<title>Outils</title>
|
||||
</svelte:head>
|
||||
<script>
|
||||
import SoftwareCard from "$lib/components/SoftwareCard.svelte";
|
||||
import Software from "$lib/data/outils.json";
|
||||
@ -1,3 +1,6 @@
|
||||
<svelte:head>
|
||||
<title>Presse</title>
|
||||
</svelte:head>
|
||||
<script>
|
||||
import Press from "$lib/components/Press.svelte";
|
||||
import Presse from "$lib/data/presse.json";
|
||||
@ -1,3 +1,6 @@
|
||||
<svelte:head>
|
||||
<title>Réseaux</title>
|
||||
</svelte:head>
|
||||
<script>
|
||||
import SoftwareCard from "$lib/components/SoftwareCard.svelte";
|
||||
import Info from "$lib/components/Info.svelte";
|
||||
@ -1,3 +1,6 @@
|
||||
<svelte:head>
|
||||
<title>Ressources</title>
|
||||
</svelte:head>
|
||||
<script>
|
||||
import Info from "$lib/components/Info.svelte";
|
||||
</script>
|
||||
BIN
static/favicon.ico
Normal file
|
After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.2 KiB |
@ -6,7 +6,7 @@ import { vitePreprocess } from "@sveltejs/kit/vite";
|
||||
/** @type {import('@sveltejs/kit').Config} */
|
||||
const config = {
|
||||
extensions: [".svelte", ...mdsvexConfig.extensions],
|
||||
|
||||
publicDir: "public",
|
||||
// Consult https://kit.svelte.dev/docs/integrations#preprocessors
|
||||
// for more information about preprocessors
|
||||
preprocess: [vitePreprocess({}), mdsvex(mdsvexConfig)],
|
||||
|
||||