mirror of
https://github.com/GenZmeY/casper-i18n.git
synced 2025-07-13 09:16:06 +00:00
Compare commits
40 Commits
Author | SHA1 | Date | |
---|---|---|---|
505503a63b | |||
bd3fc7c2af | |||
5e0f765852 | |||
4293dab0a7 | |||
f00918589f | |||
0200889148 | |||
248c122f86 | |||
a007415d89 | |||
31188ce3c0 | |||
e1967f8546 | |||
5259d551f5 | |||
115d1d820c | |||
81e4dfd52d | |||
cc4d828575 | |||
ebb2538215 | |||
3767e3d994 | |||
6d290485dc | |||
7da41d344f | |||
55a90a9252 | |||
b20dceae22 | |||
88ca182a58 | |||
140632b885 | |||
8f2b806673 | |||
4af198a19f | |||
f846ceb7ed | |||
7390c17a26 | |||
55d5345800 | |||
cf30adacce | |||
38426cd9e6 | |||
c7713df88f | |||
e6fdb4bfa3 | |||
657bb8f986 | |||
005211ff8f | |||
e2096ee731 | |||
20ced95885 | |||
2aaf7441af | |||
d687d0f099 | |||
96f69f8c07 | |||
4808700c0f | |||
6459992d9a |
@ -4,7 +4,7 @@ The default theme for [Ghost](http://github.com/tryghost/ghost/). This is the la
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
82
assets/js/dropdown.js
Normal file
82
assets/js/dropdown.js
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
(function () {
|
||||||
|
const mediaQuery = window.matchMedia('(max-width: 767px)');
|
||||||
|
|
||||||
|
const head = document.querySelector('.gh-head');
|
||||||
|
const menu = head.querySelector('.gh-head-menu');
|
||||||
|
const nav = menu.querySelector('.nav');
|
||||||
|
if (!nav) return;
|
||||||
|
|
||||||
|
const logo = document.querySelector('.gh-head-logo');
|
||||||
|
const navHTML = nav.innerHTML;
|
||||||
|
|
||||||
|
if (mediaQuery.matches) {
|
||||||
|
const items = nav.querySelectorAll('li');
|
||||||
|
items.forEach(function (item, index) {
|
||||||
|
item.style.transitionDelay = 0.03 * (index + 1) + 's';
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const makeDropdown = function () {
|
||||||
|
if (mediaQuery.matches) return;
|
||||||
|
const submenuItems = [];
|
||||||
|
|
||||||
|
while ((nav.offsetWidth + 64) > menu.offsetWidth) {
|
||||||
|
if (nav.lastElementChild) {
|
||||||
|
submenuItems.unshift(nav.lastElementChild);
|
||||||
|
nav.lastElementChild.remove();
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!submenuItems.length) {
|
||||||
|
document.body.classList.add('is-dropdown-loaded');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const toggle = document.createElement('button');
|
||||||
|
toggle.setAttribute('class', 'nav-more-toggle');
|
||||||
|
toggle.setAttribute('aria-label', 'More');
|
||||||
|
toggle.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="currentColor"><path d="M21.333 16c0-1.473 1.194-2.667 2.667-2.667v0c1.473 0 2.667 1.194 2.667 2.667v0c0 1.473-1.194 2.667-2.667 2.667v0c-1.473 0-2.667-1.194-2.667-2.667v0zM13.333 16c0-1.473 1.194-2.667 2.667-2.667v0c1.473 0 2.667 1.194 2.667 2.667v0c0 1.473-1.194 2.667-2.667 2.667v0c-1.473 0-2.667-1.194-2.667-2.667v0zM5.333 16c0-1.473 1.194-2.667 2.667-2.667v0c1.473 0 2.667 1.194 2.667 2.667v0c0 1.473-1.194 2.667-2.667 2.667v0c-1.473 0-2.667-1.194-2.667-2.667v0z"></path></svg>';
|
||||||
|
|
||||||
|
const wrapper = document.createElement('div');
|
||||||
|
wrapper.setAttribute('class', 'gh-dropdown');
|
||||||
|
|
||||||
|
if (submenuItems.length >= 10) {
|
||||||
|
document.body.classList.add('is-dropdown-mega');
|
||||||
|
wrapper.style.gridTemplateRows = 'repeat(' + Math.ceil(submenuItems.length / 2) + ', 1fr)';
|
||||||
|
} else {
|
||||||
|
document.body.classList.remove('is-dropdown-mega');
|
||||||
|
}
|
||||||
|
|
||||||
|
submenuItems.forEach(function (child) {
|
||||||
|
wrapper.appendChild(child);
|
||||||
|
});
|
||||||
|
|
||||||
|
toggle.appendChild(wrapper);
|
||||||
|
nav.appendChild(toggle);
|
||||||
|
|
||||||
|
document.body.classList.add('is-dropdown-loaded');
|
||||||
|
|
||||||
|
toggle.addEventListener('click', function () {
|
||||||
|
document.body.classList.toggle('is-dropdown-open');
|
||||||
|
});
|
||||||
|
|
||||||
|
window.addEventListener('click', function (e) {
|
||||||
|
if (!toggle.contains(e.target) && document.body.classList.contains('is-dropdown-open')) {
|
||||||
|
document.body.classList.remove('is-dropdown-open');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
imagesLoaded(head, function () {
|
||||||
|
makeDropdown();
|
||||||
|
});
|
||||||
|
|
||||||
|
window.addEventListener('resize', function () {
|
||||||
|
setTimeout(function () {
|
||||||
|
nav.innerHTML = navHTML;
|
||||||
|
makeDropdown();
|
||||||
|
}, 1);
|
||||||
|
});
|
||||||
|
})();
|
@ -14,6 +14,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
(function (window, document) {
|
(function (window, document) {
|
||||||
|
if (document.documentElement.classList.contains('no-infinite-scroll')) return;
|
||||||
|
|
||||||
// next link element
|
// next link element
|
||||||
var nextElement = document.querySelector('link[rel=next]');
|
var nextElement = document.querySelector('link[rel=next]');
|
||||||
if (!nextElement) {
|
if (!nextElement) {
|
||||||
|
7
assets/js/lib/imagesloaded.pkgd.min.js
vendored
Normal file
7
assets/js/lib/imagesloaded.pkgd.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
110
author.hbs
110
author.hbs
@ -2,69 +2,75 @@
|
|||||||
{{!-- The tag above means - insert everything in this file into the {body} of the default.hbs template --}}
|
{{!-- The tag above means - insert everything in this file into the {body} of the default.hbs template --}}
|
||||||
|
|
||||||
<main id="site-main" class="site-main outer">
|
<main id="site-main" class="site-main outer">
|
||||||
<div class="post-feed inner">
|
<div class="inner posts">
|
||||||
|
|
||||||
{{#author}}
|
<div class="post-feed">
|
||||||
<section class="post-card post-card-large">
|
|
||||||
|
|
||||||
{{#if feature_image}}
|
{{#author}}
|
||||||
<div class="post-card-image-link">
|
<section class="post-card post-card-large">
|
||||||
{{!-- This is a responsive image, it loads different sizes depending on device
|
|
||||||
https://medium.freecodecamp.org/a-guide-to-responsive-images-with-ready-to-use-templates-c400bd65c433 --}}
|
|
||||||
<img class="post-card-image"
|
|
||||||
srcset="{{img_url feature_image size="s"}} 300w,
|
|
||||||
{{img_url feature_image size="m"}} 600w,
|
|
||||||
{{img_url feature_image size="l"}} 1000w,
|
|
||||||
{{img_url feature_image size="xl"}} 2000w"
|
|
||||||
sizes="(max-width: 1000px) 400px, 800px"
|
|
||||||
src="{{img_url feature_image size="m"}}"
|
|
||||||
alt="{{title}}"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<div class="post-card-content">
|
{{#if cover_image}}
|
||||||
<div class="post-card-content-link">
|
<div class="post-card-image-link">
|
||||||
|
{{!-- This is a responsive image, it loads different sizes depending on device
|
||||||
{{#if profile_image}}
|
https://medium.freecodecamp.org/a-guide-to-responsive-images-with-ready-to-use-templates-c400bd65c433 --}}
|
||||||
<img class="author-profile-pic" src="{{profile_image}}" alt="{{name}}" />
|
<img class="post-card-image"
|
||||||
|
srcset="{{img_url cover_image size="s"}} 300w,
|
||||||
|
{{img_url cover_image size="m"}} 600w,
|
||||||
|
{{img_url cover_image size="l"}} 1000w,
|
||||||
|
{{img_url cover_image size="xl"}} 2000w"
|
||||||
|
sizes="(max-width: 1000px) 400px, 800px"
|
||||||
|
src="{{img_url cover_image size="m"}}"
|
||||||
|
alt="{{title}}"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<header class="post-card-header">
|
<div class="post-card-content">
|
||||||
<h2 class="post-card-title">{{name}}</h2>
|
<div class="post-card-content-link">
|
||||||
</header>
|
|
||||||
|
|
||||||
{{#if bio}}
|
{{#if profile_image}}
|
||||||
<div class="post-card-excerpt">{{bio}}</div>
|
<img class="author-profile-pic" src="{{profile_image}}" alt="{{name}}" />
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<footer class="author-profile-footer">
|
|
||||||
{{#if location}}
|
|
||||||
<div class="author-profile-location">{{location}}</div>
|
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<div class="author-profile-meta">
|
|
||||||
{{#if website}}
|
<header class="post-card-header">
|
||||||
<a class="author-profile-social-link" href="{{website}}" target="_blank" rel="noopener">{{website}}</a>
|
<h2 class="post-card-title">{{name}}</h2>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{#if bio}}
|
||||||
|
<div class="post-card-excerpt">{{bio}}</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<footer class="author-profile-footer">
|
||||||
|
{{#if location}}
|
||||||
|
<div class="author-profile-location">{{location}}</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if twitter}}
|
<div class="author-profile-meta">
|
||||||
<a class="author-profile-social-link" href="{{twitter_url}}" target="_blank" rel="noopener">{{> "icons/twitter"}}</a>
|
{{#if website}}
|
||||||
{{/if}}
|
<a class="author-profile-social-link" href="{{website}}" target="_blank" rel="noopener">{{website}}</a>
|
||||||
{{#if facebook}}
|
{{/if}}
|
||||||
<a class="author-profile-social-link" href="{{facebook_url}}" target="_blank" rel="noopener">{{> "icons/facebook"}}</a>
|
{{#if twitter}}
|
||||||
{{/if}}
|
<a class="author-profile-social-link" href="{{twitter_url}}" target="_blank" rel="noopener">{{> "icons/twitter"}}</a>
|
||||||
</div>
|
{{/if}}
|
||||||
</footer>
|
{{#if facebook}}
|
||||||
|
<a class="author-profile-social-link" href="{{facebook_url}}" target="_blank" rel="noopener">{{> "icons/facebook"}}</a>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
{{/author}}
|
{{/author}}
|
||||||
|
|
||||||
{{#foreach posts}}
|
{{#foreach posts}}
|
||||||
{{!-- The tag below includes the markup for each post - partials/post-card.hbs --}}
|
{{!-- The tag below includes the markup for each post - partials/post-card.hbs --}}
|
||||||
{{> "post-card"}}
|
{{> "post-card"}}
|
||||||
{{/foreach}}
|
{{/foreach}}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{pagination}}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
67
default.hbs
67
default.hbs
@ -18,51 +18,54 @@
|
|||||||
{{ghost_head}}
|
{{ghost_head}}
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body class="{{body_class}}{{#match @custom.title_font "=" "Elegant serif"}} has-serif-title{{/match}}{{#match @custom.body_font "=" "Modern sans-serif"}} has-sans-body{{/match}}{{#if @custom.show_publication_cover}} has-cover{{/if}}{{#is "home"}}{{#unless @custom.show_logo_in_navigation}} no-logo{{/unless}}{{/is}}">
|
<body class="{{body_class}} is-head-{{#match @custom.navigation_layout "Logo on cover"}}left-logo{{else match @custom.navigation_layout "Logo in the middle"}}middle-logo{{else}}stacked{{/match}}{{#match @custom.title_font "=" "Elegant serif"}} has-serif-title{{/match}}{{#match @custom.body_font "=" "Modern sans-serif"}} has-sans-body{{/match}}{{#if @custom.show_publication_cover}} has-cover{{/if}}">
|
||||||
<div class="viewport">
|
<div class="viewport">
|
||||||
|
|
||||||
<header id="gh-head" class="gh-head outer">
|
<header id="gh-head" class="gh-head outer{{#match @custom.header_style "Hidden"}} is-header-hidden{{/match}}">
|
||||||
<nav class="gh-head-inner inner">
|
<div class="gh-head-inner inner">
|
||||||
|
|
||||||
<div class="gh-head-brand">
|
<div class="gh-head-brand">
|
||||||
<a class="gh-head-logo{{#unless @site.logo}} no-image{{/unless}}" href="{{@site.url}}">
|
<a class="gh-head-logo{{#unless @site.logo}} no-image{{/unless}}" href="{{@site.url}}">
|
||||||
{{#if @site.logo}}
|
{{#if @site.logo}}
|
||||||
<img src="{{@site.logo}}" alt="{{@site.title}}" />
|
<img src="{{@site.logo}}" alt="{{@site.title}}">
|
||||||
{{else}}
|
{{else}}
|
||||||
{{@site.title}}
|
{{@site.title}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</a>
|
</a>
|
||||||
<div class="gh-head-brand-wrapper">
|
<button class="gh-search gh-icon-btn" aria-label="Search this site" data-ghost-search>{{> "icons/search"}}</button>
|
||||||
<button class="gh-search" data-ghost-search>{{> "icons/search"}}</button>
|
<button class="gh-burger"></button>
|
||||||
<a class="gh-burger" role="button">
|
|
||||||
<div class="gh-burger-box">
|
|
||||||
<div class="gh-burger-inner"></div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="gh-head-menu">
|
|
||||||
|
<nav class="gh-head-menu">
|
||||||
{{navigation}}
|
{{navigation}}
|
||||||
</div>
|
{{#unless @site.members_enabled}}
|
||||||
|
{{#match @custom.navigation_layout "Stacked"}}
|
||||||
|
<button class="gh-search gh-icon-btn" aria-label="Search this site" data-ghost-search>{{> "icons/search"}}</button>
|
||||||
|
{{/match}}
|
||||||
|
{{/unless}}
|
||||||
|
</nav>
|
||||||
|
|
||||||
<div class="gh-head-actions">
|
<div class="gh-head-actions">
|
||||||
<button class="gh-search" data-ghost-search>{{> "icons/search"}}</button>
|
{{#unless @site.members_enabled}}
|
||||||
<div class="gh-social">
|
{{^match @custom.navigation_layout "Stacked"}}
|
||||||
{{#if @site.facebook}}
|
<button class="gh-search gh-icon-btn" data-ghost-search>{{> "icons/search"}}</button>
|
||||||
<a class="gh-social-link gh-social-facebook" href="{{facebook_url @site.facebook}}" title="Facebook" target="_blank" rel="noopener">{{> "icons/facebook"}}</a>
|
{{/match}}
|
||||||
{{/if}}
|
{{else}}
|
||||||
{{#if @site.twitter}}
|
<button class="gh-search gh-icon-btn" data-ghost-search>{{> "icons/search"}}</button>
|
||||||
<a class="gh-social-link gh-social-twitter" href="{{twitter_url @site.twitter}}" title="Twitter" target="_blank" rel="noopener">{{> "icons/twitter"}}</a>
|
<div class="gh-head-members">
|
||||||
{{/if}}
|
{{#unless @member}}
|
||||||
</div>
|
{{#unless @site.members_invite_only}}
|
||||||
{{#if @site.members_enabled}}
|
<a class="gh-head-link" href="#/portal/signin" data-portal="signin">Sign in</a>
|
||||||
{{#unless @member}}
|
<a class="gh-head-button" href="#/portal/signup" data-portal="signup">Subscribe</a>
|
||||||
<a class="gh-head-button" href="#/portal/signup" data-portal="signup">Subscribe</a>
|
{{else}}
|
||||||
{{else}}
|
<a class="gh-head-button" href="#/portal/signin" data-portal="signin">Sign in</a>
|
||||||
<a class="gh-head-button" href="#/portal/account" data-portal="account">Account</a>
|
{{/unless}}
|
||||||
{{/unless}}
|
{{else}}
|
||||||
{{/if}}
|
<a class="gh-head-button" href="#/portal/account" data-portal="account">Account</a>
|
||||||
|
{{/unless}}
|
||||||
|
</div>
|
||||||
|
{{/unless}}
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<div class="site-content">
|
<div class="site-content">
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
{{!--
|
{{!--
|
||||||
|
|
||||||
There are two error files in this theme, one for 404s and one for all other errors.
|
There are two error files in this theme, one for 404s and one for all other errors.
|
||||||
This file is the latter, and handle all 400/500 errors that might occur.
|
This file is the latter, and handles all 400/500 errors that might occur.
|
||||||
|
|
||||||
Because 500 errors in particular usuall happen when a server is struggling, this
|
Because 500 errors in particular usually happen when a server is struggling, this
|
||||||
template is as simple as possible. No template dependencies, no JS, no API calls.
|
template is as simple as possible. No template dependencies, no JS, no API calls.
|
||||||
This is to prevent rendering the error-page itself compounding the issue causing
|
This is to prevent rendering the error-page itself compounding the issue causing
|
||||||
the error in the first place.
|
the error in the first place.
|
||||||
|
@ -90,8 +90,9 @@ function zipper(done) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const cssWatcher = () => watch('assets/css/**', css);
|
const cssWatcher = () => watch('assets/css/**', css);
|
||||||
|
const jsWatcher = () => watch('assets/js/**', js);
|
||||||
const hbsWatcher = () => watch(['*.hbs', 'partials/**/*.hbs'], hbs);
|
const hbsWatcher = () => watch(['*.hbs', 'partials/**/*.hbs'], hbs);
|
||||||
const watcher = parallel(cssWatcher, hbsWatcher);
|
const watcher = parallel(cssWatcher, jsWatcher, hbsWatcher);
|
||||||
const build = series(css, js);
|
const build = series(css, js);
|
||||||
|
|
||||||
exports.build = build;
|
exports.build = build;
|
||||||
|
@ -22,13 +22,13 @@ into the {body} of the default.hbs template --}}
|
|||||||
|
|
||||||
{{#match @custom.header_style "!=" "Hidden"}}
|
{{#match @custom.header_style "!=" "Hidden"}}
|
||||||
<div class="site-header-inner inner">
|
<div class="site-header-inner inner">
|
||||||
{{#unless @custom.show_logo_in_navigation}}
|
{{#match @custom.navigation_layout "Logo on cover"}}
|
||||||
{{#if @site.logo}}
|
{{#if @site.logo}}
|
||||||
<img class="site-logo" src="{{@site.logo}}" alt="{{@site.title}}">
|
<img class="site-logo" src="{{@site.logo}}" alt="{{@site.title}}">
|
||||||
{{else}}
|
{{else}}
|
||||||
<h1 class="site-title">{{@site.title}}</h1>
|
<h1 class="site-title">{{@site.title}}</h1>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/unless}}
|
{{/match}}
|
||||||
{{#if @site.description}}
|
{{#if @site.description}}
|
||||||
<p class="site-description">{{@site.description}}</p>
|
<p class="site-description">{{@site.description}}</p>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
@ -48,5 +48,7 @@ into the {body} of the default.hbs template --}}
|
|||||||
{{/foreach}}
|
{{/foreach}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{pagination}}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
20
package.json
20
package.json
@ -2,7 +2,7 @@
|
|||||||
"name": "casper",
|
"name": "casper",
|
||||||
"description": "A clean, minimal default theme for the Ghost publishing platform",
|
"description": "A clean, minimal default theme for the Ghost publishing platform",
|
||||||
"demo": "https://demo.ghost.io",
|
"demo": "https://demo.ghost.io",
|
||||||
"version": "5.2.3",
|
"version": "5.4.7",
|
||||||
"engines": {
|
"engines": {
|
||||||
"ghost": ">=5.0.0"
|
"ghost": ">=5.0.0"
|
||||||
},
|
},
|
||||||
@ -45,11 +45,11 @@
|
|||||||
"bugs": "https://github.com/TryGhost/Casper/issues",
|
"bugs": "https://github.com/TryGhost/Casper/issues",
|
||||||
"contributors": "https://github.com/TryGhost/Casper/graphs/contributors",
|
"contributors": "https://github.com/TryGhost/Casper/graphs/contributors",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@tryghost/release-utils": "0.8.0",
|
"@tryghost/release-utils": "0.8.1",
|
||||||
"autoprefixer": "10.4.7",
|
"autoprefixer": "10.4.7",
|
||||||
"beeper": "2.1.0",
|
"beeper": "2.1.0",
|
||||||
"cssnano": "5.1.12",
|
"cssnano": "5.1.12",
|
||||||
"gscan": "4.31.2",
|
"gscan": "4.34.0",
|
||||||
"gulp": "4.0.2",
|
"gulp": "4.0.2",
|
||||||
"gulp-concat": "2.6.1",
|
"gulp-concat": "2.6.1",
|
||||||
"gulp-livereload": "4.0.2",
|
"gulp-livereload": "4.0.2",
|
||||||
@ -89,6 +89,15 @@
|
|||||||
},
|
},
|
||||||
"card_assets": true,
|
"card_assets": true,
|
||||||
"custom": {
|
"custom": {
|
||||||
|
"navigation_layout": {
|
||||||
|
"type": "select",
|
||||||
|
"options": [
|
||||||
|
"Logo on cover",
|
||||||
|
"Logo in the middle",
|
||||||
|
"Stacked"
|
||||||
|
],
|
||||||
|
"default": "Logo on cover"
|
||||||
|
},
|
||||||
"title_font": {
|
"title_font": {
|
||||||
"type": "select",
|
"type": "select",
|
||||||
"options": [
|
"options": [
|
||||||
@ -120,11 +129,6 @@
|
|||||||
"default": "Center aligned",
|
"default": "Center aligned",
|
||||||
"group": "homepage"
|
"group": "homepage"
|
||||||
},
|
},
|
||||||
"show_logo_in_navigation": {
|
|
||||||
"type": "boolean",
|
|
||||||
"default": false,
|
|
||||||
"group": "homepage"
|
|
||||||
},
|
|
||||||
"feed_layout": {
|
"feed_layout": {
|
||||||
"type": "select",
|
"type": "select",
|
||||||
"options": [
|
"options": [
|
||||||
|
@ -66,9 +66,11 @@ which templates loop over to generate a list of posts. --}}
|
|||||||
<footer class="post-card-meta">
|
<footer class="post-card-meta">
|
||||||
<time class="post-card-meta-date" datetime="{{date format="YYYY-MM-DD"}}">{{date}}</time>
|
<time class="post-card-meta-date" datetime="{{date format="YYYY-MM-DD"}}">{{date}}</time>
|
||||||
{{#if reading_time}}
|
{{#if reading_time}}
|
||||||
<span class="sep">—</span>
|
|
||||||
<span class="post-card-meta-length">{{reading_time}}</span>
|
<span class="post-card-meta-length">{{reading_time}}</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
{{#if @site.comments_enabled}}
|
||||||
|
{{comment_count}}
|
||||||
|
{{/if}}
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
14
post.hbs
14
post.hbs
@ -86,11 +86,11 @@ into the {body} tag of the default.hbs template --}}
|
|||||||
{{content}}
|
{{content}}
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
{{!--
|
{{#if comments}}
|
||||||
<section class="article-comments gh-canvas">
|
<section class="article-comments gh-canvas">
|
||||||
If you want to embed comments, this is a good place to paste your code!
|
{{comments}}
|
||||||
</section>
|
</section>
|
||||||
--}}
|
{{/if}}
|
||||||
|
|
||||||
</article>
|
</article>
|
||||||
</main>
|
</main>
|
||||||
@ -98,6 +98,7 @@ into the {body} tag of the default.hbs template --}}
|
|||||||
{{!-- A signup call to action is displayed here, unless viewed as a logged-in member --}}
|
{{!-- A signup call to action is displayed here, unless viewed as a logged-in member --}}
|
||||||
{{#if @site.members_enabled}}
|
{{#if @site.members_enabled}}
|
||||||
{{#unless @member}}
|
{{#unless @member}}
|
||||||
|
{{#unless @site.comments_enabled}}
|
||||||
{{#if access}}
|
{{#if access}}
|
||||||
<section class="footer-cta outer">
|
<section class="footer-cta outer">
|
||||||
<div class="inner">
|
<div class="inner">
|
||||||
@ -106,12 +107,11 @@ into the {body} tag of the default.hbs template --}}
|
|||||||
<div class="footer-cta-input">Enter your email</div>
|
<div class="footer-cta-input">Enter your email</div>
|
||||||
<span>Subscribe</span>
|
<span>Subscribe</span>
|
||||||
</a>
|
</a>
|
||||||
{{!-- ^ This looks like a form element, but it's just a link to Portal,
|
|
||||||
making the form validation and submission much simpler. --}}
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
|
{{/unless}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
|
||||||
|
3
tag.hbs
3
tag.hbs
@ -48,5 +48,8 @@
|
|||||||
{{/foreach}}
|
{{/foreach}}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{pagination}}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
135
yarn.lock
135
yarn.lock
@ -27,60 +27,50 @@
|
|||||||
tslib "^2.4.0"
|
tslib "^2.4.0"
|
||||||
undici "^5.1.1"
|
undici "^5.1.1"
|
||||||
|
|
||||||
"@sentry/core@6.19.7":
|
"@sentry/core@7.8.1":
|
||||||
version "6.19.7"
|
version "7.8.1"
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.19.7.tgz#156aaa56dd7fad8c89c145be6ad7a4f7209f9785"
|
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.8.1.tgz#d11ba7c97766d1e47edf697dbfd47fe4041477d9"
|
||||||
integrity sha512-tOfZ/umqB2AcHPGbIrsFLcvApdTm9ggpi/kQZFkej7kMphjT+SGBiQfYtjyg9jcRW+ilAR4JXC9BGKsdEQ+8Vw==
|
integrity sha512-PRivbdIzApi/gSixAxozhOBTylSVdw/9VxaStYHd7JJGhs36KXkV8ylpbCmYO4ap7/Ue9/slzwpvPOJJzmzAgA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@sentry/hub" "6.19.7"
|
"@sentry/hub" "7.8.1"
|
||||||
"@sentry/minimal" "6.19.7"
|
"@sentry/types" "7.8.1"
|
||||||
"@sentry/types" "6.19.7"
|
"@sentry/utils" "7.8.1"
|
||||||
"@sentry/utils" "6.19.7"
|
|
||||||
tslib "^1.9.3"
|
tslib "^1.9.3"
|
||||||
|
|
||||||
"@sentry/hub@6.19.7":
|
"@sentry/hub@7.8.1":
|
||||||
version "6.19.7"
|
version "7.8.1"
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.19.7.tgz#58ad7776bbd31e9596a8ec46365b45cd8b9cfd11"
|
resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-7.8.1.tgz#bc255c6b8e99a3333e737f189c984c715df504aa"
|
||||||
integrity sha512-y3OtbYFAqKHCWezF0EGGr5lcyI2KbaXW2Ik7Xp8Mu9TxbSTuwTe4rTntwg8ngPjUQU3SUHzgjqVB8qjiGqFXCA==
|
integrity sha512-AxwyGyS9Lp4XsURu4t8opa5vZ+NAB6I/n+B/Uix3YZea9z8jdWYAu9vsXSizOrtxekc/i7ZN4bnlNgXVHix0iA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@sentry/types" "6.19.7"
|
"@sentry/types" "7.8.1"
|
||||||
"@sentry/utils" "6.19.7"
|
"@sentry/utils" "7.8.1"
|
||||||
tslib "^1.9.3"
|
tslib "^1.9.3"
|
||||||
|
|
||||||
"@sentry/minimal@6.19.7":
|
"@sentry/node@7.8.1":
|
||||||
version "6.19.7"
|
version "7.8.1"
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.19.7.tgz#b3ee46d6abef9ef3dd4837ebcb6bdfd01b9aa7b4"
|
resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.8.1.tgz#9dca7afee2d9ad38fd9756e13439ce09d2f01934"
|
||||||
integrity sha512-wcYmSJOdvk6VAPx8IcmZgN08XTXRwRtB1aOLZm+MVHjIZIhHoBGZJYTVQS/BWjldsamj2cX3YGbGXNunaCfYJQ==
|
integrity sha512-gQHeIip7QudeK1YWrLyZPc7nfirhbVDJ3gfCfL9mLT724Sk8gKd1kcpU1niI+wwIwY7SOpJqX4Oh/F0lRKjzDQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@sentry/hub" "6.19.7"
|
"@sentry/core" "7.8.1"
|
||||||
"@sentry/types" "6.19.7"
|
"@sentry/hub" "7.8.1"
|
||||||
tslib "^1.9.3"
|
"@sentry/types" "7.8.1"
|
||||||
|
"@sentry/utils" "7.8.1"
|
||||||
"@sentry/node@6.19.7":
|
|
||||||
version "6.19.7"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/node/-/node-6.19.7.tgz#32963b36b48daebbd559e6f13b1deb2415448592"
|
|
||||||
integrity sha512-gtmRC4dAXKODMpHXKfrkfvyBL3cI8y64vEi3fDD046uqYcrWdgoQsffuBbxMAizc6Ez1ia+f0Flue6p15Qaltg==
|
|
||||||
dependencies:
|
|
||||||
"@sentry/core" "6.19.7"
|
|
||||||
"@sentry/hub" "6.19.7"
|
|
||||||
"@sentry/types" "6.19.7"
|
|
||||||
"@sentry/utils" "6.19.7"
|
|
||||||
cookie "^0.4.1"
|
cookie "^0.4.1"
|
||||||
https-proxy-agent "^5.0.0"
|
https-proxy-agent "^5.0.0"
|
||||||
lru_map "^0.3.3"
|
lru_map "^0.3.3"
|
||||||
tslib "^1.9.3"
|
tslib "^1.9.3"
|
||||||
|
|
||||||
"@sentry/types@6.19.7":
|
"@sentry/types@7.8.1":
|
||||||
version "6.19.7"
|
version "7.8.1"
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.19.7.tgz#c6b337912e588083fc2896eb012526cf7cfec7c7"
|
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.8.1.tgz#c00a1ed02ad8f69d3b94fcda91e2d24e0bb3492a"
|
||||||
integrity sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg==
|
integrity sha512-LOoaeBXVI23Kh5SpIbxSRiJ6+eYZXVOFyPFH1T1mGBj95LPwRMqOdg0lUTmFJGBKbDGDB/YNjNnu1kQ7GrXBXw==
|
||||||
|
|
||||||
"@sentry/utils@6.19.7":
|
"@sentry/utils@7.8.1":
|
||||||
version "6.19.7"
|
version "7.8.1"
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.19.7.tgz#6edd739f8185fd71afe49cbe351c1bbf5e7b7c79"
|
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.8.1.tgz#5d8a7e1c8d834de608ad834cf648d5291c62ba39"
|
||||||
integrity sha512-z95ECmE3i9pbWoXQrD/7PgkBAzJYR+iXtPuTkpBjDKs86O3mT+PXOT3BAn79w2wkn7/i3vOGD2xVr1uiMl26dA==
|
integrity sha512-isUZjft4HWTOk1Z58KFJ/zzXeFtIJgP82CkYQlW464ZR2WCqPHYlXXXRWZpOHOfMnrf+gWeX9WAGS9rTAdhiSg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@sentry/types" "6.19.7"
|
"@sentry/types" "7.8.1"
|
||||||
tslib "^1.9.3"
|
tslib "^1.9.3"
|
||||||
|
|
||||||
"@sindresorhus/is@^0.14.0":
|
"@sindresorhus/is@^0.14.0":
|
||||||
@ -161,10 +151,10 @@
|
|||||||
json-stringify-safe "^5.0.1"
|
json-stringify-safe "^5.0.1"
|
||||||
lodash "^4.17.21"
|
lodash "^4.17.21"
|
||||||
|
|
||||||
"@tryghost/pretty-cli@1.2.28":
|
"@tryghost/pretty-cli@1.2.29":
|
||||||
version "1.2.28"
|
version "1.2.29"
|
||||||
resolved "https://registry.yarnpkg.com/@tryghost/pretty-cli/-/pretty-cli-1.2.28.tgz#11d4644b6d2ae4759a7015b66c3949895d92230e"
|
resolved "https://registry.yarnpkg.com/@tryghost/pretty-cli/-/pretty-cli-1.2.29.tgz#1484e0aae195f7766d38807e00d5b4094cfb9172"
|
||||||
integrity sha512-2YWNklw2VLcCPtBY0lErzCqejq0mE6w7flQhdZ9WJFm8iXhgUcgJggtr+4Vy9+b2cgobTJyO4xF7IoqSr8ytxg==
|
integrity sha512-J+rA4D+VFCVG/hBZaPqaD5wXp9A+6TNYEqIYPpREvLpOL+fD5bP4W+xiYHEQa4aQoq0MNm5X7bXmtgxPFfdX+g==
|
||||||
dependencies:
|
dependencies:
|
||||||
chalk "^4.1.0"
|
chalk "^4.1.0"
|
||||||
sywac "^1.3.0"
|
sywac "^1.3.0"
|
||||||
@ -178,10 +168,10 @@
|
|||||||
moment "^2.29.1"
|
moment "^2.29.1"
|
||||||
prettyjson "^1.2.5"
|
prettyjson "^1.2.5"
|
||||||
|
|
||||||
"@tryghost/release-utils@0.8.0":
|
"@tryghost/release-utils@0.8.1":
|
||||||
version "0.8.0"
|
version "0.8.1"
|
||||||
resolved "https://registry.yarnpkg.com/@tryghost/release-utils/-/release-utils-0.8.0.tgz#2e017e0ed8326252becd9085f97d1dce61984bd6"
|
resolved "https://registry.yarnpkg.com/@tryghost/release-utils/-/release-utils-0.8.1.tgz#6565e48d903b6b727bd6c8326a345a3a2fce71f1"
|
||||||
integrity sha512-3KbxucGpT5N3km5pYBUAJSEhXkOWkb6ABJ7PU0UtOqfmgQRprenAxf1rcSuQK0K/85ezXamVFNkfjZcy3355Fw==
|
integrity sha512-smSspchAfNW7KL8ERIR1F4CUS2/eB0Ajt6X4Wbx0b4bJ4crJeFAn3wFHM9c20AhNdRacQ3W2PtPO/Sq9jcx1Hg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@tryghost/errors" "^1.2.1"
|
"@tryghost/errors" "^1.2.1"
|
||||||
bluebird "^3.7.2"
|
bluebird "^3.7.2"
|
||||||
@ -244,10 +234,10 @@
|
|||||||
"@tryghost/root-utils" "^0.3.15"
|
"@tryghost/root-utils" "^0.3.15"
|
||||||
semver "^7.3.5"
|
semver "^7.3.5"
|
||||||
|
|
||||||
"@tryghost/zip@1.1.26":
|
"@tryghost/zip@1.1.27":
|
||||||
version "1.1.26"
|
version "1.1.27"
|
||||||
resolved "https://registry.yarnpkg.com/@tryghost/zip/-/zip-1.1.26.tgz#5e6bafd8157d89ce63d034da477fd4c0511f28c7"
|
resolved "https://registry.yarnpkg.com/@tryghost/zip/-/zip-1.1.27.tgz#604ae4c83dd6eabf61475cc83c6b558233cd0dfe"
|
||||||
integrity sha512-Gbxjfk2mnd6ae2muIHxk5hquKWQRMXMVrdiXSvb6dm+PmhLw7pMEOXXydvR7hPM3gEQQodYZt652iK/KtsfdgA==
|
integrity sha512-PokFblvBm90vtwsDJDpwYJ72lDTVj3Ig3epox035R75Dmln0Vl4wjoaeMKOv9xj3RjmXUpry/fINNMEiBX2mNg==
|
||||||
dependencies:
|
dependencies:
|
||||||
archiver "^5.0.0"
|
archiver "^5.0.0"
|
||||||
bluebird "^3.7.2"
|
bluebird "^3.7.2"
|
||||||
@ -2069,17 +2059,16 @@ glob-watcher@^5.0.3:
|
|||||||
normalize-path "^3.0.0"
|
normalize-path "^3.0.0"
|
||||||
object.defaults "^1.1.0"
|
object.defaults "^1.1.0"
|
||||||
|
|
||||||
glob@7.2.3, glob@^7.0.3, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4:
|
glob@8.0.3:
|
||||||
version "7.2.3"
|
version "8.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
|
resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e"
|
||||||
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
|
integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
fs.realpath "^1.0.0"
|
fs.realpath "^1.0.0"
|
||||||
inflight "^1.0.4"
|
inflight "^1.0.4"
|
||||||
inherits "2"
|
inherits "2"
|
||||||
minimatch "^3.1.1"
|
minimatch "^5.0.1"
|
||||||
once "^1.3.0"
|
once "^1.3.0"
|
||||||
path-is-absolute "^1.0.0"
|
|
||||||
|
|
||||||
glob@^6.0.1:
|
glob@^6.0.1:
|
||||||
version "6.0.4"
|
version "6.0.4"
|
||||||
@ -2092,6 +2081,18 @@ glob@^6.0.1:
|
|||||||
once "^1.3.0"
|
once "^1.3.0"
|
||||||
path-is-absolute "^1.0.0"
|
path-is-absolute "^1.0.0"
|
||||||
|
|
||||||
|
glob@^7.0.3, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4:
|
||||||
|
version "7.2.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
|
||||||
|
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
|
||||||
|
dependencies:
|
||||||
|
fs.realpath "^1.0.0"
|
||||||
|
inflight "^1.0.4"
|
||||||
|
inherits "2"
|
||||||
|
minimatch "^3.1.1"
|
||||||
|
once "^1.3.0"
|
||||||
|
path-is-absolute "^1.0.0"
|
||||||
|
|
||||||
global-modules@^1.0.0:
|
global-modules@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea"
|
resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea"
|
||||||
@ -2152,26 +2153,26 @@ graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6,
|
|||||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
|
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
|
||||||
integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
|
integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
|
||||||
|
|
||||||
gscan@4.31.2:
|
gscan@4.34.0:
|
||||||
version "4.31.2"
|
version "4.34.0"
|
||||||
resolved "https://registry.yarnpkg.com/gscan/-/gscan-4.31.2.tgz#d8dd1f156f7a59f655625c3422cfd89bb42df8ac"
|
resolved "https://registry.yarnpkg.com/gscan/-/gscan-4.34.0.tgz#1835faf795163184fce0aba43b56a4374f75134c"
|
||||||
integrity sha512-NuFcXRbSUSWOl6FuGPKT24dcepI/oMiUF6EGzMEGbY5ndl6Ba/BZrK9dT7hMHeyaJCn+T4fpxTPQqfXHkM2qcg==
|
integrity sha512-uITKioTZHoWatKKlV+yI963joF8+shUwaqM+A7DJng5H251YTfrW3cAiCrHyedGhJckrN7XPeEnbpNbTDoWCiw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@sentry/node" "6.19.7"
|
"@sentry/node" "7.8.1"
|
||||||
"@tryghost/config" "0.2.9"
|
"@tryghost/config" "0.2.9"
|
||||||
"@tryghost/debug" "0.1.17"
|
"@tryghost/debug" "0.1.17"
|
||||||
"@tryghost/errors" "1.2.14"
|
"@tryghost/errors" "1.2.14"
|
||||||
"@tryghost/logging" "2.2.3"
|
"@tryghost/logging" "2.2.3"
|
||||||
"@tryghost/pretty-cli" "1.2.28"
|
"@tryghost/pretty-cli" "1.2.29"
|
||||||
"@tryghost/server" "0.1.21"
|
"@tryghost/server" "0.1.21"
|
||||||
"@tryghost/zip" "1.1.26"
|
"@tryghost/zip" "1.1.27"
|
||||||
bluebird "3.7.2"
|
bluebird "3.7.2"
|
||||||
chalk "4.1.2"
|
chalk "4.1.2"
|
||||||
common-tags "1.8.2"
|
common-tags "1.8.2"
|
||||||
express "4.18.1"
|
express "4.18.1"
|
||||||
express-hbs "2.4.0"
|
express-hbs "2.4.0"
|
||||||
fs-extra "10.1.0"
|
fs-extra "10.1.0"
|
||||||
glob "7.2.3"
|
glob "8.0.3"
|
||||||
lodash "4.17.21"
|
lodash "4.17.21"
|
||||||
multer "1.4.4"
|
multer "1.4.4"
|
||||||
pluralize "8.0.0"
|
pluralize "8.0.0"
|
||||||
@ -3113,7 +3114,7 @@ mimic-response@^1.0.0, mimic-response@^1.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
brace-expansion "^1.1.7"
|
brace-expansion "^1.1.7"
|
||||||
|
|
||||||
minimatch@^5.1.0:
|
minimatch@^5.0.1, minimatch@^5.1.0:
|
||||||
version "5.1.0"
|
version "5.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7"
|
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7"
|
||||||
integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==
|
integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==
|
||||||
|
Reference in New Issue
Block a user