somewhat better

This commit is contained in:
2023-12-22 22:14:14 +01:00
parent 06fe6bc0fe
commit 11b3185cea
30 changed files with 318 additions and 211 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

View 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 857 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

View 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
View 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"
}

View File

@ -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">

View 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>

View File

@ -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
View 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
View 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>

View File

@ -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
View File

View 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>

View File

@ -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 ?

View 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.

View File

@ -1,3 +1,6 @@
<svelte:head>
<title>Contact</title>
</svelte:head>
<script>
import Info from "$lib/components/Info.svelte"
</script>

View File

@ -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";

View File

@ -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.

View File

@ -5,6 +5,11 @@
let members = Membres;
shuffleArray(members);
</script>
<svelte:head>
<title>Membres</title>
</svelte:head>
# Membres

View File

@ -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";

View File

@ -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";

View File

@ -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";

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -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)],