diff --git a/gulpfile.js b/gulpfile.js
index 16e3c52c..a5048c9a 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -66,7 +66,7 @@ gulp.task('assets:images', () => {
const baseImages = gulp.src(`build/images/*`, {base: './'})
.pipe(gulp.dest('./'));
const jumbotronImages = gulp.src(`build/images/jumbotron/*`, {base: './'})
- .pipe(imageResize({width: 786, height: 471, crop: true}))
+ .pipe(imageResize({width: 426, height: 240, crop: true}))
.pipe(gulp.dest('./'));
const bannerImages = gulp.src(`build/images/banners/*`, {base: './'})
.pipe(imageResize({width: 824, height: 306, crop: false}))
@@ -78,7 +78,7 @@ gulp.task('assets:images', () => {
.pipe(imageResize({width: 48, height: 48, crop: true}))
.pipe(gulp.dest('./'));
const screenshotImages = gulp.src(`build/images/screenshots/*`)
- .pipe(imageResize({width: 400, height: 240, crop: false}))
+ .pipe(imageResize({width: 640, height: 360, crop: false}))
.pipe(gulp.dest(`build/images/screenshots/thumbs`));
return merge(baseImages, jumbotronImages, bannerImages, boxartImages, iconImages, screenshotImages);
});
diff --git a/site/config.toml b/site/config.toml
index 7f0a93d9..ccbfabc5 100644
--- a/site/config.toml
+++ b/site/config.toml
@@ -26,8 +26,14 @@ paginate = 20
url = "/wiki/home/"
[[menu.main]]
- name = "donate"
+ name = "screenshots"
weight = 3
+ identifier = "screenshots"
+ url = "/screenshots"
+
+[[menu.main]]
+ name = "donate"
+ weight = 4
identifier = "donate"
url = "/donate"
diff --git a/site/content/screenshots.md b/site/content/screenshots.md
new file mode 100644
index 00000000..fab178ca
--- /dev/null
+++ b/site/content/screenshots.md
@@ -0,0 +1,4 @@
++++
+title = "Screenshots"
+type = "screenshots"
++++
diff --git a/site/layouts/partials/homepage/heroContents.html b/site/layouts/partials/homepage/heroContents.html
index 54d0decc..55abe3f9 100644
--- a/site/layouts/partials/homepage/heroContents.html
+++ b/site/layouts/partials/homepage/heroContents.html
@@ -13,20 +13,62 @@
Download
-
+
Source Code
-
+
-
- {{ partial "inline/heroSvg" }}
-
+
+
+ {{ partial "inline/heroSvg" }}
+
+
+
+
+
+
+ {{ $jumbotronFiles := readDir "/static/images/jumbotron/" }}
+ {{ range $index, $element := $jumbotronFiles }}
+ {{ $fileTitle := (index (split .Name "-") 1) }}
+ {{ $fileTitle := (index (split $fileTitle ".") 0) }}
+ -
+
+
{{ $fileTitle }}
+

+
+
+ {{ end }}
+
+
+
+
+
+
+
-
\ No newline at end of file
+
diff --git a/site/static/images/jumbotron/001-Sonic Mania (In Game).png b/site/static/images/jumbotron/001-Sonic Mania (In Game).png
new file mode 100644
index 00000000..16ae560c
Binary files /dev/null and b/site/static/images/jumbotron/001-Sonic Mania (In Game).png differ
diff --git a/site/static/images/jumbotron/002-The Binding of Issac.jpg b/site/static/images/jumbotron/002-The Binding of Issac.jpg
new file mode 100644
index 00000000..5bad504e
Binary files /dev/null and b/site/static/images/jumbotron/002-The Binding of Issac.jpg differ
diff --git a/site/static/images/screenshots/001-One Piece Unlimited World Deluxe Edition (no logo).png b/site/static/images/screenshots/001-One Piece Unlimited World Deluxe Edition (no logo).png
new file mode 100644
index 00000000..90f84d2e
Binary files /dev/null and b/site/static/images/screenshots/001-One Piece Unlimited World Deluxe Edition (no logo).png differ
diff --git a/site/static/images/screenshots/002-Sonic Mania (Title Screen).png b/site/static/images/screenshots/002-Sonic Mania (Title Screen).png
new file mode 100644
index 00000000..8b458911
Binary files /dev/null and b/site/static/images/screenshots/002-Sonic Mania (Title Screen).png differ
diff --git a/site/static/images/screenshots/003-Sonic Mania (In Game).png b/site/static/images/screenshots/003-Sonic Mania (In Game).png
new file mode 100644
index 00000000..16ae560c
Binary files /dev/null and b/site/static/images/screenshots/003-Sonic Mania (In Game).png differ
diff --git a/site/static/images/screenshots/004-Stardew Valley.png b/site/static/images/screenshots/004-Stardew Valley.png
new file mode 100644
index 00000000..94377ba0
Binary files /dev/null and b/site/static/images/screenshots/004-Stardew Valley.png differ
diff --git a/site/static/images/screenshots/005-Puyopuyo Tetris (Title Screen).png b/site/static/images/screenshots/005-Puyopuyo Tetris (Title Screen).png
new file mode 100644
index 00000000..d070177d
Binary files /dev/null and b/site/static/images/screenshots/005-Puyopuyo Tetris (Title Screen).png differ
diff --git a/site/static/images/screenshots/006-Puyopuyo Tetris (In Game).png b/site/static/images/screenshots/006-Puyopuyo Tetris (In Game).png
new file mode 100644
index 00000000..7cef8742
Binary files /dev/null and b/site/static/images/screenshots/006-Puyopuyo Tetris (In Game).png differ
diff --git a/site/static/images/screenshots/007-One Piece Unlimited World Deluxe Edition (with logo).png b/site/static/images/screenshots/007-One Piece Unlimited World Deluxe Edition (with logo).png
new file mode 100644
index 00000000..df5a8761
Binary files /dev/null and b/site/static/images/screenshots/007-One Piece Unlimited World Deluxe Edition (with logo).png differ
diff --git a/site/static/images/screenshots/008-The Binding of Issac.png b/site/static/images/screenshots/008-The Binding of Issac.png
new file mode 100644
index 00000000..48da5bc1
Binary files /dev/null and b/site/static/images/screenshots/008-The Binding of Issac.png differ
diff --git a/site/themes/shared-bulma-theme b/site/themes/shared-bulma-theme
index 4b72b623..f108e5d9 160000
--- a/site/themes/shared-bulma-theme
+++ b/site/themes/shared-bulma-theme
@@ -1 +1 @@
-Subproject commit 4b72b62370cbe3365c633c2e5615fadecb65cf7c
+Subproject commit f108e5d9f03b22a2da2bf9e68da03c4d7b47b01d
diff --git a/src/js/hero.js b/src/js/hero.js
index 24f687ca..8bddc048 100644
--- a/src/js/hero.js
+++ b/src/js/hero.js
@@ -18,3 +18,30 @@ if (navbar) {
let colors = ["orangered", "deepskyblue", "yellow", "deeppink", "lime", "gray"];
document.body.classList.add("switch-left-" + colors.splice(Math.floor(Math.random() * colors.length), 1)[0]);
document.body.classList.add("switch-right-" + colors[Math.floor(Math.random() * colors.length)]);
+
+// Handle lazy-loading of images
+document.addEventListener("DOMContentLoaded", function () {
+ const elements = document.getElementsByClassName("lazy-load");
+ for (let i = 0; i < elements.length; i++) {
+ const element = elements[i];
+ element.src = element.getAttribute("data-src");
+ }
+});
+
+// Show image carousel, if needed
+const carousels = document.getElementsByClassName("glide");
+if (carousels.length > 0) {
+ document.addEventListener("DOMContentLoaded", function () {
+ const glide = new Glide(".glide", {
+ type: "carousel",
+ perView: 1,
+ focusAt: "center",
+ autoplay: 4000,
+ gap: 0,
+ animationTimingFunc: "ease-in-out",
+ animationDuration: 1000
+ });
+
+ glide.mount();
+ });
+}
diff --git a/src/js/vendor/glide.min.js b/src/js/vendor/glide.min.js
new file mode 100644
index 00000000..7dddf833
--- /dev/null
+++ b/src/js/vendor/glide.min.js
@@ -0,0 +1,6 @@
+/*!
+ * Glide.js v3.1.0
+ * (c) 2013-2018 Jędrzej Chałubek (http://jedrzejchalubek.com/)
+ * Released under the MIT License.
+ */
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Glide=e()}(this,function(){"use strict";var s={type:"slider",startAt:0,perView:1,focusAt:0,gap:10,autoplay:!1,hoverpause:!0,keyboard:!0,bound:!1,swipeThreshold:80,dragThreshold:120,perTouch:!1,touchRatio:.5,touchAngle:45,animationDuration:400,rewind:!0,rewindDuration:800,animationTimingFunc:"cubic-bezier(0.165, 0.840, 0.440, 1.000)",throttle:10,direction:"ltr",peek:0,breakpoints:{},classes:{direction:{ltr:"glide--ltr",rtl:"glide--rtl"},slider:"glide--slider",carousel:"glide--carousel",swipeable:"glide--swipeable",dragging:"glide--dragging",cloneSlide:"glide__slide--clone",activeNav:"glide__bullet--active",activeSlide:"glide__slide--active",disabledArrow:"glide__arrow--disabled"}};var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},u=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},i=function(){function i(t,e){for(var n=0;n":"<","<":">","=":"="},T=[function(e,n){return{modify:function(t){return t+n.Gaps.value*e.index}}},function(t,e){return{modify:function(t){return t+e.Clones.grow/2}}},function(n,i){return{modify:function(t){if(0<=n.settings.focusAt){var e=i.Peek.value;return c(e)?t-e.before:t-e}return t}}},function(o,s){return{modify:function(t){var e=s.Gaps.value,n=s.Sizes.width,i=o.settings.focusAt,r=s.Sizes.slideWidth;return"center"===i?t-(n/2-r/2):t-r*i-e*i}}},function(t,e){return{modify:function(t){return e.Direction.is("rtl")?-t:t}}}],x=["touchstart","mousedown"],A=["touchmove","mousemove"],O=["touchend","touchcancel","mouseup","mouseleave"],M=["mousedown","mousemove","mouseup","mouseleave"];function C(t){return c(t)?(n=t,Object.keys(n).sort().reduce(function(t,e){return t[e]=n[e],t[e],t},{})):{};var n}var z={Html:function(e,t){var n={mount:function(){this.root=e.selector,this.track=this.root.querySelector(_),this.slides=Array.prototype.slice.call(this.wrapper.children).filter(function(t){return!t.classList.contains(e.settings.classes.cloneSlide)})}};return d(n,"root",{get:function(){return n._r},set:function(t){r(t)&&(t=document.querySelector(t)),w(t)&&(n._r=t)}}),d(n,"track",{get:function(){return n._t},set:function(t){w(t)&&(n._t=t)}}),d(n,"wrapper",{get:function(){return n.track.children[0]}}),n},Translate:function(r,o,s){var u={set:function(t){var n,i,e=(n=r,i=o,{mutate:function(t){for(var e=0;e")?(o.Transition.after(function(){s.emit("translate.jump"),u.set(0)}),u.set(i*n+e*n)):u.set(t.movement)}),s.on("destroy",function(){u.remove()}),u},Transition:function(n,e,t){var i=!1,r={compose:function(t){var e=n.settings;return i?t+" 0ms "+e.animationTimingFunc:t+" "+this.duration+"ms "+e.animationTimingFunc},set:function(){var t=0"))&&(e._o=!1,s.emit("run.offset",e.move)),s.emit("run.after",e.move),o.enable()}))},calculate:function(){var t=this.move,e=this.length,n=t.steps,i=t.direction,r="number"==typeof v(n)&&0!==v(n);switch(i){case">":">"===n?o.index=e:this.isEnd()?(o.isType("slider")&&!o.settings.rewind||(this._o=!0,o.index=0),s.emit("run.end",t)):r?o.index+=Math.min(e-o.index,-v(n)):o.index++;break;case"<":"<"===n?o.index=0:this.isStart()?(o.isType("slider")&&!o.settings.rewind||(this._o=!0,o.index=e),s.emit("run.start",t)):r?o.index-=Math.min(o.index,v(n)):o.index--;break;case"=":o.index=n}},isStart:function(){return 0===o.index},isEnd:function(){return o.index===this.length},isOffset:function(t){return this._o&&this.move.direction===t}};return d(t,"move",{get:function(){return this._m},set:function(t){this._m={direction:t.substr(0,1),steps:t.substr(1)?t.substr(1):0}}}),d(t,"length",{get:function(){var t=o.settings,e=n.Html.slides.length;return o.isType("slider")&&t.bound?e-1-(v(t.perView)-1)+v(t.focusAt):e-1}}),d(t,"offset",{get:function(){return this._o}}),t},Swipe:function(c,l,f){var e=new k,d=0,h=0,p=0,n=!1,t={mount:function(){this.bindSwipeStart()},start:function(t){if(!n&&!c.disabled){this.disable();var e=this.touches(t);d=null,h=v(e.pageX),p=v(e.pageY),this.bindSwipeMove(),this.bindSwipeEnd(),f.emit("swipe.start")}},move:function(t){if(!c.disabled){var e=c.settings,n=this.touches(t),i=v(n.pageX)-h,r=v(n.pageY)-p,o=Math.abs(i<<2),s=Math.abs(r<<2),u=Math.sqrt(o+s),a=Math.sqrt(s);if(180*(d=Math.asin(a/u))/Math.PI"+s))):l.Move.make(),l.Html.root.classList.remove(e.classes.dragging),this.unbindSwipeMove(),this.unbindSwipeEnd(),f.emit("swipe.end")}},bindSwipeStart:function(){var t=c.settings;t.swipeThreshold&&e.on(x[0],l.Html.wrapper,this.start.bind(this)),t.dragThreshold&&e.on(x[1],l.Html.wrapper,this.start.bind(this))},unbindSwipeStart:function(){e.off(x[0],l.Html.wrapper),e.off(x[1],l.Html.wrapper)},bindSwipeMove:function(){e.on(A,l.Html.wrapper,g(this.move.bind(this),c.settings.throttle))},unbindSwipeMove:function(){e.off(A,l.Html.wrapper)},bindSwipeEnd:function(){e.on(O,l.Html.wrapper,this.end.bind(this))},unbindSwipeEnd:function(){e.off(O,l.Html.wrapper)},touches:function(t){return-1")),37===t.keyCode&&e.Run.make(e.Direction.resolve("<"))}};return n.on(["destroy","update"],function(){r.unbind()}),n.on("update",function(){r.mount()}),n.on("destroy",function(){i.destroy()}),r},Autoplay:function(e,n,t){var i=new k,r={mount:function(){this.start(),e.settings.hoverpause&&this.bind()},start:function(){var t=this;e.settings.autoplay&&o(this._i)&&(this._i=setInterval(function(){t.stop(),n.Run.make(">"),t.start()},this.time))},stop:function(){this._i=clearInterval(this._i)},bind:function(){var t=this;i.on("mouseover",n.Html.root,function(){t.stop()}),i.on("mouseout",n.Html.root,function(){t.start()})},unbind:function(){i.off(["mouseover","mouseout"],n.Html.root)}};return d(r,"time",{get:function(){var t=n.Html.slides[e.index].getAttribute("data-glide-autoplay");return v(t||e.settings.autoplay)}}),t.on(["destroy","update"],function(){r.unbind()}),t.on(["run.before","pause","destroy","swipe.start","update"],function(){r.stop()}),t.on(["run.after","play","swipe.end"],function(){r.start()}),t.on("update",function(){r.mount()}),t.on("destroy",function(){i.destroy()}),r},Breakpoints:function(t,e,n){var i=new k,r=t.settings,o=r.breakpoints;o=C(o);var s=a({},r),u={match:function(t){if(void 0!==window.matchMedia)for(var e in t)if(t.hasOwnProperty(e)&&window.matchMedia("(max-width: "+e+"px)").matches)return t[e];return s}};return a(r,u.match(o)),i.on("resize",window,g(function(){a(r,u.match(o))},t.settings.throttle)),n.on("update",function(){o=C(o),s=a({},r)}),n.on("destroy",function(){i.off("resize",window)}),u}};return function(t){function e(){return u(this,e),function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,p),i(e,[{key:"mount",value:function(){var t=0