Compare commits
No commits in common. "main" and "main" have entirely different histories.
23 changed files with 65 additions and 867 deletions
|
|
@ -1,21 +0,0 @@
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: docker
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Podman Login
|
|
||||||
run: |
|
|
||||||
echo "${{ secrets.DOCKER_PASSWORD }}" | podman login git.interhacker.space --username "${{ secrets.DOCKER_USERNAME }}" --password-stdin
|
|
||||||
|
|
||||||
- name: Build and Push Container Image
|
|
||||||
run: |
|
|
||||||
trap 'rm -f dist.zip' EXIT
|
|
||||||
wget -q -O dist.zip https://git.interhacker.space/epickiwi/2026.camp.carte/releases/download/latest/dist.zip
|
|
||||||
podman build -t git.interhacker.space/interhack/camp-website-2026:latest .
|
|
||||||
podman push git.interhacker.space/interhack/camp-website-2026:latest
|
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,2 +1 @@
|
||||||
guide.html
|
guide.html
|
||||||
dist.zip
|
|
||||||
|
|
|
||||||
15
Dockerfile
15
Dockerfile
|
|
@ -1,19 +1,6 @@
|
||||||
FROM docker.io/nginx:1.29-alpine
|
FROM docker.io/nginx:1.29-alpine
|
||||||
|
|
||||||
RUN apk add --update --no-cache unzip bash pandoc sed
|
COPY index.html poster.html guide.html /usr/share/nginx/html
|
||||||
|
|
||||||
COPY dist.zip /tmp/dist.zip
|
|
||||||
RUN unzip -q /tmp/dist.zip -d /tmp/carte
|
|
||||||
RUN mkdir -p /usr/share/nginx/html/carte
|
|
||||||
RUN cp -r /tmp/carte/dist/* /usr/share/nginx/html/carte/
|
|
||||||
RUN rm -rf /tmp/carte /tmp/dist.zip
|
|
||||||
|
|
||||||
COPY guide.template.html .
|
|
||||||
COPY update-guide.sh .
|
|
||||||
RUN bash update-guide.sh
|
|
||||||
|
|
||||||
COPY *.html /usr/share/nginx/html
|
|
||||||
RUN mv guide.html /usr/share/nginx/html
|
|
||||||
COPY assets /usr/share/nginx/html/assets
|
COPY assets /usr/share/nginx/html/assets
|
||||||
COPY css /usr/share/nginx/html/css
|
COPY css /usr/share/nginx/html/css
|
||||||
COPY js /usr/share/nginx/html/js
|
COPY js /usr/share/nginx/html/js
|
||||||
|
|
|
||||||
|
|
@ -40,13 +40,11 @@ First, login to the Docker registry:
|
||||||
docker login git.interhacker.space
|
docker login git.interhacker.space
|
||||||
```
|
```
|
||||||
|
|
||||||
Then, download the map bundle, build and push to the registry:
|
Then, build and push to the registry:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
wget -q -O dist.zip https://git.interhacker.space/epickiwi/2026.camp.carte/releases/download/latest/dist.zip
|
|
||||||
docker build -t git.interhacker.space/interhack/camp-website-2026:latest .
|
docker build -t git.interhacker.space/interhack/camp-website-2026:latest .
|
||||||
docker push git.interhacker.space/interhack/camp-website-2026:latest
|
docker push git.interhacker.space/interhack/camp-website-2026:latest
|
||||||
rm -f dist.zip
|
|
||||||
```
|
```
|
||||||
|
|
||||||
The pull process is triggered every five minutes.
|
The pull process is triggered every five minutes.
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -1,39 +0,0 @@
|
||||||
BEGIN:VCALENDAR
|
|
||||||
X-LOTUS-CHARSET:UTF-8
|
|
||||||
VERSION:2.0
|
|
||||||
PRODID:ZMS-Berlin
|
|
||||||
BEGIN:VTIMEZONE
|
|
||||||
TZID:Europe/Berlin
|
|
||||||
X-LIC-LOCATION:Europe/Berlin
|
|
||||||
BEGIN:DAYLIGHT
|
|
||||||
TZOFFSETFROM:+0100
|
|
||||||
TZOFFSETTO:+0200
|
|
||||||
TZNAME:CEST
|
|
||||||
DTSTART:19700329T020000
|
|
||||||
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3
|
|
||||||
END:DAYLIGHT
|
|
||||||
BEGIN:STANDARD
|
|
||||||
TZOFFSETFROM:+0200
|
|
||||||
TZOFFSETTO:+0100
|
|
||||||
TZNAME:CET
|
|
||||||
DTSTART:19701025T030000
|
|
||||||
RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10
|
|
||||||
END:STANDARD
|
|
||||||
END:VTIMEZONE
|
|
||||||
METHOD:REQUEST
|
|
||||||
BEGIN:VEVENT
|
|
||||||
UID:ics.terminsysteme.de1769434840
|
|
||||||
DTSTAMP:20260126T144040
|
|
||||||
CLASS:PUBLIC
|
|
||||||
DTSTART;TZID=Europe/Berlin:20260702T100000
|
|
||||||
DTEND;TZID=Europe/Berlin:20260705T230000
|
|
||||||
LOCATION:15 route de Saint Dolay 44530 Sévérac | 47.5437595, -2.0916116
|
|
||||||
SUMMARY:Camp Interhack
|
|
||||||
DESCRIPTION: Le Camp Interhack 2026 est un événement festif de hacking ! Le hack c’est le détournement des machines, des pratiques et des systèmes (au sens large) qui nous entourent. De la musique à la couture en passant par l’informatique et l’éléctronique mais aussi les structure sociales, les institutions et les organisations politiques, venez hacker le monde avec nous. https://camp.interhacker.space \n\n
|
|
||||||
BEGIN:VALARM
|
|
||||||
ACTION:DISPLAY
|
|
||||||
TRIGGER:-PT1440M
|
|
||||||
DESCRIPTION:Erinnerung
|
|
||||||
END:VALARM
|
|
||||||
END:VEVENT
|
|
||||||
END:VCALENDAR
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 17 KiB |
|
|
@ -1 +0,0 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--><path d="M176 96C149.5 96 128 117.5 128 144L128 496C128 522.5 149.5 544 176 544L240 544C266.5 544 288 522.5 288 496L288 144C288 117.5 266.5 96 240 96L176 96zM400 96C373.5 96 352 117.5 352 144L352 496C352 522.5 373.5 544 400 544L464 544C490.5 544 512 522.5 512 496L512 144C512 117.5 490.5 96 464 96L400 96z"/></svg>
|
|
||||||
|
Before Width: | Height: | Size: 527 B |
|
|
@ -1 +0,0 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--><path d="M187.2 100.9C174.8 94.1 159.8 94.4 147.6 101.6C135.4 108.8 128 121.9 128 136L128 504C128 518.1 135.5 531.2 147.6 538.4C159.7 545.6 174.8 545.9 187.2 539.1L523.2 355.1C536 348.1 544 334.6 544 320C544 305.4 536 291.9 523.2 284.9L187.2 100.9z"/></svg>
|
|
||||||
|
Before Width: | Height: | Size: 470 B |
Binary file not shown.
67
contact.html
67
contact.html
|
|
@ -1,67 +0,0 @@
|
||||||
<!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/contact.css">
|
|
||||||
<link rel="stylesheet" href="css/drag.css">
|
|
||||||
<script src="js/drag.js" defer></script>
|
|
||||||
<link rel="icon" type="image/x-icon" href="assets/stickers/ecran.png">
|
|
||||||
<title>Camp Interhack 2026 – Contact</title>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<nav>
|
|
||||||
<a href="index.html">maison</a>
|
|
||||||
<a href="guide.html">guide</a>
|
|
||||||
<a href="programme.html">programme</a>
|
|
||||||
<a href="carte/">carte</a>
|
|
||||||
<a href="poster.html">poster</a>
|
|
||||||
<a href="contact.html" class="current">contact</a>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<main>
|
|
||||||
<img class="draggable randomStart" src="assets/stickers/ecran.png" alt="">
|
|
||||||
<img class="draggable randomStart" src="assets/stickers/ferasouder.png" alt="">
|
|
||||||
<img class="draggable randomStart" src="assets/stickers/machineacoudre.png" alt="">
|
|
||||||
<img class="draggable randomStart" src="assets/stickers/tracteur.png" alt="">
|
|
||||||
<h1>
|
|
||||||
<span id="camp" class="draggable">camp</span>
|
|
||||||
<br>
|
|
||||||
<span id="interhack" class="draggable">interhack</span>
|
|
||||||
<span class="draggable">contact</span>
|
|
||||||
</h1>
|
|
||||||
<h2>
|
|
||||||
</h2>
|
|
||||||
<section id="contact">
|
|
||||||
<div>
|
|
||||||
<h3>Mail :</h3>
|
|
||||||
<a href="mailto:orga@camp.interhacker.space">orga@camp.interhacker.space</a>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h3>Matrix :</h3>
|
|
||||||
<a href="https://matrix.to/#/#camp-space:matrix.interhacker.space" class="matrix-link">#camp-space:matrix.interhacker.space</a>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</main>
|
|
||||||
<footer>
|
|
||||||
<div>
|
|
||||||
<h2>Association</h2>
|
|
||||||
<a href="assets/Camp-Interhack_Statuts.pdf" target="_blank">statuts</a>
|
|
||||||
<a href="assets/reglement-charte.pdf" target="_blank">règlement/charte</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>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
||||||
105
css/base.css
105
css/base.css
|
|
@ -33,11 +33,7 @@ img {
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
color: inherit;
|
color: var(--accent-yellow);
|
||||||
}
|
|
||||||
|
|
||||||
nav a, footer a {
|
|
||||||
color: black;
|
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -47,11 +43,6 @@ main h1, main h2, main h3 {
|
||||||
z-index: 20;
|
z-index: 20;
|
||||||
}
|
}
|
||||||
|
|
||||||
main h1 span, main h2 span, main h3 {
|
|
||||||
background-color: #000000b8;
|
|
||||||
padding: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
main h1 {
|
main h1 {
|
||||||
position: relative;
|
position: relative;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
@ -64,44 +55,30 @@ main h1 {
|
||||||
|
|
||||||
main h2 {
|
main h2 {
|
||||||
position: relative;
|
position: relative;
|
||||||
margin: 12% auto 5% auto;
|
margin: 4% auto;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: clamp(1.5em, 12vw, 4em);
|
font-size: clamp(1.5em, 4vw, 3em);
|
||||||
font-family: segoesc;
|
font-family: segoesc;
|
||||||
}
|
}
|
||||||
|
|
||||||
main h2:first-of-type {
|
|
||||||
font-size: clamp(1.5em, 5vw, 5em);
|
|
||||||
margin: 1em auto 0.5em auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
main h3 {
|
main h3 {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
text-align: center;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
font-size: clamp(1.8em, 3vw, 4em);
|
font-size: clamp(2em, 4vw, 4em);
|
||||||
margin-top: 5%;
|
margin-top: 5%;
|
||||||
margin-bottom: 2%;
|
|
||||||
font-weight: lighter;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
main section h3 {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
main h4 {
|
|
||||||
margin: 0.8em 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
main p {
|
main p {
|
||||||
margin: 0 0 min(1em, 2%) 1%;
|
margin: 1%;
|
||||||
|
padding: 1%;
|
||||||
|
/* border: solid 1px; */
|
||||||
|
opacity: 0.90;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
z-index: 3;
|
z-index: 3;
|
||||||
}
|
background-color: black;
|
||||||
|
|
||||||
main p:last-child {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
section {
|
section {
|
||||||
|
|
@ -112,14 +89,9 @@ section {
|
||||||
margin: auto;
|
margin: auto;
|
||||||
margin-bottom: 100px;
|
margin-bottom: 100px;
|
||||||
padding: 2%;
|
padding: 2%;
|
||||||
padding-left: min(1em, 2%);
|
padding-left: 0px;
|
||||||
z-index: 1000;
|
z-index: 1000;
|
||||||
box-shadow: -5px 5px 0px var(--accent-yellow), -10px 10px 0px var(--accent-orange), -15px 15px 0px var(--accent-violet);
|
box-shadow: -5px 5px 0px var(--accent-yellow), -10px 10px 0px var(--accent-orange), -15px 15px 0px var(--accent-violet);
|
||||||
background-color: #000000b8;
|
|
||||||
}
|
|
||||||
|
|
||||||
section :is(h1, h2, h3, h4, h5, h6) {
|
|
||||||
line-height: 1em;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
nav, footer, aside {
|
nav, footer, aside {
|
||||||
|
|
@ -167,76 +139,27 @@ main > img {
|
||||||
object-fit: scale-down;
|
object-fit: scale-down;
|
||||||
}
|
}
|
||||||
|
|
||||||
figcaption {
|
|
||||||
font-size: 0.6em;
|
|
||||||
line-height: initial;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-nice {
|
.btn-nice {
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
text-shadow: -2px 2px 0px var(--accent-orange), -4px 4px 0px var(--accent-violet);
|
text-shadow: -5px 5px 0px var(--accent-orange), -10px 10px 0px var(--accent-violet);
|
||||||
color: var(--accent-yellow);
|
color: var(--accent-yellow);
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
position: relative;
|
position: relative;
|
||||||
display: block;
|
display: block;
|
||||||
font-weight: bold;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#camp {
|
#camp {
|
||||||
font-family: segoesc;
|
font-family: segoesc;
|
||||||
float: left;
|
float: left;
|
||||||
margin-left: 10%;
|
margin-left: 10%;
|
||||||
|
line-height: 0.8em;
|
||||||
}
|
}
|
||||||
|
|
||||||
#interhack {
|
#interhack {
|
||||||
text-shadow: -5px 5px 0px var(--accent-orange), -10px 10px 0px var(--accent-violet);
|
text-shadow: -5px 5px 0px var(--accent-orange), -10px 10px 0px var(--accent-violet);
|
||||||
color: var(--accent-yellow);
|
color: var(--accent-yellow);
|
||||||
margin-right: 10%;
|
margin-right: 10%;
|
||||||
}
|
line-height: 0.5em;
|
||||||
|
|
||||||
#progress {
|
|
||||||
display: block;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
#gauge-bar {
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
#fundraising-bar {
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
code {
|
|
||||||
background: #ffffff1f;
|
|
||||||
padding: 0.2em 0.4em;
|
|
||||||
border-radius: 0.2em;
|
|
||||||
margin-right: 0.5ex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-nice code {
|
|
||||||
background: none;
|
|
||||||
padding: 0;
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
div#maj-guide {
|
|
||||||
text-align: center;
|
|
||||||
margin: 2em 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.center {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@media (max-width: 500px) {
|
|
||||||
/* Hide stickers on mobile */
|
|
||||||
.randomStart {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
#contact {
|
|
||||||
display: flex;
|
|
||||||
align-items: last baseline;
|
|
||||||
gap: 2em;
|
|
||||||
justify-content: space-between;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 span:nth-of-type(n+3) {
|
|
||||||
position: relative;
|
|
||||||
text-align: center;
|
|
||||||
font-size: clamp(1.5rem, 5vw, 5rem);
|
|
||||||
font-family: segoesc;
|
|
||||||
display: block;
|
|
||||||
margin: 1em auto 0.5em auto;
|
|
||||||
}
|
|
||||||
164
css/home.css
164
css/home.css
|
|
@ -10,173 +10,9 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Section des participants */
|
|
||||||
|
|
||||||
.participants {
|
.participants {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
height: 200px;
|
height: 200px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#participe > div.txt {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
justify-content: space-evenly;
|
|
||||||
}
|
|
||||||
|
|
||||||
#participe p {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Section des dons */
|
|
||||||
|
|
||||||
#don > div {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
justify-content: space-evenly;
|
|
||||||
}
|
|
||||||
|
|
||||||
#don button {
|
|
||||||
flex-grow: 1;
|
|
||||||
width: 3em;
|
|
||||||
color: white;
|
|
||||||
font-size: 2em;
|
|
||||||
border: none;
|
|
||||||
font-family: MonTrappist;
|
|
||||||
margin: 0.2em;
|
|
||||||
padding: 0.3em;
|
|
||||||
background: var(--primary-bg-color);
|
|
||||||
background: linear-gradient(0deg,rgba(136, 0, 255, 1) 0%, rgba(255, 191, 62, 1) 50%, rgba(255, 78, 0, 1) 100%);
|
|
||||||
box-shadow: -5px 5px 0px var(--accent-yellow), -10px 10px 0px var(--accent-orange), -15px 15px 0px var(--accent-violet);
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
#don > hr {
|
|
||||||
margin-top: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#don p {
|
|
||||||
text-align: justify;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes bang {
|
|
||||||
from {
|
|
||||||
transform: translate3d(0,0,0);
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-pop i {
|
|
||||||
/* position: ; */
|
|
||||||
display:run-in;
|
|
||||||
left: 0px;
|
|
||||||
top: 0px;
|
|
||||||
width: 1px;
|
|
||||||
height: 1px;
|
|
||||||
background: red;
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Barre de progression */
|
|
||||||
|
|
||||||
.progression {
|
|
||||||
animation: 3s loadbar;
|
|
||||||
width:auto;
|
|
||||||
background-color: white;
|
|
||||||
display: inline-block;
|
|
||||||
padding: 0.7em 0.5em 0.5em 0.5em;
|
|
||||||
text-wrap: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes loadbar {
|
|
||||||
0% { width:0%; }
|
|
||||||
}
|
|
||||||
|
|
||||||
.bar {
|
|
||||||
width : 50%;
|
|
||||||
margin : auto;
|
|
||||||
border : 2px solid white;
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
.progression > span {
|
|
||||||
|
|
||||||
display: inline-block;
|
|
||||||
width: 100%;
|
|
||||||
font-family: MonTrappist;
|
|
||||||
font-size : 1.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.lessthanhalf span {
|
|
||||||
padding-left: 100%;
|
|
||||||
color: white;
|
|
||||||
padding-left: calc(100% + 1em);
|
|
||||||
}
|
|
||||||
|
|
||||||
.morethanhalf {
|
|
||||||
text-align : end;
|
|
||||||
background: linear-gradient(90deg,rgba(136, 0, 255, 1) 0%, rgba(255, 78, 0, 1) 42%, rgba(255, 191, 62, 1) 100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.stamp {
|
|
||||||
overflow: hidden;
|
|
||||||
position: initial;
|
|
||||||
top: 100px;
|
|
||||||
right: 300px;
|
|
||||||
padding: 10px 20px;
|
|
||||||
background-color: rgba(255, 0, 0, 0.4);
|
|
||||||
border: 2px dashed rgba(255, 0, 0, 0.8);
|
|
||||||
border-radius: 2px;
|
|
||||||
transform: rotate(10deg);
|
|
||||||
font-family: 'Courier New', Courier, monospace;
|
|
||||||
font-size: 1em;
|
|
||||||
font-weight: bold;
|
|
||||||
color: rgba(255, 0, 0, 0.9);
|
|
||||||
text-transform: uppercase;
|
|
||||||
z-index: 10;
|
|
||||||
text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.8);
|
|
||||||
opacity: 1;
|
|
||||||
transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
|
||||||
|
|
||||||
background-image: linear-gradient(
|
|
||||||
135deg,
|
|
||||||
rgba(128, 0, 0, 0.1) 25%,
|
|
||||||
rgba(128, 0, 0, 0.4) 50%,
|
|
||||||
rgba(128, 0, 0, 0.1) 75%
|
|
||||||
);
|
|
||||||
background-size: 200% 200%;
|
|
||||||
animation: scan 3s ease infinite;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes scan {
|
|
||||||
0% { background-position: 0% 50%; }
|
|
||||||
50% { background-position: 100% 50%; }
|
|
||||||
100% { background-position: 0% 50%; }
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Radio Interhack */
|
|
||||||
|
|
||||||
#radio-player {
|
|
||||||
float: left;
|
|
||||||
z-index: 100000;
|
|
||||||
background-color: aqua;
|
|
||||||
height: 1em;
|
|
||||||
width: 1em;
|
|
||||||
position: absolute;
|
|
||||||
bottom: 1em;
|
|
||||||
right: 1em;
|
|
||||||
position: fixed;
|
|
||||||
border-radius: 10%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#radio-button {
|
|
||||||
background: none;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
@ -22,27 +22,24 @@ BISOUS
|
||||||
<nav>
|
<nav>
|
||||||
<a href="index.html">maison</a>
|
<a href="index.html">maison</a>
|
||||||
<a href="guide.html" class="current">guide</a>
|
<a href="guide.html" class="current">guide</a>
|
||||||
<a href="programme.html">programme</a>
|
|
||||||
<a href="carte/">carte</a>
|
|
||||||
<a href="poster.html">poster</a>
|
<a href="poster.html">poster</a>
|
||||||
<a href="contact.html">contact</a>
|
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<main>
|
<main>
|
||||||
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/ecran.png" alt="">
|
<img class="draggable randomStart " src="assets/stickers/ecran.png" alt="">
|
||||||
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/ferasouder.png" alt="">
|
<img class="draggable randomStart " src="assets/stickers/ferasouder.png" alt="">
|
||||||
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/machineacoudre.png" alt="">
|
<img class="draggable randomStart " src="assets/stickers/machineacoudre.png" alt="">
|
||||||
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/tracteur.png" alt="">
|
<img class="draggable randomStart " src="assets/stickers/tracteur.png" alt="">
|
||||||
|
|
||||||
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/ecran.png" alt="">
|
<img class="draggable randomStart " src="assets/stickers/ecran.png" alt="">
|
||||||
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/ferasouder.png" alt="">
|
<img class="draggable randomStart " src="assets/stickers/ferasouder.png" alt="">
|
||||||
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/machineacoudre.png" alt="">
|
<img class="draggable randomStart " src="assets/stickers/machineacoudre.png" alt="">
|
||||||
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/tracteur.png" alt="">
|
<img class="draggable randomStart " src="assets/stickers/tracteur.png" alt="">
|
||||||
|
|
||||||
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/ecran.png" alt="">
|
<img class="draggable randomStart " src="assets/stickers/ecran.png" alt="">
|
||||||
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/ferasouder.png" alt="">
|
<img class="draggable randomStart " src="assets/stickers/ferasouder.png" alt="">
|
||||||
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/machineacoudre.png" alt="">
|
<img class="draggable randomStart " src="assets/stickers/machineacoudre.png" alt="">
|
||||||
<img class="draggable randomStart " aria-hidden="true" src="assets/stickers/tracteur.png" alt="">
|
<img class="draggable randomStart " src="assets/stickers/tracteur.png" alt="">
|
||||||
|
|
||||||
<h1>
|
<h1>
|
||||||
<span id="camp" class="draggable">camp</span>
|
<span id="camp" class="draggable">camp</span>
|
||||||
|
|
@ -58,10 +55,6 @@ BISOUS
|
||||||
<!-- EDGEDOC: A la place de ce commentaire, le contenu du Edgedoc https://md.lqdn.fr/H0gKhjbKTfeM41L9bG9zUA -->
|
<!-- EDGEDOC: A la place de ce commentaire, le contenu du Edgedoc https://md.lqdn.fr/H0gKhjbKTfeM41L9bG9zUA -->
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<div id="maj-guide">
|
|
||||||
Dernière mise à jour du guide: <!-- DATE: A la place de ce commentaire, la date et heure du jour -->
|
|
||||||
</div>
|
|
||||||
</main>
|
</main>
|
||||||
<footer>
|
<footer>
|
||||||
<div>
|
<div>
|
||||||
|
|
@ -77,6 +70,9 @@ BISOUS
|
||||||
<h2>Site Web</h2>
|
<h2>Site Web</h2>
|
||||||
<a href="https://git.interhacker.space/interhack/2026.camp.public.website">source</a>
|
<a href="https://git.interhacker.space/interhack/2026.camp.public.website">source</a>
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
Dernière mise à jour du guide: <!-- DATE: A la place de ce commentaire, la date et heure du jour -->
|
||||||
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
131
index.html
131
index.html
|
|
@ -1,5 +1,4 @@
|
||||||
<!DOCTYPE html>
|
<html lang="en">
|
||||||
<html lang="fr">
|
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
|
|
@ -8,9 +7,6 @@
|
||||||
<link rel="stylesheet" href="css/home.css">
|
<link rel="stylesheet" href="css/home.css">
|
||||||
<link rel="stylesheet" href="css/drag.css">
|
<link rel="stylesheet" href="css/drag.css">
|
||||||
<script src="js/drag.js" defer></script>
|
<script src="js/drag.js" defer></script>
|
||||||
<script src="js/progress.js" defer></script>
|
|
||||||
<script src="js/pop.js" defer></script>
|
|
||||||
<script src="js/radio.js" defer></script>
|
|
||||||
<link rel="icon" type="image/x-icon" href="assets/stickers/ecran.png">
|
<link rel="icon" type="image/x-icon" href="assets/stickers/ecran.png">
|
||||||
<title>Camp Interhack</title>
|
<title>Camp Interhack</title>
|
||||||
</head>
|
</head>
|
||||||
|
|
@ -19,22 +15,24 @@
|
||||||
<nav>
|
<nav>
|
||||||
<a href="index.html" class="current">maison</a>
|
<a href="index.html" class="current">maison</a>
|
||||||
<a href="guide.html">guide</a>
|
<a href="guide.html">guide</a>
|
||||||
<a href="programme.html">programme</a>
|
|
||||||
<a href="carte/index.html">carte</a>
|
|
||||||
<a href="poster.html">poster</a>
|
<a href="poster.html">poster</a>
|
||||||
<a href="contact.html">contact</a>
|
|
||||||
</nav>
|
</nav>
|
||||||
<main>
|
<main>
|
||||||
|
|
||||||
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/ecran.png" alt="">
|
<img class="draggable randomStart" src="assets/stickers/ecran.png" alt="">
|
||||||
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/ferasouder.png" alt="">
|
<img class="draggable randomStart" src="assets/stickers/ferasouder.png" alt="">
|
||||||
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/machineacoudre.png" alt="">
|
<img class="draggable randomStart" src="assets/stickers/machineacoudre.png" alt="">
|
||||||
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/tracteur.png" alt="">
|
<img class="draggable randomStart" src="assets/stickers/tracteur.png" alt="">
|
||||||
|
|
||||||
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/ecran.png" alt="">
|
<img class="draggable randomStart" src="assets/stickers/ecran.png" alt="">
|
||||||
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/ferasouder.png" alt="">
|
<img class="draggable randomStart" src="assets/stickers/ferasouder.png" alt="">
|
||||||
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/machineacoudre.png" alt="">
|
<img class="draggable randomStart" src="assets/stickers/machineacoudre.png" alt="">
|
||||||
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/tracteur.png" alt="">
|
<img class="draggable randomStart" src="assets/stickers/tracteur.png" alt="">
|
||||||
|
|
||||||
|
<img class="draggable randomStart" src="assets/stickers/ecran.png" alt="">
|
||||||
|
<img class="draggable randomStart" src="assets/stickers/ferasouder.png" alt="">
|
||||||
|
<img class="draggable randomStart" src="assets/stickers/machineacoudre.png" alt="">
|
||||||
|
<img class="draggable randomStart" src="assets/stickers/tracteur.png" alt="">
|
||||||
|
|
||||||
<h1>
|
<h1>
|
||||||
<span id="camp" class="draggable">camp</span>
|
<span id="camp" class="draggable">camp</span>
|
||||||
|
|
@ -85,90 +83,9 @@
|
||||||
collective.<br>
|
collective.<br>
|
||||||
Seule exigence, respecter toutes les marginalités, originalités, bizarreries et normaleries de
|
Seule exigence, respecter toutes les marginalités, originalités, bizarreries et normaleries de
|
||||||
chacun·es.</p>
|
chacun·es.</p>
|
||||||
|
|
||||||
<p class="center">
|
|
||||||
<a href="assets/camp-interhack.ics">📅 Ajouter l'évènement à son calendrier (.ics)</a>
|
|
||||||
</p>
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
||||||
<section id="progress">
|
|
||||||
<h3>
|
|
||||||
<span>Où en est-on ?</span>
|
|
||||||
<div class="stamp" id="myStamp">COMPLET</div>
|
|
||||||
</h3>
|
|
||||||
<!--<p>Il y a</p>
|
|
||||||
|
|
||||||
<div class="places" >
|
|
||||||
<span class="bar">
|
|
||||||
<span id="gauge-bar" style="width:0" class="progression lessthanhalf">
|
|
||||||
<span id="gauge-text">?/200</span>
|
|
||||||
</span>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div>places déjà réservées.</div> -->
|
|
||||||
|
|
||||||
<br>
|
|
||||||
<p>
|
|
||||||
C'est <b>complet</b> !
|
|
||||||
<br>
|
|
||||||
Nous avons reçu en amont</p>
|
|
||||||
<div class="places">
|
|
||||||
<span class="bar">
|
|
||||||
<span id="fundraising-bar" style="width:0" class="progression lessthanhalf">
|
|
||||||
<span id="fundraising-text">? %</span>
|
|
||||||
</span>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<p>des dons dont nous avons besoin.</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Merci !!
|
|
||||||
<br>
|
|
||||||
Et nous comptons sur vous pour continuer à vous mobiliser avant et durant le camp, pour que l'on puisse atteindre les 100% !
|
|
||||||
</p>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<section id="don">
|
|
||||||
<h3>
|
|
||||||
<span>Faire un don</span>
|
|
||||||
</h3>
|
|
||||||
<p>Nous avons besoin de sous avant le débût du Camp pour financer l'achat de fournitures, payer la réservation du lieu et monter la logistique.</p>
|
|
||||||
<div>
|
|
||||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c09a8-c97f-784c-ab19-841c0700837d?resource_id=019c09a8-c976-797d-b213-4ac052e5d786"><button>5€</button></a>
|
|
||||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c09a9-76e2-7086-9b69-436a09ff801d?resource_id=019c09a9-76db-7325-b239-f0f80d056b74"><button>1€</button></a>
|
|
||||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c09a9-f4d1-7cf5-a1b0-eff390954dd0?resource_id=019c09a9-f4cb-7335-9fa4-6b599f072969"><button>10€</button></a>
|
|
||||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c09aa-85db-7edd-9508-f6b7f03e1594?resource_id=019c09aa-85d4-7a19-889b-6c09cd7e4ae5"><button>20€</button></a>
|
|
||||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c09ab-25d1-724a-9156-a8af734ddcc6?resource_id=019c09ab-25c8-7e9c-a0b0-72655c28b87e"><button>40€</button></a>
|
|
||||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c09ab-9f99-72fa-8151-0722830429a8?resource_id=019c09ab-9f93-78cb-9825-11af0c12f080"><button>50€</button></a>
|
|
||||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c0ff1-9272-7c10-b8b0-22c0fdc9f080?resource_id=019c0ff1-926d-7146-a0c4-5056a719e7ea"><button>75€</button></a>
|
|
||||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c09ac-a6b9-76e9-9988-fe53c940ff06?resource_id=019c09ac-a6b3-735a-a13b-11d1698ba31a"><button>100€</button></a>
|
|
||||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c9959-fa30-7eb5-add2-91ce73d6e5eb?resource_id=019c9959-fa31-7e72-b2c2-c5f5c9b7c398"><button>150€</button></a>
|
|
||||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c995d-49cf-72c0-8197-0b279947316c?resource_id=019c995d-49cf-7a7b-aee0-8a2742135921"><button>200€</button></a>
|
|
||||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c995e-92e1-77cf-a530-4212996c2e6d?resource_id=019c995e-92e1-7d2e-bb19-513b48ac4645"><button>250€</button></a>
|
|
||||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c995f-4754-7924-b6db-805a35c6ab0b?resource_id=019c995f-4755-78e5-989c-964ada8e12a1"><button>310€</button></a>
|
|
||||||
<a class="btn-pop" href="https://pay.qonto.com/payment-links/019c995f-ecad-79c0-8c78-4144e9af77c8?resource_id=019c995f-ecae-7a72-82bb-6274f4a9d2e2"><button>550€</button></a>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div>
|
|
||||||
<p>Si vous préférez faire un virement, demandez-nous l'IBAN sur <code>orga [arobase] camp.interhacker.space</code>. Nous payons <a href="https://www.mollie.com/fr/pricing"></a>autour de ~2% de frais</a> lors des paiements par carte bancaire.</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div>
|
|
||||||
<p>Nous estimons avoir un budget de ~ 15 000€ et être autour de 200 personnes, et aurons donc besoin d'au moins autant pour que le camp soit à l'équilibre.</p>
|
|
||||||
<a href="https://grist.interhacker.space/o/camp/fCKWivmj4bCX/Budget/p/2">Voir le détail des comptes</a>
|
|
||||||
</div>
|
|
||||||
<!--<hr>
|
|
||||||
<div>
|
|
||||||
<p>Si tu ne sais pas quel prix libre donner, et/ou que tu veux de l'aide pour définir un prix libre juste et éclairé pour ta participation au camp, voici un thunomètre rapide qui peut répondre au besoin.</p>
|
|
||||||
<a href="assets/Thunometre-participanxes.pdf">Thunomètre</a>
|
|
||||||
</div>-->
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id="participe">
|
|
||||||
<h3>
|
<h3>
|
||||||
<span>Iels y participent</span>
|
<span>Iels y participent</span>
|
||||||
</h3>
|
</h3>
|
||||||
|
|
@ -182,34 +99,17 @@
|
||||||
</a>
|
</a>
|
||||||
<a href="https://lebib.org"><img class="logo" src="assets/logos/lebib.png" alt="Le Bib Net"></a>
|
<a href="https://lebib.org"><img class="logo" src="assets/logos/lebib.png" alt="Le Bib Net"></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="participants">
|
<div class="participants">
|
||||||
<a href="https://hackstub.eu/"><img class="logo" src="assets/logos/hackstub.svg" alt="La Hackstub"></a>
|
<a href="https://hackstub.eu/"><img class="logo" src="assets/logos/hackstub.svg" alt="La Hackstub"></a>
|
||||||
<a href="https://fuz.re"><img class="logo" src="assets/logos/fuz.png" alt="Le Fuz"></a>
|
<a href="https://fuz.re"><img class="logo" src="assets/logos/fuz.png" alt="Le Fuz"></a>
|
||||||
<a href="https://labolyon.fr/"><img class="logo" src="assets/logos/lol_logo_txt.png" alt="Le Laboratoire Ouvert Lyonnais"></a>
|
<a href="https://labolyon.fr/"><img class="logo" src="assets/logos/lol_logo_txt.png" alt="Le Laboratoire Ouvert Lyonnais"></a>
|
||||||
<a href="https://fdn.fr/"><img class="logo" src="assets/logos/fdn.png" alt="La French Data Network"></a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="txt">
|
|
||||||
<p>et bien d'autres !<br> Rejoignez le canal Matrix sur <code>#interhack:matrix.interhacker.space</code></p>
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id="radio-player">
|
|
||||||
<audio preload=”metadata”>
|
|
||||||
<source src="http://stream.p-node.org/interhack.mp3" type="audio/mp3">
|
|
||||||
😥
|
|
||||||
</audio>
|
|
||||||
<span id="radio-button">
|
|
||||||
<img src="assets/play-solid-full.svg" alt="play button">
|
|
||||||
</span>
|
|
||||||
</section>
|
|
||||||
</main>
|
</main>
|
||||||
<footer>
|
<footer>
|
||||||
<div>
|
<div>
|
||||||
<h2>Association</h2>
|
<h2>Association</h2>
|
||||||
<a href="assets/Camp-Interhack_Statuts.pdf" target="_blank">statuts</a>
|
<a href="assets/Camp-Interhack_Statuts.pdf">statuts</a>
|
||||||
<a href="assets/reglement-charte.pdf" target="_blank">règlement/charte</a>
|
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<h2>Interhack</h2>
|
<h2>Interhack</h2>
|
||||||
|
|
@ -222,5 +122,4 @@
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
31
js/pop.js
31
js/pop.js
|
|
@ -1,31 +0,0 @@
|
||||||
document.querySelectorAll('button').forEach(function(button) {
|
|
||||||
button.addEventListener('mouseenter', function() {
|
|
||||||
function random(max) {
|
|
||||||
return Math.random() * (max - 0) + 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
var c = document.createDocumentFragment();
|
|
||||||
for (var i = 0; i < 100; i++) {
|
|
||||||
var styles = 'position: absolute;' +
|
|
||||||
'left: ' + (random(100)) + '30%;' + // Limit the position to within the button
|
|
||||||
'top: ' + (random(60)) + '30%;' + // Limit the position to within the button
|
|
||||||
'width: 3px; height: 6px; ' + // Increase size
|
|
||||||
'transform: translate(-50%, -50%) rotate(' + random(360) + 'deg);' +
|
|
||||||
'background: hsla(' + random(360) + ', 100%, 50%, 1);' +
|
|
||||||
'animation: bang 2000ms ease-out forwards;' +
|
|
||||||
'opacity: 0;' +
|
|
||||||
'z-index: 10;'; // Set a high z-index
|
|
||||||
|
|
||||||
var e = document.createElement("i");
|
|
||||||
e.style.cssText = styles;
|
|
||||||
c.appendChild(e);
|
|
||||||
}
|
|
||||||
button.appendChild(c);
|
|
||||||
setTimeout(() => {
|
|
||||||
// Create an array of the <i> elements to remove
|
|
||||||
let childrenToRemove = Array.from(button.querySelectorAll('i'));
|
|
||||||
// Remove each <i> element
|
|
||||||
childrenToRemove.forEach(child => button.removeChild(child));
|
|
||||||
}, 3000);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
@ -1,91 +0,0 @@
|
||||||
const gauge_url = "https://api.camp.interhacker.space/api/gauge"
|
|
||||||
const fundraising_url = "https://api.camp.interhacker.space/api/fundraising"
|
|
||||||
const gaugeMax = 200;
|
|
||||||
const fundraisingTotalMax = 13355.82;
|
|
||||||
|
|
||||||
async function getGauge() {
|
|
||||||
// // REMOVE WHEN SIGNUP FORM IS OPEN
|
|
||||||
// return 0;
|
|
||||||
|
|
||||||
try {
|
|
||||||
const response = await fetch(gauge_url);
|
|
||||||
if (!response.ok) {
|
|
||||||
throw new Error(`Response status: ${response.status}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
const result = await response.json();
|
|
||||||
|
|
||||||
return result.gauge
|
|
||||||
} catch (error) {
|
|
||||||
console.error(error.message);
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function getFundraisingTotal() {
|
|
||||||
try {
|
|
||||||
const response = await fetch(fundraising_url);
|
|
||||||
if (!response.ok) {
|
|
||||||
throw new Error(`Response status: ${response.status}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
const result = await response.json();
|
|
||||||
|
|
||||||
return result.total
|
|
||||||
} catch (error) {
|
|
||||||
console.error(error.message);
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function percentRatio(ratio) {
|
|
||||||
return Math.floor(ratio * 100);
|
|
||||||
}
|
|
||||||
|
|
||||||
function setAboveHalf(ratio, element) {
|
|
||||||
if (ratio > 0.5) {
|
|
||||||
element.classList.remove("lessthanhalf");
|
|
||||||
element.classList.add("morethanhalf");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function setGauge() {
|
|
||||||
const gauge = await getGauge();
|
|
||||||
|
|
||||||
if (gauge !== null) {
|
|
||||||
const gaugeBar = document.getElementById("gauge-bar");
|
|
||||||
const gaugeText = document.getElementById("gauge-text");
|
|
||||||
|
|
||||||
const gaugeRatio = gauge / gaugeMax;
|
|
||||||
|
|
||||||
gaugeBar.style.setProperty("width", percentRatio(gaugeRatio) + "%");
|
|
||||||
gaugeText.innerText = gauge + " / " + gaugeMax;
|
|
||||||
|
|
||||||
setAboveHalf(gaugeRatio, gaugeBar);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function setFundraisingTotal() {
|
|
||||||
const fundraising_total = await getFundraisingTotal();
|
|
||||||
|
|
||||||
if (fundraising_total !== null) {
|
|
||||||
const fundraisingBar = document.getElementById("fundraising-bar");
|
|
||||||
const fundraisingText = document.getElementById("fundraising-text");
|
|
||||||
|
|
||||||
const fundraisingRatio = fundraising_total / fundraisingTotalMax;
|
|
||||||
|
|
||||||
fundraisingBar.style.setProperty("width", percentRatio(fundraisingRatio) + "%");
|
|
||||||
fundraisingText.innerText = percentRatio(fundraisingRatio) + " %";
|
|
||||||
|
|
||||||
setAboveHalf(fundraisingRatio, fundraisingBar);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function setProgress() {
|
|
||||||
setGauge();
|
|
||||||
setFundraisingTotal();
|
|
||||||
}
|
|
||||||
|
|
||||||
document.addEventListener("DOMContentLoaded", setProgress);
|
|
||||||
23
js/radio.js
23
js/radio.js
|
|
@ -1,23 +0,0 @@
|
||||||
// Code Javascript pour la radio du Camp Interhack
|
|
||||||
// Hébergé par P-Node
|
|
||||||
// Propulsé par le Radio Operation Center
|
|
||||||
// En live depuis l'Antenne
|
|
||||||
|
|
||||||
const radioPlayer = document.getElementById("radio-player");
|
|
||||||
const audio = document.querySelector('audio');
|
|
||||||
const radioButton = document.getElementById("radio-button");
|
|
||||||
|
|
||||||
let state = "paused" // Can be : "playing" or "paused"
|
|
||||||
|
|
||||||
radioPlayer.addEventListener('click', () => {
|
|
||||||
if(state == "paused"){
|
|
||||||
state = "playing";
|
|
||||||
audio.play();
|
|
||||||
radioButton.innerHTML = '<img src="assets/pause-solid-full.svg" alt="pause button">';
|
|
||||||
|
|
||||||
} else {
|
|
||||||
state = "paused"
|
|
||||||
audio.pause();
|
|
||||||
radioButton.innerHTML = '<img src="assets/play-solid-full.svg" alt="play button">';
|
|
||||||
}
|
|
||||||
});
|
|
||||||
47
manual-ci.sh
47
manual-ci.sh
|
|
@ -1,47 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
IMAGE="git.interhacker.space/interhack/camp-website-2026:latest"
|
|
||||||
REGISTRY="git.interhacker.space"
|
|
||||||
|
|
||||||
need_cmd() {
|
|
||||||
command -v "$1" >/dev/null 2>&1 || {
|
|
||||||
echo "Missing required command: $1" >&2
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
need_cmd bash
|
|
||||||
need_cmd wget
|
|
||||||
need_cmd pandoc
|
|
||||||
need_cmd docker
|
|
||||||
|
|
||||||
if [[ ! -x ./update-guide.sh ]]; then
|
|
||||||
echo "Missing or non-executable ./update-guide.sh" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "==> Generating guide.html"
|
|
||||||
bash ./update-guide.sh
|
|
||||||
|
|
||||||
trap 'rm -f dist.zip' EXIT
|
|
||||||
|
|
||||||
echo "==> Downloading map bundle"
|
|
||||||
wget -q -O dist.zip https://git.interhacker.space/epickiwi/2026.camp.carte/releases/download/latest/dist.zip
|
|
||||||
|
|
||||||
echo "==> Logging in to ${REGISTRY}"
|
|
||||||
if [[ -n "${DOCKER_USERNAME:-}" && -n "${DOCKER_PASSWORD:-}" ]]; then
|
|
||||||
printf '%s' "$DOCKER_PASSWORD" | docker login "$REGISTRY" --username "$DOCKER_USERNAME" --password-stdin
|
|
||||||
else
|
|
||||||
docker login "$REGISTRY"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "==> Building image: ${IMAGE}"
|
|
||||||
docker build --no-cache -t "$IMAGE" .
|
|
||||||
|
|
||||||
echo "==> Pushing image: ${IMAGE}"
|
|
||||||
docker push "$IMAGE"
|
|
||||||
|
|
||||||
rm -f dist.zip
|
|
||||||
|
|
||||||
echo "Done."
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
<!DOCTYPE html>
|
<html lang="en">
|
||||||
<html lang="fr">
|
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
|
|
@ -15,11 +14,8 @@
|
||||||
<body>
|
<body>
|
||||||
<nav>
|
<nav>
|
||||||
<a href="index.html">maison</a>
|
<a href="index.html">maison</a>
|
||||||
<a href="guide.html">guide</a>
|
<a href="guide.html" >guide</a>
|
||||||
<a href="programme.html">programme</a>
|
|
||||||
<a href="carte/">carte</a>
|
|
||||||
<a href="poster.html" class="current">poster</a>
|
<a href="poster.html" class="current">poster</a>
|
||||||
<a href="contact.html">contact</a>
|
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
100
programme.html
100
programme.html
|
|
@ -1,100 +0,0 @@
|
||||||
<!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/home.css">
|
|
||||||
<link rel="stylesheet" href="css/drag.css">
|
|
||||||
<script src="js/drag.js" defer></script>
|
|
||||||
<script src="js/progress.js" defer></script>
|
|
||||||
<script src="js/pop.js" defer></script>
|
|
||||||
<link rel="icon" type="image/x-icon" href="assets/stickers/ecran.png">
|
|
||||||
<title>Camp Interhack</title>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<nav>
|
|
||||||
<a href="index.html">maison</a>
|
|
||||||
<a href="guide.html">guide</a>
|
|
||||||
<a href="programme.html" class="current">programme</a>
|
|
||||||
<a href="carte/">carte</a>
|
|
||||||
<a href="poster.html">poster</a>
|
|
||||||
<a href="contact.html">contact</a>
|
|
||||||
</nav>
|
|
||||||
<main>
|
|
||||||
|
|
||||||
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/ecran.png" alt="">
|
|
||||||
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/ferasouder.png" alt="">
|
|
||||||
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/machineacoudre.png" alt="">
|
|
||||||
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/tracteur.png" alt="">
|
|
||||||
|
|
||||||
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/ecran.png" alt="">
|
|
||||||
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/ferasouder.png" alt="">
|
|
||||||
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/machineacoudre.png" alt="">
|
|
||||||
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/tracteur.png" alt="">
|
|
||||||
|
|
||||||
<h1>
|
|
||||||
<span id="camp" class="draggable">camp</span>
|
|
||||||
<br>
|
|
||||||
<span id="interhack" class="draggable">interhack</span>
|
|
||||||
</h1>
|
|
||||||
|
|
||||||
<h2>
|
|
||||||
<span class="draggable">Le Programme</span>
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
<section>
|
|
||||||
<h3>Demandez le programme !</h3>
|
|
||||||
<p class="draggable">
|
|
||||||
Vous pouvez voir le programme sur le Pretalx.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<h3>
|
|
||||||
<a class="btn-nice" href="https://pretalx.lebib.org/camp-interhack-2026-2025/talk/">Le Programme</a>
|
|
||||||
</h3>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section>
|
|
||||||
<h3>Soyez le programme !</h3>
|
|
||||||
<p>Vous pouvez proposer ce que vous souhaitez pendant le Camp Interhack ! Que ce soit un atelier, une conférence, une rencontre ou une oeuvre d'art, toute proposition est bonne à entendre.</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<h3>
|
|
||||||
<a class="btn-nice" href="https://pretalx.lebib.org/camp-interhack-2026-2025/cfp">Ajouter une proposition</a>
|
|
||||||
</h3>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>Si jamais ce n'ai pas encore fait, n'oubliez pas de vous <a href="index.html">inscrire.</a></p>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section>
|
|
||||||
<h3>Réalisez le programme !</h3>
|
|
||||||
<p>Vous pouvez nous aider à préparer le programme en analysant les propositions, ajuster l'agenda, contacter les intervenant·es et bien d'autre encore, en rejoignant la commission <a href="https://matrix.to/#/#programme:laquadrature.net">[m] Programme et éditorialisation</a> </p>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
</main>
|
|
||||||
<footer>
|
|
||||||
<div>
|
|
||||||
<h2>Association</h2>
|
|
||||||
<a href="assets/Camp-Interhack_Statuts.pdf" target="_blank">statuts</a>
|
|
||||||
<a href="assets/reglement-charte.pdf" target="_blank">règlement/charte</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>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
||||||
|
|
@ -8,7 +8,7 @@ echo "Mise a jour du guide dans guide.html a partir du edgedoc"
|
||||||
echo "$GUIDE_EDGEDOC_URL"
|
echo "$GUIDE_EDGEDOC_URL"
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
curl --silent --fail "$GUIDE_EDGEDOC_URL/download" > guide.tmp.md
|
curl --silent --fail-with-body "$GUIDE_EDGEDOC_URL/download" > guide.tmp.md
|
||||||
pandoc --from markdown --to html guide.tmp.md > guide.tmp.html
|
pandoc --from markdown --to html guide.tmp.md > guide.tmp.html
|
||||||
cat guide.template.html \
|
cat guide.template.html \
|
||||||
| sed '/EDGEDOC/{
|
| sed '/EDGEDOC/{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue