Add Download page
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Lucas Chaplain 2022-02-01 16:08:16 +01:00
parent ea99022e4d
commit 54ff639713
4 changed files with 232 additions and 3 deletions

View file

@ -0,0 +1,4 @@
+++
template = "download.html"
page_template = "download.html"
+++

224
templates/download.html Normal file
View file

@ -0,0 +1,224 @@
{% extends 'base.html' %}
{% block title %}
{{ config.title }} | {{ page.title }}
{% endblock %}
{% block content %}
<section id="download-section" class="section">
<div class="mx-auto max-w-7xl py-12">
<div class="flex flex-col items-center justify-center">
<h1 class="text-garage-orange font-bold text-2xl text-center">Garage releases</h1>
<div class="my-4 h-1 w-16 bg-garage-orange"></div>
</div>
<div id="releases-container" class="py-24 space-y-20">
<div id="release-builds">
<h2 class="text-garage-gray text-xl font-semibold">Release Builds</h2>
<div id="release-builds-container" class="space-y-12"></div>
</div>
<div id="extra-builds" class="space-y-4">
<h2 class="text-garage-gray text-xl font-semibold">Extra Builds</h2>
<p>Extra builds are built on demand to test a specific feature or a specific need.</p>
<details>
<summary class="text-garage-orange font-bold cursor-pointer">Show Extra Builds</summary>
<div id="extra-builds-container" class="space-y-12"></div>
</details>
</div>
<div id="development-builds" class="space-y-4">
<h2 class="text-garage-gray text-xl font-semibold">Development Builds</h2>
<p>Development builds are built periodically. Use them if you want to test a specific feature that is not yet released.</p>
<details>
<summary class="text-garage-orange font-bold cursor-pointer">Show Development Builds</summary>
<div id="development-builds-container" class="space-y-12"></div>
</details>
</div>
</div>
<noscript>
<style type="text/css">
#releases-container{display:none;}
</style>
<div id="js-disabled-msg" class="p-12" style="height:70vh">
Access the Garage releases by clicking on the following link :
<a class="font-bold text-garage-orange hover:underline" href="https://garagehq.deuxfleurs.fr/_releases.html">https://garagehq.deuxfleurs.fr/_releases.html</a>
</div>
</noscript>
</div>
</section>
{% endblock %}
{% block custom_js %}
<script>
var getJSON = function(url, callback) {
var xmlhttprequest = new XMLHttpRequest();
xmlhttprequest.open('GET', url, true);
xmlhttprequest.responseType = 'json';
xmlhttprequest.onload = function() {
var status = xmlhttprequest.status;
if (status == 200) {
callback(null, xmlhttprequest.response);
} else {
callback(status, xmlhttprequest.response);
}
};
xmlhttprequest.send();
};
getJSON('https://garagehq.deuxfleurs.fr/_releases.json', function(err, data) {
err != null ?? (console.error(err), die());
if (err == null) {
let releaseBuilds = data[0].builds;
let extraBuilds = data[1].builds;
let developmentBuilds = data[2].builds;
console.log(extraBuilds)
/** Release Builds */
for (i = 0; i < releaseBuilds.length; i++) {
window['build' + i] =
`
<div class="mt-8 bg-gray-50 border border-gray-200 p-4 rounded shadow-sm">
<h3 class="flex flex-col space-y-1.5 font-extrabold text-garage-orange">
<span>${releaseBuilds[i]['version']}</span>
<span class="text-garage-gray font-normal text-sm">${releaseBuilds[i]['builds'][0]['date']}</span>
</h3>
<div id="release-builds-detail-${i}" class="flex items-center pt-4 space-x-2">
<span>Binaries</span>
</div>
<div id="release-builds-source-${i}" class="flex items-center pt-4 space-x-2">
<span>Sources</span>
<a href="https://git.deuxfleurs.fr/Deuxfleurs/garage/src/tag/${releaseBuilds[i]['version']}" class="inline-block p-1.5 text-garage-gray font-bold bg-gray-300 hover:bg-orange-300 rounded border-b-2 border-gray-400 hover:border-orange-400 transition-all duration-300">
<svg class="inline w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M9 19l3 3m0 0l3-3m-3 3V10"></path></svg>
<span>Gitea</span>
</a>
<a href="https://git.deuxfleurs.fr/Deuxfleurs/garage/archive/${releaseBuilds[i]['version']}.zip" class="inline-block p-1.5 text-garage-gray font-bold bg-gray-300 hover:bg-orange-300 rounded border-b-2 border-gray-400 hover:border-orange-400 transition-all duration-300">
<svg class="inline w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M9 19l3 3m0 0l3-3m-3 3V10"></path></svg>
<span>.zip</span>
</a>
<a href="https://git.deuxfleurs.fr/Deuxfleurs/garage/archive/${releaseBuilds[i]['version']}.tar.gz" class="inline-block p-1.5 text-garage-gray font-bold bg-gray-300 hover:bg-orange-300 rounded border-b-2 border-gray-400 hover:border-orange-400 transition-all duration-300">
<svg class="inline w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M9 19l3 3m0 0l3-3m-3 3V10"></path></svg>
<span>.tar.gz</span>
</a>
</div>
</div>
`;
document.getElementById('release-builds-container').innerHTML += window['build' + i];
for (j = 0; j < releaseBuilds[i]['builds'].length; j++) {
window['buildDetail' + i] =
`
<a href="${releaseBuilds[i]['builds'][j]['path']}" class="inline-block p-1.5 text-garage-gray font-bold bg-gray-300 hover:bg-orange-300 rounded border-b-2 border-gray-400 hover:border-orange-400 transition-all duration-300">
<svg class="inline w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M9 19l3 3m0 0l3-3m-3 3V10"></path></svg>
<span>
${releaseBuilds[i]['builds'][j]['platform']
.replace('aarch64-unknown-linux-musl', 'linux/arm64')
.replace('armv6l-unknown-linux-musleabihf', 'linux/arm')
.replace('i686-unknown-linux-musl', 'linux/386')
.replace('x86_64-unknown-linux-musl', 'linux/amd64')}
</span>
</a>
`;
document.getElementById('release-builds-detail-' + i).innerHTML += window['buildDetail' + i];
}
}
/** Extra Builds */
for (i = 0; i < extraBuilds.length; i++) {
window['build' + i] =
`
<div class="mt-8 bg-gray-50 border border-gray-200 p-4 rounded shadow-sm">
<h3 class="flex flex-col space-y-1.5 font-extrabold text-garage-orange">
<span>${extraBuilds[i]['version']}</span>
<span class="text-garage-gray font-normal text-sm">${extraBuilds[i]['builds'][0]['date']}</span>
</h3>
<div id="extra-builds-detail-${i}" class="flex items-center pt-4 space-x-2">
<span>Binaries</span>
</div>
<div id="extra-builds-source-${i}" class="flex items-center pt-4 space-x-2">
<span>Sources</span>
<a href="https://git.deuxfleurs.fr/Deuxfleurs/garage/src/tag/${extraBuilds[i]['version']}" class="inline-block p-1.5 text-garage-gray font-bold bg-gray-300 hover:bg-orange-300 rounded border-b-2 border-gray-400 hover:border-orange-400 transition-all duration-300">
<svg class="inline w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M9 19l3 3m0 0l3-3m-3 3V10"></path></svg>
<span>Gitea</span>
</a>
<a href="https://git.deuxfleurs.fr/Deuxfleurs/garage/archive/${extraBuilds[i]['version']}.zip" class="inline-block p-1.5 text-garage-gray font-bold bg-gray-300 hover:bg-orange-300 rounded border-b-2 border-gray-400 hover:border-orange-400 transition-all duration-300">
<svg class="inline w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M9 19l3 3m0 0l3-3m-3 3V10"></path></svg>
<span>.zip</span>
</a>
<a href="https://git.deuxfleurs.fr/Deuxfleurs/garage/archive/${extraBuilds[i]['version']}.tar.gz" class="inline-block p-1.5 text-garage-gray font-bold bg-gray-300 hover:bg-orange-300 rounded border-b-2 border-gray-400 hover:border-orange-400 transition-all duration-300">
<svg class="inline w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M9 19l3 3m0 0l3-3m-3 3V10"></path></svg>
<span>.tar.gz</span>
</a>
</div>
</div>
`;
document.getElementById('extra-builds-container').innerHTML += window['build' + i];
for (j = 0; j < extraBuilds[i]['builds'].length; j++) {
window['buildDetail' + i] =
`
<a href="${extraBuilds[i]['builds'][j]['path']}" class="inline-block p-1.5 text-garage-gray font-bold bg-gray-300 hover:bg-orange-300 rounded border-b-2 border-gray-400 hover:border-orange-400 transition-all duration-300">
<svg class="inline w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M9 19l3 3m0 0l3-3m-3 3V10"></path></svg>
<span>
${extraBuilds[i]['builds'][j]['platform']
.replace('aarch64-unknown-linux-musl', 'linux/arm64')
.replace('armv6l-unknown-linux-musleabihf', 'linux/arm')
.replace('i686-unknown-linux-musl', 'linux/386')
.replace('x86_64-unknown-linux-musl', 'linux/amd64')}
</span>
</a>
`;
document.getElementById('extra-builds-detail-' + i).innerHTML += window['buildDetail' + i];
}
}
/** Development Builds */
for (i = 0; i < developmentBuilds.length; i++) {
window['build' + i] =
`
<div class="mt-8 bg-gray-50 border border-gray-200 p-4 rounded shadow-sm">
<h3 class="flex flex-col space-y-1.5 font-extrabold text-garage-orange">
<span>${developmentBuilds[i]['version']}</span>
<span class="text-garage-gray font-normal text-sm">${developmentBuilds[i]['builds'][0]['date']}</span>
</h3>
<div id="development-builds-detail-${i}" class="flex items-center pt-4 space-x-2">
<span>Binaries</span>
</div>
<div id="development-builds-source-${i}" class="flex items-center pt-4 space-x-2">
<span>Sources</span>
<a href="https://git.deuxfleurs.fr/Deuxfleurs/garage/src/tag/${developmentBuilds[i]['version']}" class="inline-block p-1.5 text-garage-gray font-bold bg-gray-300 hover:bg-orange-300 rounded border-b-2 border-gray-400 hover:border-orange-400 transition-all duration-300">
<svg class="inline w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M9 19l3 3m0 0l3-3m-3 3V10"></path></svg>
<span>Gitea</span>
</a>
<a href="https://git.deuxfleurs.fr/Deuxfleurs/garage/archive/${developmentBuilds[i]['version']}.zip" class="inline-block p-1.5 text-garage-gray font-bold bg-gray-300 hover:bg-orange-300 rounded border-b-2 border-gray-400 hover:border-orange-400 transition-all duration-300">
<svg class="inline w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M9 19l3 3m0 0l3-3m-3 3V10"></path></svg>
<span>.zip</span>
</a>
<a href="https://git.deuxfleurs.fr/Deuxfleurs/garage/archive/${developmentBuilds[i]['version']}.tar.gz" class="inline-block p-1.5 text-garage-gray font-bold bg-gray-300 hover:bg-orange-300 rounded border-b-2 border-gray-400 hover:border-orange-400 transition-all duration-300">
<svg class="inline w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M9 19l3 3m0 0l3-3m-3 3V10"></path></svg>
<span>.tar.gz</span>
</a>
</div>
</div>
`;
document.getElementById('development-builds-container').innerHTML += window['build' + i];
for (j = 0; j < developmentBuilds[i]['builds'].length; j++) {
window['buildDetail' + i] =
`
<a href="${developmentBuilds[i]['builds'][j]['path']}" class="inline-block p-1.5 text-garage-gray font-bold bg-gray-300 hover:bg-orange-300 rounded border-b-2 border-gray-400 hover:border-orange-400 transition-all duration-300">
<svg class="inline w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M9 19l3 3m0 0l3-3m-3 3V10"></path></svg>
<span>
${developmentBuilds[i]['builds'][j]['platform']
.replace('aarch64-unknown-linux-musl', 'linux/arm64')
.replace('armv6l-unknown-linux-musleabihf', 'linux/arm')
.replace('i686-unknown-linux-musl', 'linux/386')
.replace('x86_64-unknown-linux-musl', 'linux/amd64')}
</span>
</a>
`;
document.getElementById('development-builds-detail-' + i).innerHTML += window['buildDetail' + i];
}
}
}
});
</script>
{% endblock %}

View file

@ -40,7 +40,8 @@
<span class="hidden md:inline">Download</span> <span class="hidden md:inline">Download</span>
</a> </a>
<a <a
href="/documentation/quick-start/" href="https://git.deuxfleurs.fr/Deuxfleurs/garage"
target="_blank"
title="Check the source on Gitea" title="Check the source on Gitea"
class="group flex items-center justify-center space-x-1 font-semibold shadow hover:shadow px-2 py-1.5 rounded text-white transition-all duration-500 bg-gradient-to-tl from-gray-400 via-gray-500 to-gray-400 bg-size-200 bg-pos-0 hover:bg-pos-100"> class="group flex items-center justify-center space-x-1 font-semibold shadow hover:shadow px-2 py-1.5 rounded text-white transition-all duration-500 bg-gradient-to-tl from-gray-400 via-gray-500 to-gray-400 bg-size-200 bg-pos-0 hover:bg-pos-100">
<svg class="w-6 h-6 animate-pulse" fill="none" stroke="currentColor" viewBox="0 0 97 97" xmlns="http://www.w3.org/2000/svg"><path fill="#FFFFFF" d="M92.71,44.408L52.591,4.291c-2.31-2.311-6.057-2.311-8.369,0l-8.33,8.332L46.459,23.19 c2.456-0.83,5.272-0.273,7.229,1.685c1.969,1.97,2.521,4.81,1.67,7.275l10.186,10.185c2.465-0.85,5.307-0.3,7.275,1.671 c2.75,2.75,2.75,7.206,0,9.958c-2.752,2.751-7.208,2.751-9.961,0c-2.068-2.07-2.58-5.11-1.531-7.658l-9.5-9.499v24.997 c0.67,0.332,1.303,0.774,1.861,1.332c2.75,2.75,2.75,7.206,0,9.959c-2.75,2.749-7.209,2.749-9.957,0c-2.75-2.754-2.75-7.21,0-9.959 c0.68-0.679,1.467-1.193,2.307-1.537V36.369c-0.84-0.344-1.625-0.853-2.307-1.537c-2.083-2.082-2.584-5.14-1.516-7.698 L31.798,16.715L4.288,44.222c-2.311,2.313-2.311,6.06,0,8.371l40.121,40.118c2.31,2.311,6.056,2.311,8.369,0L92.71,52.779 C95.021,50.468,95.021,46.719,92.71,44.408z"/></svg> <svg class="w-6 h-6 animate-pulse" fill="none" stroke="currentColor" viewBox="0 0 97 97" xmlns="http://www.w3.org/2000/svg"><path fill="#FFFFFF" d="M92.71,44.408L52.591,4.291c-2.31-2.311-6.057-2.311-8.369,0l-8.33,8.332L46.459,23.19 c2.456-0.83,5.272-0.273,7.229,1.685c1.969,1.97,2.521,4.81,1.67,7.275l10.186,10.185c2.465-0.85,5.307-0.3,7.275,1.671 c2.75,2.75,2.75,7.206,0,9.958c-2.752,2.751-7.208,2.751-9.961,0c-2.068-2.07-2.58-5.11-1.531-7.658l-9.5-9.499v24.997 c0.67,0.332,1.303,0.774,1.861,1.332c2.75,2.75,2.75,7.206,0,9.959c-2.75,2.749-7.209,2.749-9.957,0c-2.75-2.754-2.75-7.21,0-9.959 c0.68-0.679,1.467-1.193,2.307-1.537V36.369c-0.84-0.344-1.625-0.853-2.307-1.537c-2.083-2.082-2.584-5.14-1.516-7.698 L31.798,16.715L4.288,44.222c-2.311,2.313-2.311,6.06,0,8.371l40.121,40.118c2.31,2.311,6.056,2.311,8.369,0L92.71,52.779 C95.021,50.468,95.021,46.719,92.71,44.408z"/></svg>

View file

@ -41,8 +41,8 @@
</div> </div>
</div> </div>
<div class="content mt-2"> <div class="content mt-2">
<div class="text-gray-700"> <div class="text-gray-700 not-italic">
{{ page.summary | safe }} {{ page.summary | safe | striptags }}
</div> </div>
<a class="group font-semibold p-4 flex items-center space-x-1 text-garage-orange" href='{{ page.permalink }}'> <a class="group font-semibold p-4 flex items-center space-x-1 text-garage-orange" href='{{ page.permalink }}'>
<div class="h-0.5 mt-0.5 w-4 group-hover:w-8 group-hover:bg-garage-gray transition-all bg-garage-orange"></div> <div class="h-0.5 mt-0.5 w-4 group-hover:w-8 group-hover:bg-garage-gray transition-all bg-garage-orange"></div>