diff --git a/src/docker-compose.yml b/src/docker-compose.yml
index 1987aa6..b867a5e 100644
--- a/src/docker-compose.yml
+++ b/src/docker-compose.yml
@@ -2,7 +2,7 @@ version: '3'
services:
ghost:
- image: ghost:3.32.1
+ image: ghost:4.1.0
container_name: ghost
volumes:
- ./..:/var/lib/ghost/content/themes/liebling:Z
diff --git a/src/js/app.js b/src/js/app.js
index 844eaee..80c4379 100644
--- a/src/js/app.js
+++ b/src/js/app.js
@@ -4,7 +4,8 @@ import Glide, {
Swipe,
Breakpoints
} from '@glidejs/glide/dist/glide.modular.esm'
-import tippy from 'tippy.js'
+import tippy from 'tippy.js';
+import 'tippy.js/dist/tippy.css';
import shave from 'shave'
import AOS from 'aos'
import Fuse from 'fuse.js/dist/fuse.basic.esm.min.js'
@@ -16,7 +17,7 @@ import {
getParameterByName
} from './helpers'
-$(document).ready(() => {
+$(() => {
if (isRTL()) {
$('html').attr('dir', 'rtl').addClass('rtl')
}
@@ -41,6 +42,7 @@ $(document).ready(() => {
const $closeNotification = $('.js-notification-close')
const $mainNav = $('.js-main-nav')
const $mainNavLeft = $('.js-main-nav-left')
+ const $newsletterElements = $('.js-newsletter')
const currentSavedTheme = localStorage.getItem('theme')
let fuse = null
@@ -63,6 +65,12 @@ $(document).ready(() => {
$body.toggleClass('no-scroll-y')
}
+ const tryToRemoveNewsletter = () => {
+ if (typeof disableNewsletter !== 'undefined' && disableNewsletter) {
+ $newsletterElements.remove()
+ }
+ }
+
const trySearchFeature = () => {
if (typeof ghostSearchApiKey !== 'undefined') {
getAllPosts(ghostHost, ghostSearchApiKey)
@@ -161,19 +169,19 @@ $(document).ready(() => {
}
}
- $openMenu.click(() => {
+ $openMenu.on('click', () => {
$header.addClass('mobile-menu-opened')
$menu.addClass('opened')
toggleScrollVertical()
})
- $closeMenu.click(() => {
+ $closeMenu.on('click', () => {
$header.removeClass('mobile-menu-opened')
$menu.removeClass('opened')
toggleScrollVertical()
})
- $toggleSubmenu.click(() => {
+ $toggleSubmenu.on('click', () => {
submenuIsOpen = !submenuIsOpen
if (submenuIsOpen) {
@@ -183,21 +191,21 @@ $(document).ready(() => {
}
})
- $openSearch.click(() => {
+ $openSearch.on('click', () => {
$search.addClass('opened')
setTimeout(() => {
- $inputSearch.focus()
+ $inputSearch.trigger('focus')
}, 400);
toggleScrollVertical()
})
- $closeSearch.click(() => {
- $inputSearch.blur()
+ $closeSearch.on('click', () => {
+ $inputSearch.trigger('blur')
$search.removeClass('opened')
toggleScrollVertical()
})
- $inputSearch.keyup(() => {
+ $inputSearch.on('keyup', () => {
if ($inputSearch.val().length > 0 && fuse) {
const results = fuse.search($inputSearch.val())
const bestResults = results.filter((result) => {
@@ -234,7 +242,7 @@ $(document).ready(() => {
}
})
- $toggleDarkMode.change(() => {
+ $toggleDarkMode.on('change', () => {
if ($toggleDarkMode.is(':checked')) {
$('html').attr('data-theme', 'dark')
localStorage.setItem('theme', 'dark')
@@ -244,17 +252,17 @@ $(document).ready(() => {
}
})
- $toggleDarkMode.hover(() => {
+ $toggleDarkMode.on('hover', () => {
toggleDesktopTopbarOverflow(true)
}, () => {
toggleDesktopTopbarOverflow(false)
})
- $closeNotification.click(function () {
+ $closeNotification.on('click', function () {
closeNotification($(this).parent())
})
- $(window).click((e) => {
+ $(window).on('click', (e) => {
if (submenuIsOpen) {
if ($submenuOption && !$submenuOption.contains(e.target)) {
submenuIsOpen = false
@@ -263,7 +271,7 @@ $(document).ready(() => {
}
})
- $(document).keyup((e) => {
+ $(document).on('keyup', (e) => {
if (e.key === 'Escape' && $search.hasClass('opened')) {
$closeSearch.click()
}
@@ -353,6 +361,7 @@ $(document).ready(() => {
const template = document.getElementById('secondary-navigation-template')
secondaryMenuTippy = tippy('.js-open-secondary-menu', {
+ appendTo: document.body,
content: template.innerHTML,
allowHTML: true,
arrow: true,
@@ -373,5 +382,6 @@ $(document).ready(() => {
shave('.js-article-card-title-no-image', 250)
checkForActionParameter()
+ tryToRemoveNewsletter()
trySearchFeature()
})
diff --git a/src/js/home.js b/src/js/home.js
index 249e450..b5e39b5 100644
--- a/src/js/home.js
+++ b/src/js/home.js
@@ -7,7 +7,7 @@ import Glide, {
} from '@glidejs/glide/dist/glide.modular.esm'
import { isRTL } from './helpers'
-$(document).ready(() => {
+$(() => {
const $featuredSlider = $('.js-featured-slider')
if ($featuredSlider.length > 0) {
@@ -82,7 +82,7 @@ $(document).ready(() => {
featuredSlider.on('mount.after', () => {
shave('.js-featured-article-title', 200)
})
-
+
featuredSlider.mount({ Controls, Swipe, Breakpoints, ArrowDisabler })
setTimeout(() => {
diff --git a/src/js/page.js b/src/js/page.js
index c499ed1..6b6dac5 100644
--- a/src/js/page.js
+++ b/src/js/page.js
@@ -7,7 +7,7 @@ import {
makeImagesZoomable
} from './helpers'
-$(document).ready(() => {
+$(() => {
fitvids('.js-post-content')
adjustImageGallery()
diff --git a/src/js/post.js b/src/js/post.js
index 35c040f..923410f 100644
--- a/src/js/post.js
+++ b/src/js/post.js
@@ -109,7 +109,7 @@ const prepareProgressCircle = () => {
}, 300)
}
-$(document).ready(() => {
+$(() => {
$aosWrapper = $('.js-aos-wrapper')
const $scrollButton = $('.js-scrolltop')
const $recommendedSlider = $('.js-recommended-slider')
@@ -176,7 +176,7 @@ $(document).ready(() => {
shave('.js-article-card-title', 100)
shave('.js-article-card-title-no-image', 250)
- $scrollButton.click(() => {
+ $scrollButton.on('click', () => {
$('html, body').animate({
scrollTop: 0
}, 500)
diff --git a/src/js/vendor/content-api.min.js b/src/js/vendor/content-api.min.js
index bbd4e16..2d4513b 100644
--- a/src/js/vendor/content-api.min.js
+++ b/src/js/vendor/content-api.min.js
@@ -1,2 +1 @@
-!function (t, e) { "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : (t = t || self).GhostContentAPI = e() }(this, function () { "use strict"; var t = function (t) { return "object" == typeof t ? null !== t : "function" == typeof t }, e = function (e) { if (!t(e)) throw TypeError(e + " is not an object!"); return e }, n = function (t) { try { return !!t() } catch (t) { return !0 } }, r = !n(function () { return 7 != Object.defineProperty({}, "a", { get: function () { return 7 } }).a }); function o(t, e) { return t(e = { exports: {} }, e.exports), e.exports } var i = o(function (t) { var e = t.exports = "undefined" != typeof window && window.Math == Math ? window : "undefined" != typeof self && self.Math == Math ? self : Function("return this")(); "number" == typeof __g && (__g = e) }), a = i.document, s = t(a) && t(a.createElement), c = function (t) { return s ? a.createElement(t) : {} }, u = !r && !n(function () { return 7 != Object.defineProperty(c("div"), "a", { get: function () { return 7 } }).a }), f = Object.defineProperty, l = { f: r ? Object.defineProperty : function (n, r, o) { if (e(n), r = function (e, n) { if (!t(e)) return e; var r, o; if (n && "function" == typeof (r = e.toString) && !t(o = r.call(e))) return o; if ("function" == typeof (r = e.valueOf) && !t(o = r.call(e))) return o; if (!n && "function" == typeof (r = e.toString) && !t(o = r.call(e))) return o; throw TypeError("Can't convert object to primitive value") }(r, !0), e(o), u) try { return f(n, r, o) } catch (t) { } if ("get" in o || "set" in o) throw TypeError("Accessors not supported!"); return "value" in o && (n[r] = o.value), n } }, h = l.f, p = Function.prototype, d = /^\s*function ([^ (]*)/; "name" in p || r && h(p, "name", { configurable: !0, get: function () { try { return ("" + this).match(d)[1] } catch (t) { return "" } } }); var v = o(function (t) { var e = t.exports = { version: "2.6.5" }; "number" == typeof __e && (__e = e) }), m = (v.version, o(function (t) { var e = i["__core-js_shared__"] || (i["__core-js_shared__"] = {}); (t.exports = function (t, n) { return e[t] || (e[t] = void 0 !== n ? n : {}) })("versions", []).push({ version: v.version, mode: "global", copyright: "© 2019 Denis Pushkarev (zloirock.ru)" }) })), y = 0, g = Math.random(), w = function (t) { return "Symbol(".concat(void 0 === t ? "" : t, ")_", (++y + g).toString(36)) }, b = o(function (t) { var e = m("wks"), n = i.Symbol, r = "function" == typeof n; (t.exports = function (t) { return e[t] || (e[t] = r && n[t] || (r ? n : w)("Symbol." + t)) }).store = e }), j = function (t, e) { return { enumerable: !(1 & t), configurable: !(2 & t), writable: !(4 & t), value: e } }, S = r ? function (t, e, n) { return l.f(t, e, j(1, n)) } : function (t, e, n) { return t[e] = n, t }, _ = b("unscopables"), E = Array.prototype; null == E[_] && S(E, _, {}); var O = function (t) { E[_][t] = !0 }, P = function (t, e) { return { value: e, done: !!t } }, x = {}, C = {}.toString, A = function (t) { return C.call(t).slice(8, -1) }, T = Object("z").propertyIsEnumerable(0) ? Object : function (t) { return "String" == A(t) ? t.split("") : Object(t) }, k = function (t) { if (null == t) throw TypeError("Can't call method on " + t); return t }, R = function (t) { return T(k(t)) }, L = {}.hasOwnProperty, M = function (t, e) { return L.call(t, e) }, N = m("native-function-to-string", Function.toString), I = o(function (t) { var e = w("src"), n = ("" + N).split("toString"); v.inspectSource = function (t) { return N.call(t) }, (t.exports = function (t, r, o, a) { var s = "function" == typeof o; s && (M(o, "name") || S(o, "name", r)), t[r] !== o && (s && (M(o, e) || S(o, e, t[r] ? "" + t[r] : n.join(String(r)))), t === i ? t[r] = o : a ? t[r] ? t[r] = o : S(t, r, o) : (delete t[r], S(t, r, o))) })(Function.prototype, "toString", function () { return "function" == typeof this && this[e] || N.call(this) }) }), F = function (t) { if ("function" != typeof t) throw TypeError(t + " is not a function!"); return t }, q = function (t, e, n) { if (F(t), void 0 === e) return t; switch (n) { case 1: return function (n) { return t.call(e, n) }; case 2: return function (n, r) { return t.call(e, n, r) }; case 3: return function (n, r, o) { return t.call(e, n, r, o) } }return function () { return t.apply(e, arguments) } }, B = function (t, e, n) { var r, o, a, s, c = t & B.F, u = t & B.G, f = t & B.S, l = t & B.P, h = t & B.B, p = u ? i : f ? i[e] || (i[e] = {}) : (i[e] || {}).prototype, d = u ? v : v[e] || (v[e] = {}), m = d.prototype || (d.prototype = {}); for (r in u && (n = e), n) a = ((o = !c && p && void 0 !== p[r]) ? p : n)[r], s = h && o ? q(a, i) : l && "function" == typeof a ? q(Function.call, a) : a, p && I(p, r, a, t & B.U), d[r] != a && S(d, r, s), l && m[r] != a && (m[r] = a) }; i.core = v, B.F = 1, B.G = 2, B.S = 4, B.P = 8, B.B = 16, B.W = 32, B.U = 64, B.R = 128; var U = B, D = Math.ceil, G = Math.floor, W = function (t) { return isNaN(t = +t) ? 0 : (t > 0 ? G : D)(t) }, z = Math.min, H = function (t) { return t > 0 ? z(W(t), 9007199254740991) : 0 }, V = Math.max, X = Math.min, J = function (t) { return function (e, n, r) { var o, i = R(e), a = H(i.length), s = function (t, e) { return (t = W(t)) < 0 ? V(t + e, 0) : X(t, e) }(r, a); if (t && n != n) { for (; a > s;)if ((o = i[s++]) != o) return !0 } else for (; a > s; s++)if ((t || s in i) && i[s] === n) return t || s || 0; return !t && -1 } }, K = m("keys"), $ = function (t) { return K[t] || (K[t] = w(t)) }, Q = J(!1), Y = $("IE_PROTO"), Z = "constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","), tt = Object.keys || function (t) { return function (t, e) { var n, r = R(t), o = 0, i = []; for (n in r) n != Y && M(r, n) && i.push(n); for (; e.length > o;)M(r, n = e[o++]) && (~Q(i, n) || i.push(n)); return i }(t, Z) }, et = r ? Object.defineProperties : function (t, n) { e(t); for (var r, o = tt(n), i = o.length, a = 0; i > a;)l.f(t, r = o[a++], n[r]); return t }, nt = i.document, rt = nt && nt.documentElement, ot = $("IE_PROTO"), it = function () { }, at = function () { var t, e = c("iframe"), n = Z.length; for (e.style.display = "none", rt.appendChild(e), e.src = "javascript:", (t = e.contentWindow.document).open(), t.write("