iuna

iuna

iuna - experimental devnet protocol
git clone https://getiuna.org/git/iuna.git
Log | Files | Refs | README | LICENSE

commit 45083822abc3b398298461fab6cdc1de5719834d
parent 3679220c64e03aaebdd5c2e4d7c23334ae329ea4
Author: Joris Hartog <jorishartog@hotmail.com>
Date:   Fri, 14 Aug 2026 00:40:36 +0200

Refine downloads page layout

Diffstat:
Mwww/assets/iuna-downloads.js | 51++-------------------------------------------------
Mwww/assets/static-listing.css | 27+++++++++++++++++++++++++++
Mwww/downloads.html | 21+++++++--------------
3 files changed, 36 insertions(+), 63 deletions(-)

diff --git a/www/assets/iuna-downloads.js b/www/assets/iuna-downloads.js @@ -32,14 +32,6 @@ description: "Desktop installer for Windows.", file: "iuna-" + tag + "-windows-x86_64-desktop-setup.exe", button: "Download setup.exe" - }, - { - label: "Checksums", - title: "SHA256SUMS", - description: "SHA-256 checksums for available files.", - file: "SHA256SUMS", - button: "Download checksums", - hideCard: true } ]; @@ -55,24 +47,6 @@ }); } - function formatBytes(value) { - if (!Number.isFinite(value) || value <= 0) { - return "unknown"; - } - - var units = ["B", "KB", "MB", "GB"]; - var size = value; - var unit = 0; - while (size >= 1024 && unit < units.length - 1) { - size /= 1024; - unit += 1; - } - - return new Intl.NumberFormat(undefined, { - maximumFractionDigits: size >= 10 || unit === 0 ? 0 : 1 - }).format(size) + " " + units[unit]; - } - function checkArtifact(artifact) { return fetch(base + artifact.file, { method: "HEAD", cache: "no-store" }) .then(function (response) { @@ -95,16 +69,12 @@ return; } - var cards = files.filter(function (file) { - return !file.hideCard; - }); - - if (cards.length === 0) { + if (files.length === 0) { container.innerHTML = '<article class="card"><span class="tag pending">Pending</span><h2>No artifacts yet</h2><p class="muted">Release files have not been uploaded for this version.</p></article>'; return; } - container.innerHTML = cards.map(function (file) { + container.innerHTML = files.map(function (file) { return [ '<article class="card">', '<span class="tag">' + escapeHtml(file.label) + '</span>', @@ -116,22 +86,6 @@ }).join(""); } - function renderFiles(files) { - var body = document.querySelector("[data-download-files]"); - if (!body) { - return; - } - - if (files.length === 0) { - body.innerHTML = '<tr><td colspan="2" class="muted">No files found.</td></tr>'; - return; - } - - body.innerHTML = files.map(function (file) { - return '<tr><td><a href="' + escapeHtml(base + file.file) + '">' + escapeHtml(file.file) + '</a></td><td>' + escapeHtml(formatBytes(file.size)) + '</td></tr>'; - }).join(""); - } - function hydrateStaticText() { var versionNodes = document.querySelectorAll("[data-download-version]"); var linuxFile = "iuna-" + tag + "-linux-x86_64.tar.gz"; @@ -149,6 +103,5 @@ Promise.all(artifacts.map(checkArtifact)).then(function (results) { var files = results.filter(Boolean); renderCards(files); - renderFiles(files); }); }()); diff --git a/www/assets/static-listing.css b/www/assets/static-listing.css @@ -268,6 +268,11 @@ body > h3 { margin: 18px 0 28px; } +.download-grid { + grid-template-columns: repeat(4, minmax(0, 1fr)); + margin-bottom: 10px; +} + .card { min-width: 0; border: 1px solid var(--line); @@ -320,6 +325,23 @@ body > h3 { .muted { color: var(--muted); } +.checksum-link { + margin: 0 0 28px; + font-size: 13px; +} + +.source-build { + margin-top: 28px; +} + +.source-build h2 { + margin-bottom: 8px; +} + +.source-build p { + margin-top: 0; +} + #content, #files, #branches, #tags { border: 1px solid var(--line); border-radius: 8px; @@ -338,5 +360,10 @@ hr { nav { display: none; } h1 { font-size: 34px; } .grid { grid-template-columns: 1fr; } + .download-grid { grid-template-columns: 1fr; } table { display: block; overflow-x: auto; } } + +@media (min-width: 781px) and (max-width: 1020px) { + .download-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } +} diff --git a/www/downloads.html b/www/downloads.html @@ -34,7 +34,7 @@ <p>Release artifacts for iuna <span data-download-version>${IUNA_VERSION}</span>.</p> </section> - <div class="grid" data-download-cards> + <div class="grid download-grid" data-download-cards> <article class="card"> <span class="tag pending">Checking</span> <h2>Downloads</h2> @@ -42,22 +42,15 @@ </article> </div> - <h2>Files</h2> - <table> - <thead> - <tr> - <th>File</th> - <th>Size</th> - </tr> - </thead> - <tbody data-download-files> - <tr><td colspan="2" class="muted">Checking files.</td></tr> - </tbody> - </table> + <p class="checksum-link"><a href="/downloads/SHA256SUMS">SHA256 checksums</a></p> - <pre><code>git clone https://getiuna.org/git/iuna.git + <section class="source-build"> + <h2>Build from source</h2> + <p class="muted">Clone the repository and run a local release build.</p> + <pre><code>git clone https://getiuna.org/git/iuna.git cd iuna cargo run --release</code></pre> + </section> </main> <script> window.IUNA_DOWNLOADS_VERSION = "${IUNA_VERSION}";