appscms-tools-theme 2.9.5 → 2.9.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE.txt +21 -21
- data/README.md +50 -50
- data/_data/about/en/about.json +16 -16
- data/_data/blog/alertbar.yml +3 -3
- data/_data/blog/authors.yml +11 -11
- data/_data/blog/blog.yml +4 -4
- data/_data/blog/nav.json +13 -13
- data/_data/blog/share.yml +28 -28
- data/_data/calculators/en/biology-calc/bulb-spacing.json +78 -78
- data/_data/calculators/en/biology-calc/cat-chocolate-toxicity.json +52 -52
- data/_data/calculators/en/chemistry-calc/activation-energy.json +44 -44
- data/_data/calculators/en/finance-calc/401k.json +122 -122
- data/_data/contact/en/contact.json +38 -38
- data/_data/disclaimer/en/disclaimer.json +37 -37
- data/_data/download/en/download.json +35 -35
- data/_data/feature/en/3_shop_posters.json +351 -351
- data/_data/feature/en/allele-frequency.json +246 -246
- data/_data/feature/en/batch-conversion.json +77 -77
- data/_data/feature/en/compress-pdf.json +202 -202
- data/_data/feature/en/face-detection.json +52 -52
- data/_data/feature/en/split-pdf.json +115 -115
- data/_data/feature/en/theframe.json +56 -56
- data/_data/feature/hi/compress-pdf.json +81 -81
- data/_data/feature/tr/compress-pdf.json +80 -80
- data/_data/filecomparison/en/filecomparison.json +38 -38
- data/_data/fileinfo/en/fileinfo.json +15 -15
- data/_data/footer/en/data.json +164 -164
- data/_data/footer/hi/data.json +68 -68
- data/_data/footer/networksites.json +15 -15
- data/_data/header/en/data.json +173 -173
- data/_data/header/hi/data.json +144 -144
- data/_data/home/en/en.json +285 -285
- data/_data/home/en/photoeffects.json +23 -23
- data/_data/home/en/posters.json +323 -323
- data/_data/home/hi/hi.json +86 -86
- data/_data/home-1/en/en.json +229 -229
- data/_data/languagesupport/compress-pdf-langs.json +11 -11
- data/_data/languagesupport/index-langs.json +13 -13
- data/_data/photo-categories.json +104 -104
- data/_data/photoeffects.json +31 -31
- data/_data/privacy/en/privacyPolicy.json +265 -265
- data/_data/termAndCondition/en/termAndCondition.json +358 -358
- data/_includes/Rating/rating.html +92 -92
- data/_includes/Rating/structureddata.html +53 -53
- data/_includes/Usp/usp.html +95 -95
- data/_includes/adblocker.html +135 -135
- data/_includes/adsense/adsense.html +7 -7
- data/_includes/alternates/alternates.html +45 -45
- data/_includes/author_bio.html +16 -16
- data/_includes/authors/authors.html +67 -67
- data/_includes/batch-conversion.html +65 -65
- data/_includes/cssfile/links.html +11 -11
- data/_includes/custom-head.html +136 -136
- data/_includes/customblog/recentposts.html +67 -67
- data/_includes/customblog/relatedposts.html +203 -203
- data/_includes/disqus_comments.html +10 -10
- data/_includes/dropdown/langdropdown.html +22 -22
- data/_includes/feature.html +37 -37
- data/_includes/fileformat/Tabularcompariosn.html +158 -158
- data/_includes/fileformat/comparisonfiles.html +151 -151
- data/_includes/fileformat/fileformatdetail.html +101 -101
- data/_includes/fileformat/fileinfoformat.html +93 -93
- data/_includes/footer/index.html +534 -534
- data/_includes/google-analytics.html +22 -22
- data/_includes/head/index.html +235 -235
- data/_includes/header/blogHeader.html +34 -34
- data/_includes/header/index.html +188 -188
- data/_includes/languages/languages.html +60 -60
- data/_includes/monumetric/ads.html +57 -57
- data/_includes/monumetric/monumetric.html +57 -57
- data/_includes/monumetric/profitablecpmgate.html +51 -51
- data/_includes/nofiletransfer/nofiletransfer.html +38 -38
- data/_includes/paginationBlogPage.html +71 -71
- data/_includes/paginationPostPage.html +14 -14
- data/_includes/postauthorbio.html +17 -17
- data/_includes/postbox.html +31 -31
- data/_includes/script.html +58 -58
- data/_includes/section/alertbar.html +11 -11
- data/_includes/section/count.html +36 -36
- data/_includes/section/recent_posts.html +65 -65
- data/_includes/section/related_categories_post.html +198 -198
- data/_includes/share/socialshare.html +20 -20
- data/_includes/staticfooter.html +67 -67
- data/_layouts/aboutUs.html +34 -34
- data/_layouts/batch.html +102 -102
- data/_layouts/blog-1.html +83 -83
- data/_layouts/blog.html +94 -94
- data/_layouts/calculator.html +89 -89
- data/_layouts/categories.html +33 -33
- data/_layouts/contactUs.html +124 -124
- data/_layouts/default.html +1 -1
- data/_layouts/disclaimer.html +123 -123
- data/_layouts/download.html +299 -299
- data/_layouts/feature-1.html +320 -320
- data/_layouts/feature-download.html +308 -308
- data/_layouts/feature.html +258 -258
- data/_layouts/featureResultPage.html +65 -65
- data/_layouts/fileInfo.html +39 -39
- data/_layouts/filecomparison.html +85 -85
- data/_layouts/frame.html +222 -434
- data/_layouts/help.html +23 -23
- data/_layouts/home-1.html +229 -229
- data/_layouts/home.html +249 -249
- data/_layouts/homeResultPage.html +31 -31
- data/_layouts/imagekit.html +125 -125
- data/_layouts/page.html +5 -5
- data/_layouts/photo-effects-home.html +191 -193
- data/_layouts/post.html +177 -177
- data/_layouts/privacyPolicy.html +637 -637
- data/_layouts/termAndCondition.html +646 -646
- data/assets/cross.svg +4 -4
- data/assets/css/adblocker.css +187 -187
- data/assets/css/batch.css +437 -437
- data/assets/css/blog-1.css +65 -65
- data/assets/css/blog.css +491 -491
- data/assets/css/bootstrap.min.css +6 -6
- data/assets/css/calculators.css +47 -47
- data/assets/css/common.css +550 -550
- data/assets/css/feature-1.css +290 -290
- data/assets/css/filecomparison.css +25 -25
- data/assets/css/frame.css +780 -780
- data/assets/css/home-1.css +187 -187
- data/assets/css/imagekit.css +840 -840
- data/assets/css/tools.css +1278 -1278
- data/assets/facebook.svg +4 -4
- data/assets/images/abp.svg +41 -41
- data/assets/images/adblock.svg +266 -266
- data/assets/images/addimg.svg +2 -2
- data/assets/images/convert.svg +8 -8
- data/assets/images/safevideoconverter.svg +23 -23
- data/assets/images/uo.svg +41 -41
- data/assets/images/vectorpaint.svg +5 -5
- data/assets/instagram.svg +4 -4
- data/assets/js/TopScroll.js +8 -8
- data/assets/js/adBlocker.js +44 -44
- data/assets/js/ads.js +8 -8
- data/assets/js/append-div.js +10 -10
- data/assets/js/batch.js +229 -229
- data/assets/js/calculator-tooltip.js +3 -3
- data/assets/js/face-api.js +38064 -38064
- data/assets/js/face-detection.js +303 -303
- data/assets/js/featureResult.js +48 -48
- data/assets/js/frame.js +263 -263
- data/assets/js/googledrive.js +155 -155
- data/assets/js/homeResult.js +36 -36
- data/assets/js/manifest.json +16 -16
- data/assets/js/multiselect.js +157 -157
- data/assets/js/perspective.min.js +182 -182
- data/assets/js/photo-effects.json +84 -84
- data/assets/js/redirectResult.js +9 -9
- data/assets/js/testing-batch.js +39 -39
- data/assets/js/theme.js +44 -44
- data/assets/linkdin.svg +4 -4
- data/assets/noserverupload.svg +4 -4
- data/assets/pdf.svg +20 -20
- data/assets/secure.svg +43 -43
- data/assets/star.svg +4 -4
- data/assets/twitter.svg +4 -4
- data/assets/youtube.svg +4 -4
- metadata +7 -7
data/_includes/script.html
CHANGED
@@ -1,59 +1,59 @@
|
|
1
|
-
{%- if site.rollbarToken -%}
|
2
|
-
<script>
|
3
|
-
var _rollbarConfig = {
|
4
|
-
accessToken: "{{site.rollbarToken}}",
|
5
|
-
captureUncaught: true,
|
6
|
-
captureUnhandledRejections: true,
|
7
|
-
payload: {
|
8
|
-
environment: "production"
|
9
|
-
}
|
10
|
-
};
|
11
|
-
!function (r) { var e = {}; function o(n) { if (e[n]) return e[n].exports; var t = e[n] = { i: n, l: !1, exports: {} }; return r[n].call(t.exports, t, t.exports, o), t.l = !0, t.exports } o.m = r, o.c = e, o.d = function (r, e, n) { o.o(r, e) || Object.defineProperty(r, e, { enumerable: !0, get: n }) }, o.r = function (r) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(r, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(r, "__esModule", { value: !0 }) }, o.t = function (r, e) { if (1 & e && (r = o(r)), 8 & e) return r; if (4 & e && "object" == typeof r && r && r.__esModule) return r; var n = Object.create(null); if (o.r(n), Object.defineProperty(n, "default", { enumerable: !0, value: r }), 2 & e && "string" != typeof r) for (var t in r) o.d(n, t, function (e) { return r[e] }.bind(null, t)); return n }, o.n = function (r) { var e = r && r.__esModule ? function () { return r.default } : function () { return r }; return o.d(e, "a", e), e }, o.o = function (r, e) { return Object.prototype.hasOwnProperty.call(r, e) }, o.p = "", o(o.s = 0) }([function (r, e, o) { "use strict"; var n = o(1), t = o(5); _rollbarConfig = _rollbarConfig || {}, _rollbarConfig.rollbarJsUrl = _rollbarConfig.rollbarJsUrl || "https://cdn.rollbar.com/rollbarjs/refs/tags/v2.25.2/rollbar.min.js", _rollbarConfig.async = void 0 === _rollbarConfig.async || _rollbarConfig.async; var a = n.setupShim(window, _rollbarConfig), l = t(_rollbarConfig); window.rollbar = n.Rollbar, a.loadFull(window, document, !_rollbarConfig.async, _rollbarConfig, l) }, function (r, e, o) { "use strict"; var n = o(2), t = o(3); function a(r) { return function () { try { return r.apply(this, arguments) } catch (r) { try { console.error("[Rollbar]: Internal error", r) } catch (r) { } } } } var l = 0; function i(r, e) { this.options = r, this._rollbarOldOnError = null; var o = l++; this.shimId = function () { return o }, "undefined" != typeof window && window._rollbarShims && (window._rollbarShims[o] = { handler: e, messages: [] }) } var s = o(4), d = function (r, e) { return new i(r, e) }, c = function (r) { return new s(d, r) }; function u(r) { return a((function () { var e = this, o = Array.prototype.slice.call(arguments, 0), n = { shim: e, method: r, args: o, ts: new Date }; window._rollbarShims[this.shimId()].messages.push(n) })) } i.prototype.loadFull = function (r, e, o, n, t) { var l = !1, i = e.createElement("script"), s = e.getElementsByTagName("script")[0], d = s.parentNode; i.crossOrigin = "", i.src = n.rollbarJsUrl, o || (i.async = !0), i.onload = i.onreadystatechange = a((function () { if (!(l || this.readyState && "loaded" !== this.readyState && "complete" !== this.readyState)) { i.onload = i.onreadystatechange = null; try { d.removeChild(i) } catch (r) { } l = !0, function () { var e; if (void 0 === r._rollbarDidLoad) { e = new Error("rollbar.js did not load"); for (var o, n, a, l, i = 0; o = r._rollbarShims[i++];)for (o = o.messages || []; n = o.shift();)for (a = n.args || [], i = 0; i < a.length; ++i)if ("function" == typeof (l = a[i])) { l(e); break } } "function" == typeof t && t(e) }() } })), d.insertBefore(i, s) }, i.prototype.wrap = function (r, e, o) { try { var n; if (n = "function" == typeof e ? e : function () { return e || {} }, "function" != typeof r) return r; if (r._isWrap) return r; if (!r._rollbar_wrapped && (r._rollbar_wrapped = function () { o && "function" == typeof o && o.apply(this, arguments); try { return r.apply(this, arguments) } catch (o) { var e = o; throw e && ("string" == typeof e && (e = new String(e)), e._rollbarContext = n() || {}, e._rollbarContext._wrappedSource = r.toString(), window._rollbarWrappedError = e), e } }, r._rollbar_wrapped._isWrap = !0, r.hasOwnProperty)) for (var t in r) r.hasOwnProperty(t) && (r._rollbar_wrapped[t] = r[t]); return r._rollbar_wrapped } catch (e) { return r } }; for (var p = "log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleAnonymousErrors,handleUnhandledRejection,captureEvent,captureDomContentLoaded,captureLoad".split(","), f = 0; f < p.length; ++f)i.prototype[p[f]] = u(p[f]); r.exports = { setupShim: function (r, e) { if (r) { var o = e.globalAlias || "Rollbar"; if ("object" == typeof r[o]) return r[o]; r._rollbarShims = {}, r._rollbarWrappedError = null; var l = new c(e); return a((function () { e.captureUncaught && (l._rollbarOldOnError = r.onerror, n.captureUncaughtExceptions(r, l, !0), e.wrapGlobalEventHandlers && t(r, l, !0)), e.captureUnhandledRejections && n.captureUnhandledRejections(r, l, !0); var a = e.autoInstrument; return !1 !== e.enabled && (void 0 === a || !0 === a || function (r) { return !("object" != typeof r || void 0 !== r.page && !r.page) }(a)) && r.addEventListener && (r.addEventListener("load", l.captureLoad.bind(l)), r.addEventListener("DOMContentLoaded", l.captureDomContentLoaded.bind(l))), r[o] = l, l }))() } }, Rollbar: c } }, function (r, e, o) { "use strict"; function n(r, e, o, n) { r._rollbarWrappedError && (n[4] || (n[4] = r._rollbarWrappedError), n[5] || (n[5] = r._rollbarWrappedError._rollbarContext), r._rollbarWrappedError = null); var t = e.handleUncaughtException.apply(e, n); o && o.apply(r, n), "anonymous" === t && (e.anonymousErrorsPending += 1) } r.exports = { captureUncaughtExceptions: function (r, e, o) { if (r) { var t; if ("function" == typeof e._rollbarOldOnError) t = e._rollbarOldOnError; else if (r.onerror) { for (t = r.onerror; t._rollbarOldOnError;)t = t._rollbarOldOnError; e._rollbarOldOnError = t } e.handleAnonymousErrors(); var a = function () { var o = Array.prototype.slice.call(arguments, 0); n(r, e, t, o) }; o && (a._rollbarOldOnError = t), r.onerror = a } }, captureUnhandledRejections: function (r, e, o) { if (r) { "function" == typeof r._rollbarURH && r._rollbarURH.belongsToShim && r.removeEventListener("unhandledrejection", r._rollbarURH); var n = function (r) { var o, n, t; try { o = r.reason } catch (r) { o = void 0 } try { n = r.promise } catch (r) { n = "[unhandledrejection] error getting `promise` from event" } try { t = r.detail, !o && t && (o = t.reason, n = t.promise) } catch (r) { } o || (o = "[unhandledrejection] error getting `reason` from event"), e && e.handleUnhandledRejection && e.handleUnhandledRejection(o, n) }; n.belongsToShim = o, r._rollbarURH = n, r.addEventListener("unhandledrejection", n) } } } }, function (r, e, o) { "use strict"; function n(r, e, o) { if (e.hasOwnProperty && e.hasOwnProperty("addEventListener")) { for (var n = e.addEventListener; n._rollbarOldAdd && n.belongsToShim;)n = n._rollbarOldAdd; var t = function (e, o, t) { n.call(this, e, r.wrap(o), t) }; t._rollbarOldAdd = n, t.belongsToShim = o, e.addEventListener = t; for (var a = e.removeEventListener; a._rollbarOldRemove && a.belongsToShim;)a = a._rollbarOldRemove; var l = function (r, e, o) { a.call(this, r, e && e._rollbar_wrapped || e, o) }; l._rollbarOldRemove = a, l.belongsToShim = o, e.removeEventListener = l } } r.exports = function (r, e, o) { if (r) { var t, a, l = "EventTarget,Window,Node,ApplicationCache,AudioTrackList,ChannelMergerNode,CryptoOperation,EventSource,FileReader,HTMLUnknownElement,IDBDatabase,IDBRequest,IDBTransaction,KeyOperation,MediaController,MessagePort,ModalWindow,Notification,SVGElementInstance,Screen,TextTrack,TextTrackCue,TextTrackList,WebSocket,WebSocketWorker,Worker,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload".split(","); for (t = 0; t < l.length; ++t)r[a = l[t]] && r[a].prototype && n(e, r[a].prototype, o) } } }, function (r, e, o) { "use strict"; function n(r, e) { this.impl = r(e, this), this.options = e, function (r) { for (var e = function (r) { return function () { var e = Array.prototype.slice.call(arguments, 0); if (this.impl[r]) return this.impl[r].apply(this.impl, e) } }, o = "log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleAnonymousErrors,handleUnhandledRejection,_createItem,wrap,loadFull,shimId,captureEvent,captureDomContentLoaded,captureLoad".split(","), n = 0; n < o.length; n++)r[o[n]] = e(o[n]) }(n.prototype) } n.prototype._swapAndProcessMessages = function (r, e) { var o, n, t; for (this.impl = r(this.options); o = e.shift();)n = o.method, t = o.args, this[n] && "function" == typeof this[n] && ("captureDomContentLoaded" === n || "captureLoad" === n ? this[n].apply(this, [t[0], o.ts]) : this[n].apply(this, t)); return this }, r.exports = n }, function (r, e, o) { "use strict"; r.exports = function (r) { return function (e) { if (!e && !window._rollbarInitialized) { for (var o, n, t = (r = r || {}).globalAlias || "Rollbar", a = window.rollbar, l = function (r) { return new a(r) }, i = 0; o = window._rollbarShims[i++];)n || (n = o.handler), o.handler._swapAndProcessMessages(l, o.messages); window[t] = n, window._rollbarInitialized = !0 } } } }]);
|
12
|
-
</script>
|
13
|
-
{%- endif -%}
|
14
|
-
{%- include adblocker.html -%}
|
15
|
-
{% assign scriptData = site.data.[page.folderName][lang][file] %}
|
16
|
-
{%- assign dataAtt = "data-folderName='$folderName' data-lang='$lang' data-fileName='$fileName' data-tool='$tool'" -%}
|
17
|
-
{%- assign $folderName = '$folderName' -%}
|
18
|
-
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" {%- if site.crossorigin -%} {{ }}
|
19
|
-
crossorigin {%- endif -%}></script>
|
20
|
-
{%- if site.safeui -%}
|
21
|
-
<script defer src="/assets/js/theme.js" crossorigin="anonymous"></script>
|
22
|
-
{%- endif -%}
|
23
|
-
|
24
|
-
|
25
|
-
<script defer="defer" src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js"
|
26
|
-
integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script>
|
27
|
-
{{site.data.customcdns.customcdns.jsfiles}}
|
28
|
-
{%- if scriptData.jsfilepaths -%}
|
29
|
-
{%- for path in scriptData.jsfilepaths -%}
|
30
|
-
<script defer src="{{path}}" data-folderName="{{page.folderName}}" data-lang="{{page.lang}}"
|
31
|
-
data-fileName="{{page.fileName}}" data-tool="{{page.tool}}" data-permalink="{{page.permalink}}" {%- if
|
32
|
-
site.crossorigin -%} {{ }} crossorigin {%- endif -%}></script>
|
33
|
-
{%- endfor -%}
|
34
|
-
{%- endif -%}
|
35
|
-
{%- if scriptData.jscdns -%}
|
36
|
-
{%- for item in scriptData.jscdns -%}
|
37
|
-
{{item | replace:"$folderName", page.folderName | replace: "$fileName", page.fileName | replace: "$lang", page.lang |
|
38
|
-
replace: "$tool", page.tool }}
|
39
|
-
{%- endfor -%}
|
40
|
-
{%- endif -%}
|
41
|
-
|
42
|
-
{%- if page.layout == "frame" -%}
|
43
|
-
{%- assign font = "PT Sans" -%}
|
44
|
-
{%- endif -%}
|
45
|
-
|
46
|
-
{%- if page.layout == "photo-effects-home" -%}
|
47
|
-
{%- assign font = "PT Sans" -%}
|
48
|
-
{%- endif -%}
|
49
|
-
|
50
|
-
{%- if page.layout == "calculator" -%}
|
51
|
-
<script defer src="/assets/js/calculator-tooltip.js"></script>
|
52
|
-
{%- endif -%}
|
53
|
-
|
54
|
-
{%- if page.layout == 'home-1' or page.layout == "feature-1" -%}
|
55
|
-
{%- assign font = "Inter" -%}
|
56
|
-
{%- endif -%}
|
57
|
-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css"
|
58
|
-
integrity="sha512-iBBXm8fW90+nuLcSKlbmrPcLa0OT92xO1BIsZ+ywDWZCvqsWgccV3gFoRBv0z+8dLJgyAHIhR35VZc2oM/gI1w=="
|
1
|
+
{%- if site.rollbarToken -%}
|
2
|
+
<script>
|
3
|
+
var _rollbarConfig = {
|
4
|
+
accessToken: "{{site.rollbarToken}}",
|
5
|
+
captureUncaught: true,
|
6
|
+
captureUnhandledRejections: true,
|
7
|
+
payload: {
|
8
|
+
environment: "production"
|
9
|
+
}
|
10
|
+
};
|
11
|
+
!function (r) { var e = {}; function o(n) { if (e[n]) return e[n].exports; var t = e[n] = { i: n, l: !1, exports: {} }; return r[n].call(t.exports, t, t.exports, o), t.l = !0, t.exports } o.m = r, o.c = e, o.d = function (r, e, n) { o.o(r, e) || Object.defineProperty(r, e, { enumerable: !0, get: n }) }, o.r = function (r) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(r, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(r, "__esModule", { value: !0 }) }, o.t = function (r, e) { if (1 & e && (r = o(r)), 8 & e) return r; if (4 & e && "object" == typeof r && r && r.__esModule) return r; var n = Object.create(null); if (o.r(n), Object.defineProperty(n, "default", { enumerable: !0, value: r }), 2 & e && "string" != typeof r) for (var t in r) o.d(n, t, function (e) { return r[e] }.bind(null, t)); return n }, o.n = function (r) { var e = r && r.__esModule ? function () { return r.default } : function () { return r }; return o.d(e, "a", e), e }, o.o = function (r, e) { return Object.prototype.hasOwnProperty.call(r, e) }, o.p = "", o(o.s = 0) }([function (r, e, o) { "use strict"; var n = o(1), t = o(5); _rollbarConfig = _rollbarConfig || {}, _rollbarConfig.rollbarJsUrl = _rollbarConfig.rollbarJsUrl || "https://cdn.rollbar.com/rollbarjs/refs/tags/v2.25.2/rollbar.min.js", _rollbarConfig.async = void 0 === _rollbarConfig.async || _rollbarConfig.async; var a = n.setupShim(window, _rollbarConfig), l = t(_rollbarConfig); window.rollbar = n.Rollbar, a.loadFull(window, document, !_rollbarConfig.async, _rollbarConfig, l) }, function (r, e, o) { "use strict"; var n = o(2), t = o(3); function a(r) { return function () { try { return r.apply(this, arguments) } catch (r) { try { console.error("[Rollbar]: Internal error", r) } catch (r) { } } } } var l = 0; function i(r, e) { this.options = r, this._rollbarOldOnError = null; var o = l++; this.shimId = function () { return o }, "undefined" != typeof window && window._rollbarShims && (window._rollbarShims[o] = { handler: e, messages: [] }) } var s = o(4), d = function (r, e) { return new i(r, e) }, c = function (r) { return new s(d, r) }; function u(r) { return a((function () { var e = this, o = Array.prototype.slice.call(arguments, 0), n = { shim: e, method: r, args: o, ts: new Date }; window._rollbarShims[this.shimId()].messages.push(n) })) } i.prototype.loadFull = function (r, e, o, n, t) { var l = !1, i = e.createElement("script"), s = e.getElementsByTagName("script")[0], d = s.parentNode; i.crossOrigin = "", i.src = n.rollbarJsUrl, o || (i.async = !0), i.onload = i.onreadystatechange = a((function () { if (!(l || this.readyState && "loaded" !== this.readyState && "complete" !== this.readyState)) { i.onload = i.onreadystatechange = null; try { d.removeChild(i) } catch (r) { } l = !0, function () { var e; if (void 0 === r._rollbarDidLoad) { e = new Error("rollbar.js did not load"); for (var o, n, a, l, i = 0; o = r._rollbarShims[i++];)for (o = o.messages || []; n = o.shift();)for (a = n.args || [], i = 0; i < a.length; ++i)if ("function" == typeof (l = a[i])) { l(e); break } } "function" == typeof t && t(e) }() } })), d.insertBefore(i, s) }, i.prototype.wrap = function (r, e, o) { try { var n; if (n = "function" == typeof e ? e : function () { return e || {} }, "function" != typeof r) return r; if (r._isWrap) return r; if (!r._rollbar_wrapped && (r._rollbar_wrapped = function () { o && "function" == typeof o && o.apply(this, arguments); try { return r.apply(this, arguments) } catch (o) { var e = o; throw e && ("string" == typeof e && (e = new String(e)), e._rollbarContext = n() || {}, e._rollbarContext._wrappedSource = r.toString(), window._rollbarWrappedError = e), e } }, r._rollbar_wrapped._isWrap = !0, r.hasOwnProperty)) for (var t in r) r.hasOwnProperty(t) && (r._rollbar_wrapped[t] = r[t]); return r._rollbar_wrapped } catch (e) { return r } }; for (var p = "log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleAnonymousErrors,handleUnhandledRejection,captureEvent,captureDomContentLoaded,captureLoad".split(","), f = 0; f < p.length; ++f)i.prototype[p[f]] = u(p[f]); r.exports = { setupShim: function (r, e) { if (r) { var o = e.globalAlias || "Rollbar"; if ("object" == typeof r[o]) return r[o]; r._rollbarShims = {}, r._rollbarWrappedError = null; var l = new c(e); return a((function () { e.captureUncaught && (l._rollbarOldOnError = r.onerror, n.captureUncaughtExceptions(r, l, !0), e.wrapGlobalEventHandlers && t(r, l, !0)), e.captureUnhandledRejections && n.captureUnhandledRejections(r, l, !0); var a = e.autoInstrument; return !1 !== e.enabled && (void 0 === a || !0 === a || function (r) { return !("object" != typeof r || void 0 !== r.page && !r.page) }(a)) && r.addEventListener && (r.addEventListener("load", l.captureLoad.bind(l)), r.addEventListener("DOMContentLoaded", l.captureDomContentLoaded.bind(l))), r[o] = l, l }))() } }, Rollbar: c } }, function (r, e, o) { "use strict"; function n(r, e, o, n) { r._rollbarWrappedError && (n[4] || (n[4] = r._rollbarWrappedError), n[5] || (n[5] = r._rollbarWrappedError._rollbarContext), r._rollbarWrappedError = null); var t = e.handleUncaughtException.apply(e, n); o && o.apply(r, n), "anonymous" === t && (e.anonymousErrorsPending += 1) } r.exports = { captureUncaughtExceptions: function (r, e, o) { if (r) { var t; if ("function" == typeof e._rollbarOldOnError) t = e._rollbarOldOnError; else if (r.onerror) { for (t = r.onerror; t._rollbarOldOnError;)t = t._rollbarOldOnError; e._rollbarOldOnError = t } e.handleAnonymousErrors(); var a = function () { var o = Array.prototype.slice.call(arguments, 0); n(r, e, t, o) }; o && (a._rollbarOldOnError = t), r.onerror = a } }, captureUnhandledRejections: function (r, e, o) { if (r) { "function" == typeof r._rollbarURH && r._rollbarURH.belongsToShim && r.removeEventListener("unhandledrejection", r._rollbarURH); var n = function (r) { var o, n, t; try { o = r.reason } catch (r) { o = void 0 } try { n = r.promise } catch (r) { n = "[unhandledrejection] error getting `promise` from event" } try { t = r.detail, !o && t && (o = t.reason, n = t.promise) } catch (r) { } o || (o = "[unhandledrejection] error getting `reason` from event"), e && e.handleUnhandledRejection && e.handleUnhandledRejection(o, n) }; n.belongsToShim = o, r._rollbarURH = n, r.addEventListener("unhandledrejection", n) } } } }, function (r, e, o) { "use strict"; function n(r, e, o) { if (e.hasOwnProperty && e.hasOwnProperty("addEventListener")) { for (var n = e.addEventListener; n._rollbarOldAdd && n.belongsToShim;)n = n._rollbarOldAdd; var t = function (e, o, t) { n.call(this, e, r.wrap(o), t) }; t._rollbarOldAdd = n, t.belongsToShim = o, e.addEventListener = t; for (var a = e.removeEventListener; a._rollbarOldRemove && a.belongsToShim;)a = a._rollbarOldRemove; var l = function (r, e, o) { a.call(this, r, e && e._rollbar_wrapped || e, o) }; l._rollbarOldRemove = a, l.belongsToShim = o, e.removeEventListener = l } } r.exports = function (r, e, o) { if (r) { var t, a, l = "EventTarget,Window,Node,ApplicationCache,AudioTrackList,ChannelMergerNode,CryptoOperation,EventSource,FileReader,HTMLUnknownElement,IDBDatabase,IDBRequest,IDBTransaction,KeyOperation,MediaController,MessagePort,ModalWindow,Notification,SVGElementInstance,Screen,TextTrack,TextTrackCue,TextTrackList,WebSocket,WebSocketWorker,Worker,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload".split(","); for (t = 0; t < l.length; ++t)r[a = l[t]] && r[a].prototype && n(e, r[a].prototype, o) } } }, function (r, e, o) { "use strict"; function n(r, e) { this.impl = r(e, this), this.options = e, function (r) { for (var e = function (r) { return function () { var e = Array.prototype.slice.call(arguments, 0); if (this.impl[r]) return this.impl[r].apply(this.impl, e) } }, o = "log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleAnonymousErrors,handleUnhandledRejection,_createItem,wrap,loadFull,shimId,captureEvent,captureDomContentLoaded,captureLoad".split(","), n = 0; n < o.length; n++)r[o[n]] = e(o[n]) }(n.prototype) } n.prototype._swapAndProcessMessages = function (r, e) { var o, n, t; for (this.impl = r(this.options); o = e.shift();)n = o.method, t = o.args, this[n] && "function" == typeof this[n] && ("captureDomContentLoaded" === n || "captureLoad" === n ? this[n].apply(this, [t[0], o.ts]) : this[n].apply(this, t)); return this }, r.exports = n }, function (r, e, o) { "use strict"; r.exports = function (r) { return function (e) { if (!e && !window._rollbarInitialized) { for (var o, n, t = (r = r || {}).globalAlias || "Rollbar", a = window.rollbar, l = function (r) { return new a(r) }, i = 0; o = window._rollbarShims[i++];)n || (n = o.handler), o.handler._swapAndProcessMessages(l, o.messages); window[t] = n, window._rollbarInitialized = !0 } } } }]);
|
12
|
+
</script>
|
13
|
+
{%- endif -%}
|
14
|
+
{%- include adblocker.html -%}
|
15
|
+
{% assign scriptData = site.data.[page.folderName][lang][file] %}
|
16
|
+
{%- assign dataAtt = "data-folderName='$folderName' data-lang='$lang' data-fileName='$fileName' data-tool='$tool'" -%}
|
17
|
+
{%- assign $folderName = '$folderName' -%}
|
18
|
+
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" {%- if site.crossorigin -%} {{ }}
|
19
|
+
crossorigin {%- endif -%}></script>
|
20
|
+
{%- if site.safeui -%}
|
21
|
+
<script defer src="/assets/js/theme.js" crossorigin="anonymous"></script>
|
22
|
+
{%- endif -%}
|
23
|
+
|
24
|
+
|
25
|
+
<script defer="defer" src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js"
|
26
|
+
integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script>
|
27
|
+
{{site.data.customcdns.customcdns.jsfiles}}
|
28
|
+
{%- if scriptData.jsfilepaths -%}
|
29
|
+
{%- for path in scriptData.jsfilepaths -%}
|
30
|
+
<script defer src="{{path}}" data-folderName="{{page.folderName}}" data-lang="{{page.lang}}"
|
31
|
+
data-fileName="{{page.fileName}}" data-tool="{{page.tool}}" data-permalink="{{page.permalink}}" {%- if
|
32
|
+
site.crossorigin -%} {{ }} crossorigin {%- endif -%}></script>
|
33
|
+
{%- endfor -%}
|
34
|
+
{%- endif -%}
|
35
|
+
{%- if scriptData.jscdns -%}
|
36
|
+
{%- for item in scriptData.jscdns -%}
|
37
|
+
{{item | replace:"$folderName", page.folderName | replace: "$fileName", page.fileName | replace: "$lang", page.lang |
|
38
|
+
replace: "$tool", page.tool }}
|
39
|
+
{%- endfor -%}
|
40
|
+
{%- endif -%}
|
41
|
+
|
42
|
+
{%- if page.layout == "frame" -%}
|
43
|
+
{%- assign font = "PT Sans" -%}
|
44
|
+
{%- endif -%}
|
45
|
+
|
46
|
+
{%- if page.layout == "photo-effects-home" -%}
|
47
|
+
{%- assign font = "PT Sans" -%}
|
48
|
+
{%- endif -%}
|
49
|
+
|
50
|
+
{%- if page.layout == "calculator" -%}
|
51
|
+
<script defer src="/assets/js/calculator-tooltip.js"></script>
|
52
|
+
{%- endif -%}
|
53
|
+
|
54
|
+
{%- if page.layout == 'home-1' or page.layout == "feature-1" -%}
|
55
|
+
{%- assign font = "Inter" -%}
|
56
|
+
{%- endif -%}
|
57
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css"
|
58
|
+
integrity="sha512-iBBXm8fW90+nuLcSKlbmrPcLa0OT92xO1BIsZ+ywDWZCvqsWgccV3gFoRBv0z+8dLJgyAHIhR35VZc2oM/gI1w=="
|
59
59
|
crossorigin="anonymous" referrerpolicy="no-referrer" />
|
@@ -1,12 +1,12 @@
|
|
1
|
-
<div class="alertbar" style="display: none;">
|
2
|
-
<div class="container text-center">
|
3
|
-
<span style="font-size: 15px;">{{site.data.blog.alertbar.span}}</span>
|
4
|
-
<form>
|
5
|
-
<div class="mc-field-group">
|
6
|
-
<input type="email" placeholder="Email" name="EMAIL" class="required email" id="mce-EMAIL"
|
7
|
-
autocomplete="on" required="">
|
8
|
-
<input type="submit" value="Subscribe" name="subscribe">
|
9
|
-
</div>
|
10
|
-
</form>
|
11
|
-
</div>
|
1
|
+
<div class="alertbar" style="display: none;">
|
2
|
+
<div class="container text-center">
|
3
|
+
<span style="font-size: 15px;">{{site.data.blog.alertbar.span}}</span>
|
4
|
+
<form>
|
5
|
+
<div class="mc-field-group">
|
6
|
+
<input type="email" placeholder="Email" name="EMAIL" class="required email" id="mce-EMAIL"
|
7
|
+
autocomplete="on" required="">
|
8
|
+
<input type="submit" value="Subscribe" name="subscribe">
|
9
|
+
</div>
|
10
|
+
</form>
|
11
|
+
</div>
|
12
12
|
</div>
|
@@ -1,37 +1,37 @@
|
|
1
|
-
<div class="explore">
|
2
|
-
<div class="container">
|
3
|
-
{%- if site.monumetricId and page.url != '/' and page.lang == "en" -%}
|
4
|
-
|
5
|
-
<div class="row">
|
6
|
-
<div class="col-md-9 mx-auto">
|
7
|
-
{%- endif -%}
|
8
|
-
<h2>Explore <span class="d-none d-md-inline">→</span></h2>
|
9
|
-
|
10
|
-
<ul class="mt-3">
|
11
|
-
{% assign categories_list = site.categories %}
|
12
|
-
{% if categories_list.first[0] == null %}
|
13
|
-
{% for category in categories_list %}
|
14
|
-
<a class="cat mt-1 mb-1"
|
15
|
-
href="/blog/categories#{{ category | url_escape | strip | replace: ' ', '-' }}">{{
|
16
|
-
category
|
17
|
-
|
|
18
|
-
camelcase }} ({{ site.tags[category].size }})</a>
|
19
|
-
{% endfor %}
|
20
|
-
{% else %}
|
21
|
-
{% for category in categories_list %}
|
22
|
-
<a class="cat mt-1 mb-1"
|
23
|
-
href="/blog/categories#{{ category[0] | url_escape | strip | replace: ' ', '-' }}">{{
|
24
|
-
category[0]
|
25
|
-
| camelcase }} ({{ category[1].size }})</a>
|
26
|
-
{% endfor %}
|
27
|
-
{% endif %}
|
28
|
-
{% assign categories_list = nil %}
|
29
|
-
</ul>
|
30
|
-
{%- if site.monumetricId and page.url != '/' and page.lang == "en" -%}
|
31
|
-
|
32
|
-
</div>
|
33
|
-
</div>
|
34
|
-
{%- endif -%}
|
35
|
-
|
36
|
-
</div>
|
1
|
+
<div class="explore">
|
2
|
+
<div class="container">
|
3
|
+
{%- if site.monumetricId and page.url != '/' and page.lang == "en" -%}
|
4
|
+
|
5
|
+
<div class="row">
|
6
|
+
<div class="col-md-9 mx-auto">
|
7
|
+
{%- endif -%}
|
8
|
+
<h2>Explore <span class="d-none d-md-inline">→</span></h2>
|
9
|
+
|
10
|
+
<ul class="mt-3">
|
11
|
+
{% assign categories_list = site.categories %}
|
12
|
+
{% if categories_list.first[0] == null %}
|
13
|
+
{% for category in categories_list %}
|
14
|
+
<a class="cat mt-1 mb-1"
|
15
|
+
href="/blog/categories#{{ category | url_escape | strip | replace: ' ', '-' }}">{{
|
16
|
+
category
|
17
|
+
|
|
18
|
+
camelcase }} ({{ site.tags[category].size }})</a>
|
19
|
+
{% endfor %}
|
20
|
+
{% else %}
|
21
|
+
{% for category in categories_list %}
|
22
|
+
<a class="cat mt-1 mb-1"
|
23
|
+
href="/blog/categories#{{ category[0] | url_escape | strip | replace: ' ', '-' }}">{{
|
24
|
+
category[0]
|
25
|
+
| camelcase }} ({{ category[1].size }})</a>
|
26
|
+
{% endfor %}
|
27
|
+
{% endif %}
|
28
|
+
{% assign categories_list = nil %}
|
29
|
+
</ul>
|
30
|
+
{%- if site.monumetricId and page.url != '/' and page.lang == "en" -%}
|
31
|
+
|
32
|
+
</div>
|
33
|
+
</div>
|
34
|
+
{%- endif -%}
|
35
|
+
|
36
|
+
</div>
|
37
37
|
</div>
|
@@ -1,66 +1,66 @@
|
|
1
|
-
<section class="related-posts-section">
|
2
|
-
<div class="container">
|
3
|
-
<div class="relatedPosts">
|
4
|
-
{%- if site.posts.size>0 -%}
|
5
|
-
{%- if site.monumetricId and page.url != '/' and page.lang == "en" -%}
|
6
|
-
|
7
|
-
<div class="row">
|
8
|
-
<div class="col-md-9 mx-auto">
|
9
|
-
{%- endif -%}
|
10
|
-
<h4 class="related_post_heading">Recent Posts</h4>
|
11
|
-
{%- if site.monumetricId and page.url != '/' and page.lang == "en" -%}
|
12
|
-
|
13
|
-
</div>
|
14
|
-
</div>
|
15
|
-
{%- endif -%}
|
16
|
-
{%- endif -%}
|
17
|
-
<div class="row">
|
18
|
-
{%- if site.monumetricId and page.url != '/' and page.lang == "en" -%}
|
19
|
-
|
20
|
-
<div class="col-md-9 mx-auto">
|
21
|
-
<div class="row">
|
22
|
-
{%- endif -%}
|
23
|
-
{% assign posts = site.posts | where_exp:"post","post.url != page.url" %}
|
24
|
-
{% for post in posts limit: 6%}
|
25
|
-
{%- include /authors/authors.html -%}
|
26
|
-
<div class="col-lg-4 col-md-6 mb-4 card-group">
|
27
|
-
<div class="card h-100">
|
28
|
-
<a href="{{ post.url }}">
|
29
|
-
<img src="{{ post.image }}" class="card-img-top" height="215px" width="100%"
|
30
|
-
loading="lazy" alt="{{post.title}}" {%- if site.crossorigin -%} crossorigin {%-
|
31
|
-
endif -%}>
|
32
|
-
</a>
|
33
|
-
<div class="card-body">
|
34
|
-
<a class="text-decoration-none text-dark" href="{{ post.url }}" class="anchor_link">
|
35
|
-
<h4 class="card-title mb-4 text-left">{{ post.title }}</h4>
|
36
|
-
</a>
|
37
|
-
</div>
|
38
|
-
<div class="card-footer bg-white">
|
39
|
-
<div class="wrapfooter">
|
40
|
-
{% if post.author %}
|
41
|
-
<span class="meta-footer-thumb">
|
42
|
-
<img class="author-thumb" loading="lazy" src="{{image}}"
|
43
|
-
alt="{{ authorName }}" {%- if site.crossorigin -%} crossorigin {%- endif
|
44
|
-
-%}>
|
45
|
-
</span>
|
46
|
-
{% endif %}
|
47
|
-
<span class="author-meta">
|
48
|
-
<span class="post-name">
|
49
|
-
<a target="_blank" href="/blog">{{authorName}}</a>
|
50
|
-
</span><br>
|
51
|
-
<span class="post-date">{{post.date | date_to_string }}</span>
|
52
|
-
</span>
|
53
|
-
</div>
|
54
|
-
</div>
|
55
|
-
</div>
|
56
|
-
</div>
|
57
|
-
{% endfor %}
|
58
|
-
{%- if site.monumetricId and page.url != '/' and page.lang == "en" -%}
|
59
|
-
|
60
|
-
</div>
|
61
|
-
</div>
|
62
|
-
{%- endif -%}
|
63
|
-
</div>
|
64
|
-
</div>
|
65
|
-
</div>
|
1
|
+
<section class="related-posts-section">
|
2
|
+
<div class="container">
|
3
|
+
<div class="relatedPosts">
|
4
|
+
{%- if site.posts.size>0 -%}
|
5
|
+
{%- if site.monumetricId and page.url != '/' and page.lang == "en" -%}
|
6
|
+
|
7
|
+
<div class="row">
|
8
|
+
<div class="col-md-9 mx-auto">
|
9
|
+
{%- endif -%}
|
10
|
+
<h4 class="related_post_heading">Recent Posts</h4>
|
11
|
+
{%- if site.monumetricId and page.url != '/' and page.lang == "en" -%}
|
12
|
+
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
{%- endif -%}
|
16
|
+
{%- endif -%}
|
17
|
+
<div class="row">
|
18
|
+
{%- if site.monumetricId and page.url != '/' and page.lang == "en" -%}
|
19
|
+
|
20
|
+
<div class="col-md-9 mx-auto">
|
21
|
+
<div class="row">
|
22
|
+
{%- endif -%}
|
23
|
+
{% assign posts = site.posts | where_exp:"post","post.url != page.url" %}
|
24
|
+
{% for post in posts limit: 6%}
|
25
|
+
{%- include /authors/authors.html -%}
|
26
|
+
<div class="col-lg-4 col-md-6 mb-4 card-group">
|
27
|
+
<div class="card h-100">
|
28
|
+
<a href="{{ post.url }}">
|
29
|
+
<img src="{{ post.image }}" class="card-img-top" height="215px" width="100%"
|
30
|
+
loading="lazy" alt="{{post.title}}" {%- if site.crossorigin -%} crossorigin {%-
|
31
|
+
endif -%}>
|
32
|
+
</a>
|
33
|
+
<div class="card-body">
|
34
|
+
<a class="text-decoration-none text-dark" href="{{ post.url }}" class="anchor_link">
|
35
|
+
<h4 class="card-title mb-4 text-left">{{ post.title }}</h4>
|
36
|
+
</a>
|
37
|
+
</div>
|
38
|
+
<div class="card-footer bg-white">
|
39
|
+
<div class="wrapfooter">
|
40
|
+
{% if post.author %}
|
41
|
+
<span class="meta-footer-thumb">
|
42
|
+
<img class="author-thumb" loading="lazy" src="{{image}}"
|
43
|
+
alt="{{ authorName }}" {%- if site.crossorigin -%} crossorigin {%- endif
|
44
|
+
-%}>
|
45
|
+
</span>
|
46
|
+
{% endif %}
|
47
|
+
<span class="author-meta">
|
48
|
+
<span class="post-name">
|
49
|
+
<a target="_blank" href="/blog">{{authorName}}</a>
|
50
|
+
</span><br>
|
51
|
+
<span class="post-date">{{post.date | date_to_string }}</span>
|
52
|
+
</span>
|
53
|
+
</div>
|
54
|
+
</div>
|
55
|
+
</div>
|
56
|
+
</div>
|
57
|
+
{% endfor %}
|
58
|
+
{%- if site.monumetricId and page.url != '/' and page.lang == "en" -%}
|
59
|
+
|
60
|
+
</div>
|
61
|
+
</div>
|
62
|
+
{%- endif -%}
|
63
|
+
</div>
|
64
|
+
</div>
|
65
|
+
</div>
|
66
66
|
</section>
|