Compare commits
No commits in common. "main" and "feat/css-ajustements" have entirely different histories.
main
...
feat/css-a
1
.gitignore
vendored
|
|
@ -1 +0,0 @@
|
||||||
guide.html
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
FROM docker.io/nginx:1.29-alpine
|
FROM docker.io/nginx:1.29-alpine
|
||||||
|
|
||||||
COPY index.html poster.html guide.html /usr/share/nginx/html
|
COPY index.html poster.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
|
||||||
|
|
|
||||||
34
README.md
|
|
@ -1,28 +1,6 @@
|
||||||
# Interhack Camp Website 2026
|
# Interhack Camp Website 2026
|
||||||
|
|
||||||
## How to deploy :
|
## Build the Docker image
|
||||||
|
|
||||||
### generate statuses PDF
|
|
||||||
|
|
||||||
Statuses are stored in [this online pad](https://md.interhacker.space/u2VNUSO6S36xx5Ensc3FCw).
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
bash update-guide.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
### Build the Docker image
|
|
||||||
|
|
||||||
Please generate
|
|
||||||
|
|
||||||
We use Docker for deploying on the Interhack infra. Until we have a proper CI, we need to build manually.
|
We use Docker for deploying on the Interhack infra. Until we have a proper CI, we need to build manually.
|
||||||
|
|
||||||
|
|
@ -50,3 +28,13 @@ docker push git.interhacker.space/interhack/camp-website-2026:latest
|
||||||
The pull process is triggered every five minutes.
|
The pull process is triggered every five minutes.
|
||||||
So you may wait at least this amount of time before the website is up-to-date!
|
So you may wait at least this amount of time before the website is up-to-date!
|
||||||
(and Ctrl + Shift + R is useful to nuke cache)
|
(and Ctrl + Shift + R is useful to nuke cache)
|
||||||
|
|
||||||
|
## generate statuses PDF
|
||||||
|
|
||||||
|
Statuses are stored in [this online pad](https://md.interhacker.space/u2VNUSO6S36xx5Ensc3FCw).
|
||||||
|
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
|
||||||
BIN
assets/Banquise-Regular.woff
Normal file
BIN
assets/Dymo.ttf
Normal file
BIN
assets/Erika-Type.ttf
Normal file
BIN
assets/background.jpg
Normal file
|
After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 118 KiB |
|
|
@ -1,16 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" height="789.98999" width="898.789" id="logo" sodipodi:docname="logo.svg" inkscape:version="0.92.1 r15371">
|
|
||||||
<metadata id="metadata41">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
|
||||||
<dc:title/>
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<defs id="defs39"/>
|
|
||||||
<sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1920" inkscape:window-height="1051" id="namedview37" showgrid="false" inkscape:snap-page="true" inkscape:snap-bbox="true" inkscape:bbox-nodes="true" inkscape:zoom="0.855" inkscape:cx="500" inkscape:cy="406.43275" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="logo"/>
|
|
||||||
<style type="text/css" id="style2"><![CDATA[ polygon { fill:#ffffff; stroke-width:0; } ]]></style>
|
|
||||||
<path d="M 435.52926,-1.1488281e-4 404.34957,17.999885 V 133.40419 l -137.20703,80.65234 -0.10351,-0.0566 -15.24805,9.08203 -15.58203,9.1582 v 0.11915 l -0.0996,0.0605 0.23633,17.40039 0.14453,18.41992 0.10742,0.0605 0.002,0.11914 15.58789,8.7207 15.6211,8.85938 0.10351,-0.0605 136.4375,76.33985 v 80.66015 l -137.24219,81.09961 -0.0684,-0.0391 -17.12891,10.20117 -13.74024,8.11914 v 0.0625 l -0.0605,0.0371 0.25,18.31836 0.17969,17.57227 0.0586,0.0332 0.002,0.0762 15.86524,8.87696 15.42383,8.70312 0.0644,-0.0371 105.50586,59.0332 -135.43946,81.58399 0.66993,36 31.50976,17.41015 181.21875,-109.16015 0.14258,-0.084 15.14838,-8.74603 v -0.27734 l 0.24023,-0.14258 -0.002,-0.10547 0.0918,-0.0547 -0.33008,-17.70508 v -175.2012 l 64.91992,-38.36133 136.80078,79.79883 v 0.18945 l 15.69922,8.96876 15.24023,8.89062 0.16016,-0.0918 0.16016,0.0918 15.23437,-8.88672 15.70508,-8.97266 v -0.18945 l 137.0606,-79.95117 31.09961,-18.14062 -0.16016,-36 -167.91992,-95.95118 v -115.9082 l -31.17969,-18 -31.17969,18 v 116.09375 l -0.0801,0.0469 0.0801,18 v 139.5781 l -105.82617,-61.73242 -0.004,-0.29688 -15.45898,-8.72265 -15.37109,-8.9668 -0.25782,0.14844 -0.26172,-0.14844 -15.14843,8.95117 -15.5918,8.90821 -0.002,0.30664 -33.71875,19.92578 v -44.36914 l 0.24023,-0.14258 -0.24023,-17.64063 V 209.48622 l 135.12114,76.51367 31.0293,-18.25977 -0.30078,-36 -138.76563,-78.57812 101.05664,-59.402345 -0.28125,-36 -31.31836,-17.75977 -96.54101,56.74805 V 17.999885 Z M 404.34957,205.73817 v 85.08984 l -74.16211,-41.49609 z m -372.820304,26.26172 -31.17968777,18 V 383.85731 L -3.0767578e-5,401.36903 0.34957823,401.57997 v 194.41992 l 31.17968777,18 31.179686,-18 V 402.41786 l 75.640618,-41.65039 v 123.65625 l -0.35937,0.21679 0.35937,17.51954 v 17.83984 l 0.3711,0.21289 0.008,0.41797 15.30664,8.42383 15.49414,8.94531 0.36914,-0.21289 0.37109,0.20312 15.10938,-9.14062 15.32989,-8.84961 v -0.42383 l 146.57422,-88.66797 15.21679,-8.55859 0.008,-0.65039 0.56054,-0.33984 -0.35742,-17.45704 0.19922,-17.54296 -0.56641,-0.33594 -0.0137,-0.6543 -15.30078,-8.42187 -146.32031,-86.71289 v -0.23438 l -15.42188,-8.9043 -15.02734,-9.08593 -0.1582,0.0859 -0.16211,-0.0957 -0.20704,0.11719 -0.20312,-0.11719 -15.45898,8.92578 -91.361328,50.3086 v -81.23435 z m 699.179684,129.72852 74.46679,42.55078 -74.46679,43.43945 z m -530,0.98828 70.1289,41.55859 -70.1289,42.42383 z m 203.64062,152.64648 v 85.46484 l -74.28906,-41.5664 z" id="polygon4" style="fill:#ffffff;fill-opacity:1" inkscape:connector-curvature="0"/>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 4.5 KiB |
BIN
assets/notebook.jpg
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
assets/paper.avif
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
assets/stickers/arbre-hetre.webp
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
assets/stickers/bac-e2.webp
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
assets/stickers/clavier.webp
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
assets/stickers/clef.webp
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 33 KiB |
BIN
assets/stickers/ecran.webp
Normal file
|
After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 57 KiB |
BIN
assets/stickers/foin.webp
Normal file
|
After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 49 KiB |
BIN
assets/stickers/machineacoudre.webp
Normal file
|
After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 51 KiB |
BIN
assets/stickers/tracteur.webp
Normal file
|
After Width: | Height: | Size: 14 KiB |
187
css/base.css
|
|
@ -1,138 +1,62 @@
|
||||||
|
|
||||||
/* Primary Font */
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: MonTrappist;
|
font-family: Banquise;
|
||||||
src: url(../assets/fonts/MonTrappist-Black.woff);
|
src: url(../assets/Banquise-Regular.woff);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Secondary Font */
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: Segoesc;
|
font-family: Dymo;
|
||||||
src: url(../assets/fonts/segoesc.ttf);
|
src: url(../assets/Dymo.ttf);
|
||||||
}
|
}
|
||||||
|
|
||||||
:root {
|
@font-face {
|
||||||
--primary-bg-color: black; /* global scope */
|
font-family: Erika;
|
||||||
--accent-violet: #8800FF;
|
src: url(../assets/Erika-Type.ttf);
|
||||||
--accent-yellow: #ffbf3e;
|
|
||||||
--accent-orange: #FF4E00 ;
|
|
||||||
--accent-minor-blue: #33D8D8;
|
|
||||||
--text-color-primary: #FFFFFF;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
html, body {
|
html, body {
|
||||||
|
height: 100%;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-family: "Verdana", "Helvetica", "Arial", sans-serif;
|
|
||||||
color: var(--text-color-primary);
|
|
||||||
background: var(--primary-bg-color);
|
|
||||||
overflow-x: hidden; /* empêche les stickers de déborder horizontalement */
|
|
||||||
}
|
|
||||||
|
|
||||||
img {
|
|
||||||
max-width: 100%;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
color: inherit;
|
text-decoration: none;
|
||||||
|
color: black;
|
||||||
}
|
}
|
||||||
|
|
||||||
nav a, footer a {
|
main {
|
||||||
color: black;
|
/* background-color: #413f43;*/
|
||||||
text-decoration: none;
|
background: #058C9E;
|
||||||
|
background: radial-gradient(at left top, #058C9E, #BC5180);
|
||||||
|
/* background-repeat: no-repeat;
|
||||||
|
background-size: cover; */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
main h1, main h2, main h3 {
|
main h1, main h2, main h3 {
|
||||||
font-family: MonTrappist;
|
font-family: Banquise;
|
||||||
color: white;
|
color: white;
|
||||||
z-index: 20;
|
z-index: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
main h1 {
|
main h1 {
|
||||||
position: relative;
|
font-size: 8em;
|
||||||
text-align: center;
|
|
||||||
margin: auto;
|
|
||||||
width: 50%;
|
|
||||||
font-size: clamp(4em, 14vw, 8em);
|
|
||||||
margin-top: 5%;
|
|
||||||
max-width: 1400px;
|
|
||||||
}
|
|
||||||
|
|
||||||
main h2 {
|
|
||||||
position: relative;
|
|
||||||
margin: 12% auto 5% auto;
|
|
||||||
text-align: center;
|
|
||||||
font-size: clamp(1.5em, 12vw, 4em);
|
|
||||||
font-family: segoesc;
|
|
||||||
}
|
|
||||||
|
|
||||||
main h2:first-of-type {
|
|
||||||
font-size: clamp(1.5em, 5vw, 5em);
|
|
||||||
margin: 1em auto 0.5em auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
main h3 {
|
|
||||||
position: relative;
|
|
||||||
margin: auto;
|
|
||||||
width: 100%;
|
|
||||||
font-size: clamp(1.8em, 3vw, 4em);
|
|
||||||
margin-top: 5%;
|
|
||||||
margin-bottom: 2%;
|
|
||||||
font-weight: lighter;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
main section h3 {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
main h4 {
|
|
||||||
margin: 0.8em 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
main p {
|
|
||||||
margin: 0 0 min(1em, 2%) 1%;
|
|
||||||
display: inline-block;
|
|
||||||
z-index: 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
main p:last-child {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
section {
|
|
||||||
position: relative;
|
|
||||||
max-width: 900px;
|
|
||||||
font-size: 1.5em;
|
|
||||||
line-height: 1.3em;
|
|
||||||
margin: auto;
|
|
||||||
margin-bottom: 100px;
|
|
||||||
padding: 2%;
|
|
||||||
padding-left: min(1em, 2%);
|
|
||||||
z-index: 1000;
|
|
||||||
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 {
|
||||||
background: var(--accent-violet);
|
background: #d7d7d7;
|
||||||
|
background: url(../assets/paper.avif);
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
font-family: MonTrappist;
|
font-family: Erika;
|
||||||
z-index: 10000;
|
z-index: 10000;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
opacity: 0.95;
|
||||||
|
box-shadow: 0px 0px 10px #00000070;
|
||||||
nav {
|
|
||||||
padding-left: 10%;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
nav a, footer a, aside a {
|
nav a, footer a, aside a {
|
||||||
|
font-family: Dymo;
|
||||||
font-size: 3em;
|
font-size: 3em;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin: 0.1em 0.3em;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
nav a.current {
|
nav a.current {
|
||||||
|
|
@ -143,72 +67,17 @@ footer a:hover, nav a:hover {
|
||||||
transform: rotate(-2deg);
|
transform: rotate(-2deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
footer {
|
footer {
|
||||||
display: block;
|
display: block;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-evenly;
|
justify-content: space-evenly;
|
||||||
align-items: end;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 600px) {
|
@media (max-width: 600px) {
|
||||||
footer {
|
footer {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
main > img {
|
|
||||||
object-fit: scale-down;
|
|
||||||
}
|
|
||||||
|
|
||||||
figcaption {
|
|
||||||
font-size: 0.6em;
|
|
||||||
line-height: initial;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-nice {
|
|
||||||
color: #FFFFFF;
|
|
||||||
text-shadow: -2px 2px 0px var(--accent-orange), -4px 4px 0px var(--accent-violet);
|
|
||||||
color: var(--accent-yellow);
|
|
||||||
font-size: 1.2em;
|
|
||||||
text-align: center;
|
|
||||||
margin: auto;
|
|
||||||
position: relative;
|
|
||||||
display: block;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
#camp {
|
|
||||||
font-family: segoesc;
|
|
||||||
float: left;
|
|
||||||
margin-left: 10%;
|
|
||||||
line-height: 0.8em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#interhack {
|
|
||||||
text-shadow: -5px 5px 0px var(--accent-orange), -10px 10px 0px var(--accent-violet);
|
|
||||||
color: var(--accent-yellow);
|
|
||||||
margin-right: 10%;
|
|
||||||
line-height: 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 500px) {
|
|
||||||
/* Hide stickers on mobile */
|
|
||||||
.randomStart {
|
|
||||||
display: none;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
|
|
||||||
|
|
||||||
main img.draggable {
|
main img.draggable {
|
||||||
max-width: 200px;
|
max-width: 150px;
|
||||||
max-height: 200px;
|
max-height: 150px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
z-index: 1;
|
filter: saturate(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
97
css/home.css
|
|
@ -1,58 +1,43 @@
|
||||||
|
main {
|
||||||
.logo {
|
display: block;
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
max-width: 7em ;
|
|
||||||
padding: 0.2em;
|
|
||||||
box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
|
|
||||||
margin: 1em;
|
|
||||||
z-index: 2;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.participants {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
height: 200px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 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;
|
|
||||||
color: black;
|
color: black;
|
||||||
|
overflow: hidden;
|
||||||
|
width: 100%;
|
||||||
|
min-height: 1000px;
|
||||||
|
}
|
||||||
|
|
||||||
|
main h1 {
|
||||||
|
position: relative;
|
||||||
|
text-align: center;
|
||||||
|
margin: auto;
|
||||||
|
width: 100%;
|
||||||
|
font-size: clamp(4em, 14vw, 8em);
|
||||||
|
margin-top: 5%;
|
||||||
|
}
|
||||||
|
|
||||||
|
main h2 {
|
||||||
|
margin: 4% auto;
|
||||||
|
text-align: center;
|
||||||
|
font-size: clamp(2.5em, 5vw, 4em);
|
||||||
|
}
|
||||||
|
|
||||||
|
main p {
|
||||||
|
margin: 1%;
|
||||||
|
padding: 1%;
|
||||||
|
background: white;
|
||||||
|
background: url(../assets/notebook.jpg);
|
||||||
|
/* border: solid 1px; */
|
||||||
|
opacity: 0.92;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
section {
|
||||||
|
max-width: 1400px;
|
||||||
|
font-size: 1.5em;
|
||||||
|
text-align: center;
|
||||||
|
font-family: Erika;
|
||||||
|
margin: auto;
|
||||||
|
margin-bottom: 100px;
|
||||||
|
columns: 560px;
|
||||||
|
padding: 2%;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ body {
|
||||||
}
|
}
|
||||||
|
|
||||||
aside {
|
aside {
|
||||||
|
background: url(../assets/notebook.jpg);
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
}
|
}
|
||||||
|
|
@ -15,7 +16,6 @@ main {
|
||||||
box-shadow: 5px 5px 5px #00000085;
|
box-shadow: 5px 5px 5px #00000085;
|
||||||
margin: 50px auto;
|
margin: 50px auto;
|
||||||
position: relative;
|
position: relative;
|
||||||
background: var(--primary-bg-color);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@page {
|
@page {
|
||||||
|
|
|
||||||
|
|
@ -1,78 +0,0 @@
|
||||||
<!--
|
|
||||||
ATTENTION : CETTE PAGE EST UN TEMPLATE, UTILISÉ PAR 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/drag.css">
|
|
||||||
<script src="js/drag.js" defer></script>
|
|
||||||
<link rel="icon" type="image/x-icon" href="assets/stickers/ecran.png">
|
|
||||||
<title>Guide Interhack Camp 2026</title>
|
|
||||||
</head>
|
|
||||||
<body id="page-guide">
|
|
||||||
<nav>
|
|
||||||
<a href="index.html">maison</a>
|
|
||||||
<a href="guide.html" class="current">guide</a>
|
|
||||||
<a href="poster.html">poster</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="">
|
|
||||||
|
|
||||||
<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">Informations pratiques</span>
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
<section>
|
|
||||||
<!-- EDGEDOC: A la place de ce commentaire, le contenu du Edgedoc https://md.lqdn.fr/H0gKhjbKTfeM41L9bG9zUA -->
|
|
||||||
|
|
||||||
</section>
|
|
||||||
</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>
|
|
||||||
73
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,33 +7,37 @@
|
||||||
<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>
|
<title>Camp Interhack 2026</title>
|
||||||
<link rel="icon" type="image/x-icon" href="assets/stickers/ecran.png">
|
|
||||||
<title>Camp Interhack</title>
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<nav>
|
<nav>
|
||||||
<a href="index.html" class="current">maison</a>
|
<a href="index.html" class="current">home</a>
|
||||||
<a href="guide.html">guide</a>
|
|
||||||
<a href="poster.html">poster</a>
|
<a href="poster.html">poster</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/arbre-hetre.webp" alt="">
|
||||||
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/ferasouder.png" alt="">
|
<img class="draggable randomStart" src="assets/stickers/bac-e2.webp" alt="">
|
||||||
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/machineacoudre.png" alt="">
|
<img class="draggable randomStart" src="assets/stickers/clavier.webp" alt="">
|
||||||
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/tracteur.png" alt="">
|
<img class="draggable randomStart" src="assets/stickers/clef.webp" alt="">
|
||||||
|
<img class="draggable randomStart" src="assets/stickers/ecran.webp" alt="">
|
||||||
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/ecran.png" alt="">
|
<img class="draggable randomStart" src="assets/stickers/foin.webp" alt="">
|
||||||
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/ferasouder.png" alt="">
|
<img class="draggable randomStart" src="assets/stickers/machineacoudre.webp" alt="">
|
||||||
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/machineacoudre.png" alt="">
|
<img class="draggable randomStart" src="assets/stickers/tracteur.webp" alt="">
|
||||||
<img class="draggable randomStart" aria-hidden="true" src="assets/stickers/tracteur.png" alt="">
|
<img class="draggable randomStart" src="assets/stickers/arbre-hetre.webp" alt="">
|
||||||
|
<img class="draggable randomStart" src="assets/stickers/bac-e2.webp" alt="">
|
||||||
|
<img class="draggable randomStart" src="assets/stickers/clavier.webp" alt="">
|
||||||
|
<img class="draggable randomStart" src="assets/stickers/clef.webp" alt="">
|
||||||
|
<img class="draggable randomStart" src="assets/stickers/ecran.webp" alt="">
|
||||||
|
<img class="draggable randomStart" src="assets/stickers/foin.webp" alt="">
|
||||||
|
<img class="draggable randomStart" src="assets/stickers/machineacoudre.webp" alt="">
|
||||||
|
<img class="draggable randomStart" src="assets/stickers/tracteur.webp" alt="">
|
||||||
|
|
||||||
<h1>
|
<h1>
|
||||||
<span id="camp" class="draggable">camp</span>
|
<span class="draggable">Camp</span>
|
||||||
<br>
|
<span class="draggable">Interhack</span>
|
||||||
<span id="interhack" class="draggable">interhack</span>
|
<span class="draggable">2026</span>
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<h2>
|
<h2>
|
||||||
|
|
@ -81,37 +84,6 @@
|
||||||
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>
|
||||||
</section>
|
</section>
|
||||||
<h3>
|
|
||||||
<span>Où en est-on ?</span>
|
|
||||||
</h3>
|
|
||||||
<section id="progress">
|
|
||||||
<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>
|
|
||||||
<p>places déjà réservées. Ouverture prochaine des inscriptions !</p>
|
|
||||||
<br>
|
|
||||||
<p>Et nous avons reçu</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 (voir le détail des comptes)</p>
|
|
||||||
</section>
|
|
||||||
<h3>
|
|
||||||
<span>Iels y participent</span>
|
|
||||||
</h3>
|
|
||||||
|
|
||||||
<div class="participants">
|
|
||||||
<a href="https://lqdn.fr">
|
|
||||||
<img class="logo" src="assets/logos/lqdn.png" alt="La Quadrature Du Net">
|
|
||||||
</a>
|
|
||||||
<a href="https://datapaulette.org/">
|
|
||||||
<img class="logo" src="assets/logos/datapaulette.jpg" alt="Datapaulette">
|
|
||||||
</a>
|
|
||||||
<a href="https://lebib.org"><img class="logo" src="assets/logos/lebib.png" alt="Le Bib Net"></a>
|
|
||||||
</div>
|
|
||||||
<div class="participants">
|
|
||||||
<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://labolyon.fr/"><img class="logo" src="assets/logos/lol_logo_txt.png" alt="Le Laboratoire Ouvert Lyonnais"></a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</main>
|
</main>
|
||||||
<footer>
|
<footer>
|
||||||
<div>
|
<div>
|
||||||
|
|
@ -129,5 +101,4 @@
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
const stepSize = 1;
|
const stepSize = 100;
|
||||||
const main = document.querySelector('main');
|
const main = document.querySelector('main');
|
||||||
|
|
||||||
const draggables = document.querySelectorAll(".draggable");
|
const draggables = document.querySelectorAll(".draggable");
|
||||||
const randomStarts = document.querySelectorAll(".randomStart");
|
const randomStarts = document.querySelectorAll(".randomStart");
|
||||||
|
|
||||||
|
|
@ -20,6 +19,8 @@ function stepedSize(n) {
|
||||||
function move(e) {
|
function move(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
let target = e.target;
|
let target = e.target;
|
||||||
|
target.style['z-index'] = zIndex;
|
||||||
|
zIndex++;
|
||||||
|
|
||||||
target.moving = true;
|
target.moving = true;
|
||||||
|
|
||||||
|
|
@ -62,14 +63,13 @@ function activateDraggables() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function randomizeDragables() {
|
function randomizeDragables() {
|
||||||
maxX = main.offsetWidth - 250;
|
maxX = main.offsetWidth - 150;
|
||||||
maxY = main.offsetHeight - 150;
|
maxY = main.offsetHeight - 150;
|
||||||
for (var randomStart of randomStarts) {
|
for (var randomStart of randomStarts) {
|
||||||
randX = Math.floor(Math.random() * maxX);
|
randX = Math.floor(Math.random() * maxX);
|
||||||
randY = Math.floor(Math.random() * maxY);
|
randY = Math.floor(Math.random() * maxY);
|
||||||
randomStart.style.left = randX + "px";
|
randomStart.style.left = randX + "px";
|
||||||
randomStart.style.top = randY + "px";
|
randomStart.style.top = randY + "px";
|
||||||
randomStart.style.rotate = Math.floor(Math.random() * 61) - 30 + "deg";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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 = 250;
|
|
||||||
const fundraisingTotalMax = 20000;
|
|
||||||
|
|
||||||
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);
|
|
||||||
39
poster.html
|
|
@ -7,55 +7,34 @@
|
||||||
<link rel="stylesheet" href="css/poster.css">
|
<link rel="stylesheet" href="css/poster.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>
|
||||||
<link rel="icon" type="image/x-icon" href="assets/stickers/ecran.png">
|
|
||||||
<title>Camp Interhack 2026 – Poster</title>
|
<title>Camp Interhack 2026 – Poster</title>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<nav>
|
<nav>
|
||||||
<a href="index.html">maison</a>
|
<a href="index.html">home</a>
|
||||||
<a href="guide.html" >guide</a>
|
|
||||||
<a href="poster.html" class="current">poster</a>
|
<a href="poster.html" class="current">poster</a>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
<aside>
|
<aside>
|
||||||
<a href="javascript:if(window.print)window.print()" class="print">🖨️ imprimer</a>
|
<a href="javascript:if(window.print)window.print()" class="print">🖨️ imprimer</a>
|
||||||
<section>
|
|
||||||
<p>
|
|
||||||
Vous pouvez arranger vous mêmes votre affiche en bougeant les informations et les autocollants !
|
|
||||||
</p>
|
|
||||||
</section>
|
|
||||||
</aside>
|
</aside>
|
||||||
|
|
||||||
|
|
||||||
<main>
|
<main>
|
||||||
|
<img class="draggable randomStart" src="assets/stickers/arbre-hetre.webp" alt="">
|
||||||
<img class="draggable randomStart" src="assets/stickers/ecran.png" alt="">
|
<img class="draggable randomStart" src="assets/stickers/bac-e2.webp" alt="">
|
||||||
<img class="draggable randomStart" src="assets/stickers/ferasouder.png" alt="">
|
<img class="draggable randomStart" src="assets/stickers/clavier.webp" alt="">
|
||||||
<img class="draggable randomStart" src="assets/stickers/machineacoudre.png" alt="">
|
<img class="draggable randomStart" src="assets/stickers/clef.webp" alt="">
|
||||||
<img class="draggable randomStart" src="assets/stickers/tracteur.png" alt="">
|
<img class="draggable randomStart" src="assets/stickers/ecran.webp" alt="">
|
||||||
|
<img class="draggable randomStart" src="assets/stickers/foin.webp" alt="">
|
||||||
|
<img class="draggable randomStart" src="assets/stickers/machineacoudre.webp" alt="">
|
||||||
|
<img class="draggable randomStart" src="assets/stickers/tracteur.webp" alt="">
|
||||||
|
|
||||||
<h1>
|
<h1>
|
||||||
<span class="draggable text">Camp</span>
|
<span class="draggable text">Camp</span>
|
||||||
<span class="draggable text">Interhack</span>
|
<span class="draggable text">Interhack</span>
|
||||||
<span class="draggable">2 au 5 Juillet</span>
|
|
||||||
<span class="draggable">2026</span>
|
<span class="draggable">2026</span>
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<h2>
|
|
||||||
<span class="draggable">à l'Antenne</span>
|
|
||||||
<span class="draggable">15 route de Saint Dolay 44530 Sévérac</span>
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
<h2>
|
|
||||||
<span class="draggable">camp.interhacker.space</span>
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<aside>Malheureusement, ce générateur ne fonctionne pas sur mobile pour le moment. <br> <a href="https://git.interhacker.space/interhack/2026.camp.public.website/issues/6">Aidez-nous à le réparer ?</a></aside>
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
#!/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
|
|
||||||