Merge pull request #342 from MarieKirya/rework-download-page

Download Page Rework
This commit is contained in:
Matías Locatti 2023-03-10 15:54:34 -03:00 committed by GitHub
commit 6195310f8e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 172 additions and 92 deletions

View file

@ -98,6 +98,10 @@ a:hover {
display: block !important; display: block !important;
} }
.show-with-js {
display: none;
}
// Make text nicer to read in articles // Make text nicer to read in articles
.section.content.pt-sm > p { .section.content.pt-sm > p {
text-align: justify; text-align: justify;
@ -135,12 +139,36 @@ pre > code {
box-shadow: 0 1px 1px rgba(0,0,0,0.125); box-shadow: 0 1px 1px rgba(0,0,0,0.125);
} }
// Workaround for browsers without JavaScript for the downloads page #download-header {
#install-view, #manual-package-view { display: flex;
flex-direction: column;
text-align: center;
}
#download-buttons > a {
margin-top: 0.75rem;
margin-bottom: 0.75rem;
}
@media screen and (min-width: 780px) {
#download-header {
flex-direction: row;
text-align: left;
align-items: center;
}
#download-buttons > a {
margin-top: 0;
margin-bottom: 0;
}
}
#unsupported-platform-view {
display: none; display: none;
} }
.dl-button, #platform-unsupported { // Workaround for browsers without JavaScript for the downloads page
#install-view, #manual-package-view {
display: none; display: none;
} }

View file

@ -4,10 +4,8 @@ layout: "downloads"
FullWidth: true FullWidth: true
--- ---
<div class="tab-content" id="tab-windows">
<h2 class="hide-with-js mt-5">Windows Instructions</h2>
## Windows
<article class="message has-text-weight-semibold"> <article class="message has-text-weight-semibold">
<div class="message-body"> <div class="message-body">
<p style="color:cyan;margin-bottom: 0px;">yuzu requires the latest versions of Microsoft Visual C++. <p style="color:cyan;margin-bottom: 0px;">yuzu requires the latest versions of Microsoft Visual C++.
@ -16,17 +14,19 @@ FullWidth: true
</div> </div>
</article> </article>
#### Windows Installer <h4>Windows Installer</h4>
The installer will allow you to download your preferred release channel. The installer will allow you to download your preferred release channel.
If you are a Patreon subscriber, the "Early Access" channel will be available to you, and will provide early access to exciting experimental changes on top of what is available in the main channel. Please follow our [Early Access guide](https://yuzu-emu.org/help/early-access/) for assistance linking your Patreon account. If you are a Patreon subscriber, the "Early Access" channel will be available to you, and will provide early access to exciting experimental changes on top of what is available in the main channel. Please follow our [Early Access guide](https://yuzu-emu.org/help/early-access/) for assistance linking your Patreon account.
Intel and AMD users are strongly recommended to switch to Vulkan by going to `Emulation > Configure > Graphics > API`. Latest GPU drivers are recommended. Intel and AMD users are strongly recommended to switch to Vulkan by going to `Emulation > Configure > Graphics > API`. Latest GPU drivers are recommended.
</div>
## Linux
<link href="//cdn.jsdelivr.net/npm/font-logos@0.18/assets/font-logos.css" rel="stylesheet">
<div class="tab-content" id="tab-linux">
<h2 class="hide-with-js mt-5">Linux Instructions</h2>
<article class="message has-text-weight-semibold"> <article class="message has-text-weight-semibold">
<div class="message-body"> <div class="message-body">
<p style="color:cyan;margin-bottom: 0px;">We have yuzu as an AppImage and Flatpak now! This relaxes dependency requirements for yuzu, as well as enabling it to run on a lot of older distributions.</p> <p style="color:cyan;margin-bottom: 0px;">We have yuzu as an AppImage and Flatpak now! This relaxes dependency requirements for yuzu, as well as enabling it to run on a lot of older distributions.</p>
@ -42,3 +42,4 @@ chmod a+x yuzu-*.AppImage
``` ```
Or with the GUI, right click the AppImage, click Properties, then Permissions, then click "Allow this file to run as a program". After that, double-click the AppImage to run it. Or with the GUI, right click the AppImage, click Properties, then Permissions, then click "Allow this file to run as a program". After that, double-click the AppImage to run it.
</div>

View file

@ -1,54 +1,83 @@
{{ define "header" }} {{ define "header" }}
<link href="//cdn.jsdelivr.net/npm/font-logos@0.18/assets/font-logos.css" rel="stylesheet">
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<h1 class="title">{{ .Title }}</h1> <div class="mb-3" id="download-header">
<h1 class="title is-flex-grow-1 mb-0">{{ .Title }}</h1>
<div id="download-buttons">
<a href="https://github.com/yuzu-emu/liftinstall/releases/download/1.9/yuzu_install.exe" class="button dl-button is-medium is-success" id="dl-button-windows">
<span class="icon mr-1"><i class="fab fa-windows"></i></span> Download for Windows x64
</a>
<a href="https://github.com/yuzu-emu/liftinstall/releases/download/1.9/liftinstall-31b3e7e.tar.xz" class="button dl-button is-medium is-success" id="dl-button-linux">
<span class="icon mr-1"><i class="fab fa-linux"></i></span> Download for Linux x64
</a>
</div>
</div>
<div id="unsupported-platform-view">
<article class="message is-danger" id="platform-unsupported">
<div class="message-body has-text-white my-5">
Currently, yuzu doesn't support your platform. If you are running Windows x64 or Linux x64 however,
choose one of the options above.
</div>
</article>
</div>
<div class="show-with-js">
<div class="tabs " id="platform-switcher">
<ul>
<li data-target="tab-windows">
<a>
<span class="icon is-small"><i class="fab fa-windows"></i></span>
<span>Windows</span>
</a>
</li>
<li data-target="tab-linux">
<a>
<span class="icon is-small"><i class="fab fa-linux"></i></span>
<span>Linux</span>
</a>
</li>
</ul>
</div>
<div class="content"> <div class="content">
<h2>Instructions</h2>
</div>
</div>
<div class="content" id="platform-instructions">
{{ .Content }} {{ .Content }}
</div> </div>
</div>
</section> </section>
<section class="section"> <section class="section pt-0">
<div class="container"> <div class="container">
<div id="no-js-view"> <div class="hide-with-js content">
Hi! We see that you have JavaScript disabled. We can't show you an <h2>Builds</h2>
updated listing of the available packages for yuzu, nor alternative
installation methods, but here are a few links to get you started: <br /> <article class="message is-warn">
<a href="https://github.com/yuzu-emu/liftinstall/releases/download/1.9/yuzu_install.exe">Windows x64 Installer</a><br /> <div class="message-body has-text-white mb-6">
Hi! We see that you have JavaScript disabled. You can still use the
above download links but we can't show you an updated listing of the available
packages for yuzu, nor alternative installation methods, but we recommend
viewing the
<a href="https://github.com/yuzu-emu/yuzu-mainline/releases">Mainline releases on GitHub</a> <a href="https://github.com/yuzu-emu/yuzu-mainline/releases">Mainline releases on GitHub</a>
</div> </div>
<div id="install-view">
<article class="message is-danger" id="platform-unsupported">
<div class="message-body has-text-white">
yuzu doesn't support your platform. If you are running Windows x64 or Linux x64 however,
choose one of the options below.
</div>
</article> </article>
<div class="buttons is-centered">
<a href="https://github.com/yuzu-emu/liftinstall/releases/download/1.9/yuzu_install.exe" class="button dl-button is-medium is-success" id="dl-button-windows">Download for Windows x64</a>
<a href="https://github.com/yuzu-emu/liftinstall/releases/download/1.9/liftinstall-31b3e7e.tar.xz" class="button dl-button is-medium is-success" id="dl-button-linux">Download for Linux x64</a>
</div> </div>
<div class="buttons is-centered"> <div class="show-with-js" id="package-view">
<!-- Show this when Flatpak/other primary installation methods are provided for Linux/Mac.
<a class="button">
Other platforms
</a>
-->
<a class="button" id="view-package-listing-button">
Manual Download
</a>
</div>
</div>
<div class="columns" id="manual-package-view">
<!-- Mainline --> <!-- Mainline -->
<div class="column"> <div class="content">
<h3>Builds <h2>Builds
<span style='font-size: smaller; margin-left: 6px;'> <span class="tag is-info">
Last release was Last release was &nbsp;
<span id='last-updated-mainline'></span> <span id='last-updated-mainline'></span>
</span> </span>
</h3> </h2>
<div id="downloads-mainline"> <div id="downloads-mainline">
</div> </div>
@ -76,56 +105,78 @@
{{ define "scripts" }} {{ define "scripts" }}
<script type="text/javascript"> <script type="text/javascript">
function fetchReleases() { const setTabActive = (targetId) => {
getRelease('mainline'); document.querySelectorAll(".content .tab-content")
.forEach(element => element.style.display = "none");
document.querySelectorAll(`#${targetId}`)
.forEach(element => element.style.display = "block");
document.querySelectorAll(".tabs li")
.forEach(element => element.classList.remove('is-active'));
document.querySelectorAll(`[data-target="${targetId}"]`)
.forEach(element => element.classList.add('is-active'));
} }
fetchReleases(); const getOSGuess = () => {
const userAgent = navigator.userAgent.toLowerCase();
if (userAgent.includes("windows")) {
return "Windows";
} else if (
userAgent.includes("mac") &&
!userAgent.includes("mobile") &&
!userAgent.includes("phone")
) {
return "Mac";
} else if (
userAgent.includes("linux") &&
userAgent.includes("android")
) {
return "Linux";
}
return "Other";
}
const setupListeners = () => {
document.querySelectorAll(".tabs li")
.forEach(element =>
element.addEventListener('click', (event) => {
setTabActive(element.dataset.target);
})
);
}
getRelease('mainline');
// Show JS relevant elements
document.querySelectorAll(".hide-with-js")
.forEach(element => element.style.display = "none");
document.querySelectorAll(".show-with-js")
.forEach(element => element.style.display = "block");
document.querySelectorAll(".content .tab-content")
.forEach(element => element.style.display = "none");
// Attempt autodetection of their operating system // Attempt autodetection of their operating system
var userAgent = navigator.userAgent.toLowerCase(); switch (getOSGuess()) {
case "Windows":
var allPlatforms = ["windows", "mac", "linux"];
var os = "Other";
if (userAgent.indexOf("windows") !== -1) {
os = "Windows";
} else if (userAgent.indexOf("mac") !== -1 && userAgent.indexOf("mobile") === -1 && userAgent.indexOf("phone") === -1) {
os = "Mac";
} else if (userAgent.indexOf("linux") !== -1 && userAgent.indexOf("android") === -1) {
os = "Linux";
}
// Configure the views for this platform
document.getElementById("no-js-view").style.display = "none";
var platformButton = document.getElementById("dl-button-" + os.toLowerCase());
if (platformButton !== null) {
platformButton.style.display = "block";
} else {
document.getElementById("platform-unsupported").style.display = "block";
}
// Installer is not available on all platforms
if (os === "Mac") {
document.getElementById("install-view").style.display = "none";
document.getElementById("manual-package-view").style.display = "flex";
} else {
document.getElementById("install-view").style.display = "block";
document.getElementById("manual-package-view").style.display = "none";
}
if (os === "Linux") {
document.getElementById("dl-button-linux").style.display = "block";
document.getElementById("dl-button-windows").style.display = "none";
} else if (os === "Windows") {
document.getElementById("dl-button-windows").style.display = "block";
document.getElementById("dl-button-linux").style.display = "none"; document.getElementById("dl-button-linux").style.display = "none";
setTabActive('tab-windows');
break;
case "Linux":
document.getElementById("dl-button-windows").style.display = "none";
setTabActive('tab-linux');
break;
default:
document.getElementById("unsupported-platform-view").style.display = "block";
setTabActive('tab-windows');
break
} }
document.getElementById("view-package-listing-button").addEventListener("click", function() { window.addEventListener('DOMContentLoaded', setupListeners);
this.style.display = "none";
document.getElementById("manual-package-view").style.display = "flex";
});
</script> </script>
{{ end }} {{ end }}