maj index.html, ajout freecad
This commit is contained in:
parent
9f875eddb6
commit
f6b019b870
603
app/index.html
603
app/index.html
@ -4,138 +4,547 @@
|
|||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>GN dépôt</title>
|
<title>GN dépôt</title>
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;700&family=Sora:wght@300;400;600;700&display=swap" rel="stylesheet">
|
||||||
<style>
|
<style>
|
||||||
|
:root {
|
||||||
|
--bg: #0d1117;
|
||||||
|
--surface: #161b22;
|
||||||
|
--surface2: #21262d;
|
||||||
|
--border: #30363d;
|
||||||
|
--accent: #58a6ff;
|
||||||
|
--accent2: #3fb950;
|
||||||
|
--accent3: #f78166;
|
||||||
|
--text: #e6edf3;
|
||||||
|
--text-muted: #8b949e;
|
||||||
|
--radius: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
* { box-sizing: border-box; margin: 0; padding: 0; }
|
||||||
|
|
||||||
body {
|
body {
|
||||||
font-family: sans-serif;
|
font-family: 'Sora', sans-serif;
|
||||||
background-color: #f9f9f9;
|
background-color: var(--bg);
|
||||||
color: #333;
|
color: var(--text);
|
||||||
margin: 2em;
|
line-height: 1.7;
|
||||||
|
min-height: 100vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
body::before {
|
||||||
|
content: '';
|
||||||
|
position: fixed;
|
||||||
|
inset: 0;
|
||||||
|
background-image:
|
||||||
|
linear-gradient(rgba(88,166,255,0.03) 1px, transparent 1px),
|
||||||
|
linear-gradient(90deg, rgba(88,166,255,0.03) 1px, transparent 1px);
|
||||||
|
background-size: 40px 40px;
|
||||||
|
pointer-events: none;
|
||||||
|
z-index: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wrapper {
|
||||||
|
position: relative;
|
||||||
|
z-index: 1;
|
||||||
|
max-width: 860px;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 3em 1.5em 4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
header {
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 3em;
|
||||||
|
animation: fadeDown 0.6s ease both;
|
||||||
|
}
|
||||||
|
|
||||||
|
header img.logo {
|
||||||
|
max-width: 160px;
|
||||||
|
margin-bottom: 1.5em;
|
||||||
|
filter: drop-shadow(0 0 20px rgba(88,166,255,0.25));
|
||||||
|
}
|
||||||
|
|
||||||
|
header h1 {
|
||||||
|
font-size: 1.9em;
|
||||||
|
font-weight: 700;
|
||||||
|
color: var(--text);
|
||||||
|
letter-spacing: -0.02em;
|
||||||
|
}
|
||||||
|
|
||||||
|
header h1 span { color: var(--accent); }
|
||||||
|
|
||||||
|
header p {
|
||||||
|
color: var(--text-muted);
|
||||||
|
margin-top: 0.6em;
|
||||||
|
font-size: 1em;
|
||||||
|
font-weight: 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
section {
|
||||||
|
margin-bottom: 2.5em;
|
||||||
|
animation: fadeUp 0.5s ease both;
|
||||||
|
}
|
||||||
|
|
||||||
|
section:nth-child(2) { animation-delay: 0.1s; }
|
||||||
|
section:nth-child(3) { animation-delay: 0.2s; }
|
||||||
|
section:nth-child(4) { animation-delay: 0.3s; }
|
||||||
|
|
||||||
|
.section-title {
|
||||||
|
font-size: 0.75em;
|
||||||
|
font-weight: 600;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.12em;
|
||||||
|
color: var(--accent);
|
||||||
|
margin-bottom: 1em;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.6em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section-title::after {
|
||||||
|
content: '';
|
||||||
|
flex: 1;
|
||||||
|
height: 1px;
|
||||||
|
background: var(--border);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* --- Bloc installation principale --- */
|
||||||
|
.install-card {
|
||||||
|
background: var(--surface);
|
||||||
|
border: 1px solid var(--border);
|
||||||
|
border-radius: var(--radius);
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.install-card-header {
|
||||||
|
padding: 1.2em 1.5em;
|
||||||
|
border-bottom: 1px solid var(--border);
|
||||||
|
}
|
||||||
|
|
||||||
|
.install-card-header p {
|
||||||
|
color: var(--text-muted);
|
||||||
|
font-size: 0.92em;
|
||||||
|
margin-bottom: 0.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.install-card-header p:last-child { margin-bottom: 0; }
|
||||||
|
|
||||||
|
.badge-list {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 0.5em;
|
||||||
|
margin-top: 0.8em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge {
|
||||||
|
font-size: 0.75em;
|
||||||
|
font-family: 'JetBrains Mono', monospace;
|
||||||
|
background: var(--surface2);
|
||||||
|
border: 1px solid var(--border);
|
||||||
|
border-radius: 20px;
|
||||||
|
padding: 0.2em 0.7em;
|
||||||
|
color: var(--text-muted);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge .dot {
|
||||||
|
width: 6px;
|
||||||
|
height: 6px;
|
||||||
|
border-radius: 50%;
|
||||||
|
background: var(--accent2);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Code blocks */
|
||||||
|
.code-block {
|
||||||
|
position: relative;
|
||||||
|
background: #0d1117;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
font-family: 'JetBrains Mono', monospace;
|
||||||
|
font-size: 0.85em;
|
||||||
|
padding: 1.2em 1.4em;
|
||||||
|
padding-right: 5em;
|
||||||
|
overflow-x: auto;
|
||||||
|
color: #e6edf3;
|
||||||
line-height: 1.6;
|
line-height: 1.6;
|
||||||
}
|
}
|
||||||
.container {
|
|
||||||
max-width: 800px;
|
.copy-btn {
|
||||||
margin: auto;
|
position: absolute;
|
||||||
background: #fff;
|
top: 0.7em;
|
||||||
padding: 2em;
|
right: 0.7em;
|
||||||
box-shadow: 0 0 10px rgba(0,0,0,0.1);
|
background: var(--surface2);
|
||||||
border-radius: 12px;
|
border: 1px solid var(--border);
|
||||||
|
color: var(--text-muted);
|
||||||
|
border-radius: 6px;
|
||||||
|
padding: 0.3em 0.75em;
|
||||||
|
font-size: 0.75em;
|
||||||
|
font-family: 'Sora', sans-serif;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.2s;
|
||||||
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
img.logo {
|
|
||||||
max-width: 200px;
|
.copy-btn:hover { background: var(--accent); color: var(--bg); border-color: var(--accent); }
|
||||||
display: block;
|
.copy-btn.copied { background: var(--accent2); color: var(--bg); border-color: var(--accent2); }
|
||||||
margin: 0 auto 2em;
|
|
||||||
|
/* Détails manuels (accordéon) */
|
||||||
|
.manual-toggle {
|
||||||
|
width: 100%;
|
||||||
|
background: var(--surface2);
|
||||||
|
border: none;
|
||||||
|
border-top: 1px solid var(--border);
|
||||||
|
color: var(--text-muted);
|
||||||
|
font-family: 'Sora', sans-serif;
|
||||||
|
font-size: 0.82em;
|
||||||
|
padding: 0.8em 1.4em;
|
||||||
|
text-align: left;
|
||||||
|
cursor: pointer;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.5em;
|
||||||
|
transition: color 0.2s;
|
||||||
}
|
}
|
||||||
pre {
|
|
||||||
background: #f4f4f4;
|
.manual-toggle:hover { color: var(--text); }
|
||||||
padding: 1em;
|
|
||||||
border-left: 5px solid #007acc;
|
.manual-toggle .arrow {
|
||||||
overflow-x: auto;
|
margin-left: auto;
|
||||||
|
transition: transform 0.25s;
|
||||||
}
|
}
|
||||||
h1, h2 {
|
|
||||||
color: #007acc;
|
.manual-toggle.open .arrow { transform: rotate(180deg); }
|
||||||
text-align: center;
|
|
||||||
|
.manual-steps {
|
||||||
|
display: none;
|
||||||
|
border-top: 1px solid var(--border);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.manual-steps.open { display: block; }
|
||||||
|
|
||||||
|
.step {
|
||||||
|
border-bottom: 1px solid var(--border);
|
||||||
|
}
|
||||||
|
|
||||||
|
.step:last-child { border-bottom: none; }
|
||||||
|
|
||||||
|
.step-header {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.8em;
|
||||||
|
padding: 0.7em 1.2em;
|
||||||
|
background: var(--surface2);
|
||||||
|
border-bottom: 1px solid var(--border);
|
||||||
|
}
|
||||||
|
|
||||||
|
.step-num {
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
border-radius: 50%;
|
||||||
|
background: var(--accent);
|
||||||
|
color: var(--bg);
|
||||||
|
font-size: 0.72em;
|
||||||
|
font-weight: 700;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.step-label {
|
||||||
|
font-size: 0.83em;
|
||||||
|
font-weight: 600;
|
||||||
|
color: var(--text-muted);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inline code */
|
||||||
|
code {
|
||||||
|
font-family: 'JetBrains Mono', monospace;
|
||||||
|
background: var(--surface2);
|
||||||
|
padding: 0.15em 0.45em;
|
||||||
|
border-radius: 5px;
|
||||||
|
font-size: 0.87em;
|
||||||
|
color: var(--accent);
|
||||||
|
border: 1px solid var(--border);
|
||||||
|
}
|
||||||
|
|
||||||
|
pre code {
|
||||||
|
background: none;
|
||||||
|
padding: 0;
|
||||||
|
border: none;
|
||||||
|
font-size: inherit;
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Syntax */
|
||||||
|
.kw { color: #ff7b72; }
|
||||||
|
.str { color: #a5d6ff; }
|
||||||
|
.cmt { color: #8b949e; font-style: italic; }
|
||||||
|
.cmd { color: #3fb950; }
|
||||||
|
.url { color: #79c0ff; }
|
||||||
|
|
||||||
|
/* Packages */
|
||||||
.packages {
|
.packages {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
|
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
|
||||||
gap: 1.5em;
|
gap: 1em;
|
||||||
margin-top: 1.5em;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.package {
|
.package {
|
||||||
border: 1px solid #e0e0e0;
|
background: var(--surface);
|
||||||
border-radius: 12px;
|
border: 1px solid var(--border);
|
||||||
padding: 1.2em;
|
border-radius: var(--radius);
|
||||||
background: #fafafa;
|
padding: 1.3em;
|
||||||
transition: transform 0.2s, box-shadow 0.2s;
|
transition: transform 0.2s, border-color 0.2s, box-shadow 0.2s;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 0.4em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.package:hover {
|
.package:hover {
|
||||||
transform: translateY(-4px);
|
transform: translateY(-3px);
|
||||||
box-shadow: 0 8px 20px rgba(0,0,0,0.08);
|
border-color: var(--accent);
|
||||||
|
box-shadow: 0 8px 24px rgba(88,166,255,0.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.package-icon {
|
.package-icon { font-size: 2em; }
|
||||||
font-size: 2.5em;
|
.package h3 { font-size: 1em; font-weight: 600; color: var(--text); }
|
||||||
margin-bottom: 0.5em;
|
.package p { font-size: 0.88em; color: var(--text-muted); flex: 1; }
|
||||||
}
|
|
||||||
|
|
||||||
.package h3 {
|
.package-install {
|
||||||
margin: 0.2em 0;
|
font-family: 'JetBrains Mono', monospace;
|
||||||
color: #007acc;
|
font-size: 0.8em;
|
||||||
}
|
background: var(--surface2);
|
||||||
|
border: 1px solid var(--border);
|
||||||
.package p {
|
|
||||||
font-size: 0.95em;
|
|
||||||
margin: 0.3em 0 0.8em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.package code {
|
|
||||||
background: #eee;
|
|
||||||
padding: 0.2em 0.4em;
|
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
|
padding: 0.4em 0.7em;
|
||||||
|
color: var(--accent2);
|
||||||
|
display: block;
|
||||||
|
margin-top: 0.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.package a {
|
||||||
|
font-size: 0.82em;
|
||||||
|
color: var(--accent);
|
||||||
|
text-decoration: none;
|
||||||
|
margin-top: 0.3em;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.package a:hover { text-decoration: underline; }
|
||||||
|
|
||||||
|
/* Resources */
|
||||||
|
.resource-list {
|
||||||
|
background: var(--surface);
|
||||||
|
border: 1px solid var(--border);
|
||||||
|
border-radius: var(--radius);
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.resource-item {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 1em;
|
||||||
|
padding: 0.9em 1.3em;
|
||||||
|
border-bottom: 1px solid var(--border);
|
||||||
|
text-decoration: none;
|
||||||
|
color: var(--text);
|
||||||
|
transition: background 0.15s;
|
||||||
font-size: 0.9em;
|
font-size: 0.9em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.resource-item:last-child { border-bottom: none; }
|
||||||
|
.resource-item:hover { background: var(--surface2); }
|
||||||
|
|
||||||
|
.resource-item .ri-icon { font-size: 1.1em; width: 1.5em; text-align: center; }
|
||||||
|
.resource-item .ri-name { font-weight: 600; color: var(--accent); font-family: 'JetBrains Mono', monospace; font-size: 0.9em; }
|
||||||
|
.resource-item .ri-desc { color: var(--text-muted); font-size: 0.85em; margin-left: auto; }
|
||||||
|
|
||||||
|
@keyframes fadeDown {
|
||||||
|
from { opacity: 0; transform: translateY(-18px); }
|
||||||
|
to { opacity: 1; transform: translateY(0); }
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes fadeUp {
|
||||||
|
from { opacity: 0; transform: translateY(14px); }
|
||||||
|
to { opacity: 1; transform: translateY(0); }
|
||||||
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
text-align: center;
|
||||||
|
color: var(--text-muted);
|
||||||
|
font-size: 0.8em;
|
||||||
|
margin-top: 3em;
|
||||||
|
padding-top: 1.5em;
|
||||||
|
border-top: 1px solid var(--border);
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="container">
|
<div class="wrapper">
|
||||||
<img src="logo.png" alt="Le Garage Numérique" class="logo" />
|
|
||||||
|
|
||||||
<h1>Bienvenue sur le dépôt APT du Garage Numérique</h1>
|
<header>
|
||||||
<p>Ce dépôt vous permet d’installer facilement les paquets maintenus par <strong>Le Garage Numérique</strong> sur les distributions basées sur Debian.</p>
|
<img src="logo.png" alt="Le Garage Numérique" class="logo" />
|
||||||
</div>
|
<h1>Dépôt APT <span>Le Garage Numérique</span></h1>
|
||||||
|
<p>Paquets maintenus par Le Garage Numérique pour les distributions basées sur Debian</p>
|
||||||
|
</header>
|
||||||
|
|
||||||
<h2>Instructions d'utilisation</h2>
|
<!-- Installation -->
|
||||||
|
<section>
|
||||||
|
<div class="section-title">Installation du dépôt</div>
|
||||||
|
<div class="install-card">
|
||||||
|
|
||||||
<div class="container">
|
<!-- Description -->
|
||||||
<p>Installer le dépôt du garage :</p>
|
<div class="install-card-header">
|
||||||
<pre><code>sudo wget -O /etc/apt/trusted.gpg.d/gn-depot.asc https://deb.legaragenumerique.fr/pgp-key.public
|
<p>Une seule commande suffit pour configurer le dépôt, importer la clé GPG et définir la priorité automatiquement.</p>
|
||||||
echo 'deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/gn-depot.asc] https://deb.legaragenumerique.fr stable main' \
|
<div class="badge-list">
|
||||||
| sudo tee /etc/apt/sources.list.d/gn-depot.list
|
<div class="badge"><span class="dot"></span>Clé GPG importée</div>
|
||||||
sudo apt update</code></pre>
|
<div class="badge"><span class="dot"></span>sources.list configuré</div>
|
||||||
|
<div class="badge"><span class="dot"></span>Priorité 500 appliquée</div>
|
||||||
|
<div class="badge"><span class="dot"></span>apt update exécuté</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<p>Installer le paquet souhaité (ex. <code>geo</code>) :</p>
|
<!-- Commande principale -->
|
||||||
<pre><code>sudo apt install geo</code></pre>
|
<div class="code-block">
|
||||||
|
<pre id="cmd-main"><button class="copy-btn" onclick="copyCode('cmd-main', this)">Copier</button><span class="cmd">curl</span> -fsSL <span class="url">https://deb.legaragenumerique.fr/install-repo.sh</span> | <span class="cmd">sudo</span> bash</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
<p>Et voilà 🎉 Vous êtes prêt à utiliser notre dépôt !</p>
|
<!-- Accordéon installation manuelle -->
|
||||||
</div>
|
<button class="manual-toggle" id="toggle-manual" onclick="toggleManual()">
|
||||||
|
⚙️ Installation manuelle étape par étape
|
||||||
|
<span class="arrow">▾</span>
|
||||||
|
</button>
|
||||||
|
|
||||||
<h2>Paquets disponibles</h2>
|
<div class="manual-steps" id="manual-steps">
|
||||||
|
|
||||||
<div class="packages">
|
<div class="step">
|
||||||
<div class="package">
|
<div class="step-header">
|
||||||
<div class="package-icon">🌍</div>
|
<div class="step-num">1</div>
|
||||||
<h3>Geographical Adventures</h3>
|
<div class="step-label">Ajouter la clé publique GPG</div>
|
||||||
<p>Petit jeu sur la géographie.</p>
|
</div>
|
||||||
<code>sudo apt install geo</code><br>
|
<div class="code-block">
|
||||||
<a href="https://sebastian.itch.io/geographical-adventures">Site web</a>
|
<pre id="cmd1"><button class="copy-btn" onclick="copyCode('cmd1', this)">Copier</button><span class="cmd">sudo</span> wget -qO /etc/apt/trusted.gpg.d/gn-depot.asc \
|
||||||
</div>
|
<span class="url">https://deb.legaragenumerique.fr/pgp-key.public</span></pre>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="package">
|
<div class="step">
|
||||||
<div class="package-icon">🔫</div>
|
<div class="step-header">
|
||||||
<h3>World of padman</h3>
|
<div class="step-num">2</div>
|
||||||
<p>Petit FPS open source.</p>
|
<div class="step-label">Ajouter le dépôt à sources.list</div>
|
||||||
<code>sudo apt install wop</code><br>
|
</div>
|
||||||
<a href="https://worldofpadman.net">Site web</a>
|
<div class="code-block">
|
||||||
</div>
|
<pre id="cmd2"><button class="copy-btn" onclick="copyCode('cmd2', this)">Copier</button><span class="kw">echo</span> <span class="str">'deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/gn-depot.asc] https://deb.legaragenumerique.fr stable main'</span> \
|
||||||
|
| <span class="cmd">sudo</span> tee /etc/apt/sources.list.d/gn-depot.list</pre>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="package">
|
<div class="step">
|
||||||
<div class="package-icon">✒️</div>
|
<div class="step-header">
|
||||||
<h3>Scribus</h3>
|
<div class="step-num">3</div>
|
||||||
<p>Scribus svn 1.7.3.</p>
|
<div class="step-label">Définir la priorité du dépôt</div>
|
||||||
<code>sudo apt install scribus</code><br>
|
</div>
|
||||||
<a href="https://www.scribus.net">Site web</a>
|
<div class="code-block">
|
||||||
</div>
|
<pre id="cmd3"><button class="copy-btn" onclick="copyCode('cmd3', this)">Copier</button><span class="cmd">sudo</span> wget -qO /etc/apt/preferences.d/gn-depot.pref \
|
||||||
|
<span class="url">https://deb.legaragenumerique.fr/gn-depot.pref</span></pre>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- div class="package">
|
<div class="step">
|
||||||
<div class="package-icon">📦</div>
|
<div class="step-header">
|
||||||
<h3>backup-gn</h3>
|
<div class="step-num">4</div>
|
||||||
<p>Solution simple de sauvegarde automatisée.</p>
|
<div class="step-label">Mettre à jour et installer</div>
|
||||||
<code>sudo apt install backup-gn</code><br>
|
</div>
|
||||||
<a href="https://www.legaragenumerique.fr">Site web</a>
|
<div class="code-block">
|
||||||
</div> -->
|
<pre id="cmd4"><button class="copy-btn" onclick="copyCode('cmd4', this)">Copier</button><span class="cmd">sudo</span> apt update
|
||||||
|
<span class="cmd">sudo</span> apt install <nom-du-paquet></pre>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Packages -->
|
||||||
|
<section>
|
||||||
|
<div class="section-title">Paquets disponibles</div>
|
||||||
|
<div class="packages">
|
||||||
|
|
||||||
|
<div class="package">
|
||||||
|
<div class="package-icon">🌍</div>
|
||||||
|
<h3>Geographical Adventures</h3>
|
||||||
|
<p>Petit jeu de géographie interactif.</p>
|
||||||
|
<code class="package-install">sudo apt install geo</code>
|
||||||
|
<a href="https://sebastian.itch.io/geographical-adventures" target="_blank" rel="noopener">↗ Site web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="package">
|
||||||
|
<div class="package-icon">🔫</div>
|
||||||
|
<h3>World of Padman</h3>
|
||||||
|
<p>FPS open source léger et fun.</p>
|
||||||
|
<code class="package-install">sudo apt install wop</code>
|
||||||
|
<a href="https://worldofpadman.net" target="_blank" rel="noopener">↗ Site web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="package">
|
||||||
|
<div class="package-icon">✒️</div>
|
||||||
|
<h3>Scribus 1.7.3 SVN</h3>
|
||||||
|
<p>Logiciel de PAO — version de développement récente.</p>
|
||||||
|
<code class="package-install">sudo apt install scribus</code>
|
||||||
|
<a href="https://www.scribus.net" target="_blank" rel="noopener">↗ Site web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="package">
|
||||||
|
<div class="package-icon">🖨️</div>
|
||||||
|
<h3>Cura </h3>
|
||||||
|
<p>Logiciel de slicing pour imprimante 3D.</p>
|
||||||
|
<code class="package-install">sudo apt install cura</code>
|
||||||
|
<a href="https://ultimaker.com/software/ultimaker-cura/" target="_blank" rel="noopener">↗ Site web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="package">
|
||||||
|
<div class="package-icon">📐</div>
|
||||||
|
<h3>FreeCAD </h3>
|
||||||
|
<p>Logiciel de modeling pour imprimante 3D.</p>
|
||||||
|
<code class="package-install">sudo apt install freecad-gn</code>
|
||||||
|
<a href="https://www.freecad.org/index.php?lang=fr" target="_blank" rel="noopener">↗ Site web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
© Le Garage Numérique · Dépôt APT · <a href="https://deb.legaragenumerique.fr" style="color:var(--accent);text-decoration:none;">deb.legaragenumerique.fr</a>
|
||||||
|
</footer>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
function copyCode(id, btn) {
|
||||||
|
const pre = document.getElementById(id);
|
||||||
|
const clone = pre.cloneNode(true);
|
||||||
|
// Supprimer le bouton du clone avant d'extraire le texte
|
||||||
|
clone.querySelector('.copy-btn')?.remove();
|
||||||
|
const text = clone.innerText.trim();
|
||||||
|
navigator.clipboard.writeText(text).then(() => {
|
||||||
|
btn.textContent = '✓ Copié';
|
||||||
|
btn.classList.add('copied');
|
||||||
|
setTimeout(() => {
|
||||||
|
btn.textContent = 'Copier';
|
||||||
|
btn.classList.remove('copied');
|
||||||
|
}, 2000);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function toggleManual() {
|
||||||
|
const btn = document.getElementById('toggle-manual');
|
||||||
|
const steps = document.getElementById('manual-steps');
|
||||||
|
btn.classList.toggle('open');
|
||||||
|
steps.classList.toggle('open');
|
||||||
|
}
|
||||||
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
Loading…
x
Reference in New Issue
Block a user