Compare commits

...

7 commits

10 changed files with 439 additions and 7 deletions

View file

@ -38,3 +38,7 @@ PDF can be generated thanks to `pandoc` and the good old `curl` this way:
```sh
curl -s https://md.interhacker.space/u2VNUSO6S36xx5Ensc3FCw/download | pandoc -V geometry:margin=3cm -o assets/Camp-Interhack_Statuts.pdf
```
## Generation de la page Guide.
La page Guide est générée depuis un Hedgedocs, en markdown, via le fichier update-guide.sh qui utilise le fichier guide.template.html. Le contenu de la page est donc un HTML basique in fine.

View file

@ -18,22 +18,28 @@ html, body {
margin: 0;
}
img {
max-width: 100%;
}
a {
text-decoration: none;
color: black;
}
main {
background-color: #413f43;
background-image: url(../assets/background.jpg);
background-repeat: no-repeat;
background-size: cover;
/* background-color: #413f43;*/
background: #058C9E;
background: radial-gradient(at left top, #058C9E, #BC5180);
/* background-repeat: no-repeat;
background-size: cover; */
}
main h1, main h2 {
main h1, main h2, main h3 {
font-family: Banquise;
color: white;
z-index: 2;
}
main h1 {
@ -55,6 +61,7 @@ nav a, footer a, aside a {
font-family: Dymo;
font-size: 3em;
display: inline-block;
margin-right: 1em;
}
nav a.current {
@ -72,10 +79,12 @@ footer {
text-align: center;
display: flex;
justify-content: space-evenly;
align-items: end;
}
@media (max-width: 600px) {
footer {
flex-direction: column;
align-items: center;
}
}

View file

@ -17,6 +17,28 @@ main img.draggable {
filter: drop-shadow(5px 3px 2px #000000b7);
}
.draggable:hover {
/* Start the shake animation and make the animation last for 0.5 seconds */
animation: shake 3s;
/* When the animation is finished, start again */
animation-iteration-count: infinite;
}
@keyframes shake {
0% { transform: translate(1px, 1px) rotate(0deg); }
10% { transform: translate(-1px, -2px) rotate(-1deg); }
20% { transform: translate(-2px, 0px) rotate(1deg); }
30% { transform: translate(2px, 2px) rotate(0deg); }
40% { transform: translate(1px, -1px) rotate(1deg); }
50% { transform: translate(-1px, 2px) rotate(-1deg); }
60% { transform: translate(-3px, 1px) rotate(0deg); }
70% { transform: translate(2px, 1px) rotate(-1deg); }
80% { transform: translate(-1px, -1px) rotate(1deg); }
90% { transform: translate(1px, 2px) rotate(0deg); }
100% { transform: translate(1px, -2px) rotate(-1deg); }
}
span.draggable {
display: inline-block;
/* text-shadow: 1px 1px black, 0px 1px black, -1px 0px black, -1px -1px black; */

112
css/guide.css Normal file
View file

@ -0,0 +1,112 @@
body {
background-image: radial-gradient(at left top, #058C9E, #BC5180);
background-repeat: no-repeat;
background-attachment: fixed;
}
main {
width: 100%;
max-width: 800px;
margin-left: auto;
margin-right: auto;
background: none;
padding-bottom: 100px;
font-family: Erika;
line-height: 1.5;
}
main > * {
width: 100%;
background: linear-gradient(to top, rgba(255,255,255,0.5)), url(../assets/notebook.jpg), white;
box-sizing: border-box;
margin: 0;
background-size: 100% auto;
padding-bottom: 1em;
filter: drop-shadow(5px 3px 2px #000000b7);
padding-left: 15px;
padding-right: 15px;
z-index: 1;
position: relative;
max-width: 100%;
}
main > img {
object-fit: scale-down;
}
main > .sticker {
background: none;
z-index: 0;
}
main > *.draggable:not(.sticker) {
&:not(h2) {
width: 100%;
}
&:not(h1):not(h2):hover {
animation: none;
}
}
main ul,
main ol,
main dl {
padding-left: calc(1em + 15px);
}
main h1 {
text-align: center;
font-size: 4rem;
}
main h1,
main h2 {
background: none;
padding-top: 1.5em;
padding-left: 0;
padding-right: 0;
}
@media screen and (max-width: 800px) {
main h2 {
padding-left: 1em;
}
}
main h1 + *,
main h2 + * {
padding-top: 1em;
}
main h1 small {
display: block;
background: url(../assets/notebook.jpg);
color: black;
font-family: Erika;
font-size: 2.5rem;
width: fit-content;
max-width: 90%;
margin-left: auto;
margin-right: auto;
transform: translateY(-0.3em) rotate(-2deg);
}
main pre {
white-space: pre-wrap;
}
main a {
text-decoration: underline;
color: teal;
}
main a:visited {
color: rebeccapurple;
}
footer {
padding: 1em;
}

View file

@ -38,6 +38,5 @@ section {
font-family: Erika;
margin: auto;
margin-bottom: 100px;
columns: 560px;
padding: 2%;
}

190
guide.html Normal file
View file

@ -0,0 +1,190 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/base.css">
<link rel="stylesheet" href="css/guide.css">
<link rel="stylesheet" href="css/drag.css">
<script src="js/drag.js" defer></script>
<title>Guide Interhack Camp 2026</title>
</head>
<body id="page-guide">
<nav>
<a href="index.html">home</a>
<a href="poster.html">poster</a>
<a href="guide.html" class="current">guide</a>
</nav>
<main>
<img class="draggable randomStart sticker" src="assets/stickers/arbre-hetre.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/bac-e2.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/clavier.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/clef.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/ecran.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/foin.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/machineacoudre.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/tracteur.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/arbre-hetre.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/bac-e2.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/clavier.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/clef.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/ecran.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/foin.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/machineacoudre.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/tracteur.webp" alt="">
<h1 id="camp-interhack-2026-infos-pratiques">Camp Interhack 2026
<small>Infos pratiques</small></h1>
<p>Le Camp Interhack 2026 se déroulera du <strong>jeudi 2 Juillet au
dimanche 5 Juillet 2026</strong> à <a
href="https://www.lantenne.org/antenne-paulette/">lAntenne Paulette</a>
(<a
href="https://www.openstreetmap.org/node/11826195369#map=18/47.541614/-2.091345">47.541451,
-2.091871</a>). LAntenne Paulette est un hackerspace qui se trouve à
Sévérac en Loire Atlantique (44) entre Nantes et Redon, au sein <a
href="https://www.lantenne.org/laccueil-de-groupes/">dun ancien centre
de vacances</a> de la Poste avec dortoir, hangard, champs et forêts…</p>
<figure>
<img
src="https://www.lantenne.org/wp-content/uploads/2025/10/batiment-b-2048x1152.jpg"
alt="Le Bâtiment B" />
<figcaption aria-hidden="true">Le Bâtiment B</figcaption>
</figure>
<figure>
<img
src="https://www.lantenne.org/wp-content/uploads/2025/10/goldorak2-2048x1152.jpg"
alt="Le Réfectoire" />
<figcaption aria-hidden="true">Le Réfectoire</figcaption>
</figure>
<h2 id="tickets">Tickets</h2>
<p>Nous attendons au maximum 200 personnes au Camp. Prenez votre ticket
pour réserver votre place. Nous préfèrons ne pas dépasser la jauge de
200 personnes pour éviter de surcharger les personnes qui organisent
lévénement.</p>
<p>Le ticket pour venir au Camp est à prix libre. Vous pouvez donner ce
que vous pouvez ou voulez donner. Le prix des billet permet de financer
la réservation du lieu, la nourriture sur place, la location du materiel
et les autres frais de lèvénement.</p>
<p>Nous navons pas encore finalisé le système de réservation. Il est
pas encore possible de prendre votre ticket.</p>
<h2 id="dormir-sur-place">Dormir sur place</h2>
<p>Il est possible de dormir sur place. Les dortoirs peuvent accueillir
jusqua 54 personnes dasn un lit. Un espace camping est prévu pour poser
une tente et un parking à lombre pour poser votre camion si vous dormez
dedans.</p>
<ul>
<li>hébergement
<ul>
<li>camping</li>
<li>dortoirs
<ul>
<li>À ce niveau, je pense quon doit attribuer les lits uniquement aux
personnes qui en ont besoin en terme daccessibilité. Donc on les
propose uniquement aux personnes ayant besoin par exemple dun accès
PMR. À noter aussi que cest des dortoirs, donc espace partagé.</li>
<li>Je propose également que 2 dortoirs soit non-mixtes, soit 18 places
non-mixtes PMR.</li>
</ul>
<pre><code>Le bâtiment A est composé de 6 dortoirs de 9 lits simples, soit une capacité totale de 54 lits.
La jauge de 54 personnes est un impératif de sécurité. Merci de ne pas ajouter de couchage
supplémentaire.
Les matelas sont équipés dalaises. Des oreillers et couettes sont à votre disposition.
Il vous est demandé damener vos propres draps housses, housse de couettes et taies doreiller.</code></pre></li>
</ul></li>
</ul>
<h2 id="proposer-une-activité">Proposer une activité</h2>
<ul>
<li>types dactivités
<ul>
<li>ateliers</li>
<li>musique</li>
<li>discussions</li>
</ul></li>
<li>pretalx en cours de préparation (cf Assia &amp; 12b, daprès la réu
du 12 juillet)</li>
</ul>
<h2 id="participer-a-lorganisation">Participer a lorganisation</h2>
<p>Le Camp est auto-organisé et tourne grâce aux personnes qui y
participent, dans une ambiance joyeuse et démocratique. Vous pouvez
également participer en proposant votre aide sur diverses choses, que
vous soyez forte en organisation ou juste envie de passer dire coucou et
nous donner de la force !</p>
<p>Rendez-vous sur le groupe Matrix du camp :
https://matrix.to/#/#camp-space:matrix.interhacker.space</p>
<h2 id="comment">Comment ?</h2>
<ul>
<li>sanitaires</li>
<li>accessibilité
<ul>
<li>les installations du lieu sont accessible PMR</li>
<li>les espaces de forêt nécessitent un chantier pour être accessibles
[à organiser]</li>
<li>accpour lessibilité aux personnes aveugles et malvoyantes :
<ul>
<li>informations sonores</li>
</ul></li>
<li>pour les personnes sourdes/malentendantes :
<ul>
<li>informations visuelles</li>
<li>pads</li>
<li>ateliers non-oraux</li>
</ul></li>
<li>ambiance sensorielle</li>
</ul></li>
<li>réduction des risques
<ul>
<li>un groupe travaille dessus, rejoignez-le</li>
</ul></li>
<li>organisation : lire les pads et rejoindre les sous-groupes du <a
href="https://matrix.to/#/#camp-space:matrix.interhacker.space">space
Matrix</a> :
<ul>
<li>en cuisine - <a
href="https://md.lqdn.fr/e8SZBv6yTy61x1OvKlc2dQ#">Groupe
Cantine</a></li>
<li>en coulisses - <a
href="https://pad.lqdn.fr/p/Camp_Interhack_Logistique">Commission
Logistique</a></li>
<li>aux ateliers - <a href=""></a></li>
<li>à laccueil/coordination - <a
href="https://md.lqdn.fr/pCRYD-TfRry4jSmUAfLRuQ#">Groupe
Accueil</a></li>
<li>à laménagement des espaces - <a href="">Groupe Ambiance &amp;
spatialisation</a></li>
</ul></li>
<li>finances
<ul>
<li>budget prévisionnel</li>
<li>prix libre</li>
</ul></li>
</ul>
<h2 id="qui">qui ?</h2>
<ul>
<li>jauge : 200 personnes</li>
<li><a href="https://lite.framacalc.org/52k47yrfqw-ah89">qui attend-on
?</a></li>
</ul>
<h2 id="autre">Autre</h2>
<!-- En cas durgence, contacter le numéro dastreinte de lAntenne : 06 24 95 95 34 -->
</main>
<footer>
<div>
<h2>Association</h2>
<a href="assets/Camp-Interhack_Statuts.pdf">statuts</a>
</div>
<div>
<h2>Interhack</h2>
<a href="https://interhacker.space">accueil</a>
<a href="https://wiki.interhacker.space">wiki</a>
</div>
<div>
<h2>Site Web</h2>
<a href="https://git.interhacker.space/interhack/2026.camp.public.website">source</a>
</div>
<div>
Dernière mise à jour du guide:
18/12/2025 11:11 UTC
</div>
</footer>
</body>
</html>

65
guide.template.html Normal file
View file

@ -0,0 +1,65 @@
<!--
ATTENTION : CETTE PAGE EST GÉNÉRÉE VIA LE FICHIER UPDATE-GUIDE.SH
NE PAS MODIFIER À LA MAIN POUR LE CONTENUE, ÇA SERA ÉCRASÉ.
BISOUS
-->
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/base.css">
<link rel="stylesheet" href="css/guide.css">
<link rel="stylesheet" href="css/drag.css">
<script src="js/drag.js" defer></script>
<title>Guide Interhack Camp 2026</title>
</head>
<body id="page-guide">
<nav>
<a href="index.html">home</a>
<a href="poster.html">poster</a>
<a href="guide.html" class="current">guide</a>
</nav>
<main>
<img class="draggable randomStart sticker" src="assets/stickers/arbre-hetre.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/bac-e2.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/clavier.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/clef.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/ecran.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/foin.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/machineacoudre.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/tracteur.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/arbre-hetre.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/bac-e2.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/clavier.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/clef.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/ecran.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/foin.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/machineacoudre.webp" alt="">
<img class="draggable randomStart sticker" src="assets/stickers/tracteur.webp" alt="">
<!-- EDGEDOC: A la place de ce commentaire, le contenu du Edgedoc https://md.lqdn.fr/H0gKhjbKTfeM41L9bG9zUA -->
</main>
<footer>
<div>
<h2>Association</h2>
<a href="assets/Camp-Interhack_Statuts.pdf">statuts</a>
</div>
<div>
<h2>Interhack</h2>
<a href="https://interhacker.space">accueil</a>
<a href="https://wiki.interhacker.space">wiki</a>
</div>
<div>
<h2>Site Web</h2>
<a href="https://git.interhacker.space/interhack/2026.camp.public.website">source</a>
</div>
<div>
Dernière mise à jour du guide: <!-- DATE: A la place de ce commentaire, la date et heure du jour -->
</div>
</footer>
</body>
</html>

View file

@ -14,6 +14,7 @@
<nav>
<a href="index.html" class="current">home</a>
<a href="poster.html">poster</a>
<a href="guide.html">guide</a>
</nav>
<main>

View file

@ -1,5 +1,10 @@
const stepSize = 100;
const main = document.querySelector('main');
for(let guideDraggable of document.querySelectorAll("#page-guide main > *")) {
guideDraggable.classList.add("draggable");
}
const draggables = document.querySelectorAll(".draggable");
const randomStarts = document.querySelectorAll(".randomStart");

25
update-guide.sh Executable file
View file

@ -0,0 +1,25 @@
#!/bin/bash
GUIDE_EDGEDOC_URL="https://md.lqdn.fr/H0gKhjbKTfeM41L9bG9zUA"
DATE_CMD="date --utc '+%d/%m/%Y %H:%I UTC'"
echo "Mise a jour du guide dans guide.html a partir du edgedoc"
echo "$GUIDE_EDGEDOC_URL"
set -e
curl --silent --fail-with-body "$GUIDE_EDGEDOC_URL/download" > guide.tmp.md
pandoc --from markdown --to html guide.tmp.md > guide.tmp.html
cat guide.template.html \
| sed '/EDGEDOC/{
s/<!-- *EDGEDOC[^-]*-->//;
r guide.tmp.html
}' \
| sed -e "/DATE/{
s/<!-- *DATE[^-]*-->//;
n;
e $DATE_CMD
}" \
> guide.html
rm guide.tmp.md guide.tmp.html