feat(hero): dynamic latest release tag + direct download links
This commit is contained in:
30
index.html
30
index.html
@@ -125,6 +125,9 @@ header.hero{padding:56px 0 40px;border-bottom:1px solid var(--line);background:
|
|||||||
.hero-card .stat{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px 8px}
|
.hero-card .stat{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px 8px}
|
||||||
.hero-card .stat .n{font-family:var(--display);font-weight:600;font-size:20px;line-height:1}
|
.hero-card .stat .n{font-family:var(--display);font-weight:600;font-size:20px;line-height:1}
|
||||||
.hero-card .stat .l{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:6px}
|
.hero-card .stat .l{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:6px}
|
||||||
|
.hero-card .stat .sig{font-size:10px;margin-top:2px;display:none}
|
||||||
|
.hero-card .stat .sig a{color:var(--muted);text-decoration:underline}
|
||||||
|
.hero-card .stat .sig a:hover{color:var(--accent)}
|
||||||
|
|
||||||
/* ---------- Section scaffolding ---------- */
|
/* ---------- Section scaffolding ---------- */
|
||||||
.section{padding:56px 0}
|
.section{padding:56px 0}
|
||||||
@@ -300,7 +303,7 @@ footer .built{font-size:13px;color:var(--muted);margin-top:8px}
|
|||||||
<div class="name">BAL Protocol</div>
|
<div class="name">BAL Protocol</div>
|
||||||
<div class="tag">Electrum plugin + Will-Executor</div>
|
<div class="tag">Electrum plugin + Will-Executor</div>
|
||||||
<div class="stats">
|
<div class="stats">
|
||||||
<div class="stat"><div class="n">v0.6.0</div><div class="l">Latest release</div></div>
|
<div class="stat"><div class="n"><a id="latest-release-link" href="https://bitcoin-after.life/gitea/bitcoinafterlife/bal-electrum-plugin/releases">-</a></div><div class="l">Latest release</div><div class="sig"><a id="latest-release-sig" href="#">sig</a></div></div>
|
||||||
<div class="stat"><div class="n">10 yr</div><div class="l">Min. support</div></div>
|
<div class="stat"><div class="n">10 yr</div><div class="l">Min. support</div></div>
|
||||||
<div class="stat"><div class="n">MIT</div><div class="l">License</div></div>
|
<div class="stat"><div class="n">MIT</div><div class="l">License</div></div>
|
||||||
<div class="stat"><div class="n">100%</div><div class="l">Bitcoin-funded</div></div>
|
<div class="stat"><div class="n">100%</div><div class="l">Bitcoin-funded</div></div>
|
||||||
@@ -613,5 +616,30 @@ items.forEach(d => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
const apiUrl = 'https://bitcoin-after.life/gitea/api/v1/repos/bitcoinafterlife/bal-electrum-plugin/releases/latest';
|
||||||
|
const link = document.getElementById('latest-release-link');
|
||||||
|
const sig = document.getElementById('latest-release-sig');
|
||||||
|
if (!link) return;
|
||||||
|
fetch(apiUrl)
|
||||||
|
.then(r => r.ok ? r.json() : Promise.reject(new Error('HTTP ' + r.status)))
|
||||||
|
.then(data => {
|
||||||
|
if (data && data.tag_name) {
|
||||||
|
const tag = data.tag_name;
|
||||||
|
link.textContent = tag;
|
||||||
|
link.href = 'https://bitcoin-after.life/gitea/bitcoinafterlife/bal-electrum-plugin/releases/download/' + tag + '/bal.zip';
|
||||||
|
if (sig) {
|
||||||
|
sig.href = 'https://bitcoin-after.life/gitea/bitcoinafterlife/bal-electrum-plugin/releases/download/' + tag + '/bal.zip.asc';
|
||||||
|
sig.style.display = 'inline';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.error('Failed to fetch latest release:', err);
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user