mirror of
https://github.com/GenZmeY/casper-i18n.git
synced 2025-07-13 01:06:06 +00:00
Compare commits
53 Commits
Author | SHA1 | Date | |
---|---|---|---|
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 | |||
b28258d0c8 | |||
f3c0526ea5 | |||
129a578751 | |||
1b3541ef2a | |||
664afdb158 | |||
d386ab090f | |||
c6411dbf41 | |||
7eb472ab81 | |||
ae7b6e1022 | |||
b74032835f | |||
eab9e1ae0f | |||
873566a24c | |||
1ade4c8816 | |||
245969800d | |||
db37f3caa8 | |||
a15e9bda40 | |||
ffcbc42d13 | |||
d373d926fa | |||
8699a22019 | |||
eff8d360ba |
@ -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
@ -1,2 +1,2 @@
|
|||||||
a,abbr,acronym,address,applet,article,aside,audio,big,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,ul,var,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}img{display:block;max-width:100%;height:auto}html{box-sizing:border-box;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:inherit}a{background-color:transparent}a:active,a:hover{outline:0}b,strong{font-weight:700}dfn,em,i{font-style:italic}h1{margin:.67em 0;font-size:2em}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}mark{background-color:#fdffb6}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}kbd{padding:3px 5px;font-family:var(--font-mono);font-size:1.5rem;background:#f6f8fa;border:1px solid rgba(124,139,154,.25);border-radius:6px;box-shadow:inset 0 -1px 0 rgba(124,139,154,.25)}@media (max-width:600px){kbd{font-size:1.3rem}}button,input,optgroup,select,textarea{margin:0;color:inherit;font:inherit}button{overflow:visible;border:none}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input:focus{outline:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{padding:0;border:0}textarea{overflow:auto}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{color:var(--color-darkgrey);font-family:var(--font-sans);font-size:1.6rem;line-height:1.6em;font-weight:400;font-style:normal;letter-spacing:0;text-rendering:optimizeLegibility;background:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-font-feature-settings:"liga" on}::-moz-selection{text-shadow:none;background:#daf2fd}::selection{text-shadow:none;background:#daf2fd}hr{position:relative;display:block;width:100%;margin:2.5em 0 3.5em;padding:0;height:1px;border:0;border-top:1px solid #f0f0f0}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{margin:0;padding:0;border:0}textarea{resize:vertical}::not(.gh-content) blockquote,::not(.gh-content) dl,::not(.gh-content) ol,::not(.gh-content) p,::not(.gh-content) ul{margin:0 0 1.5em}ol,ul{padding-left:1.3em;padding-right:1.5em}ol ol,ol ul,ul ol,ul ul{margin:.5em 0 1em}ul{list-style:disc}ol{list-style:decimal}ol,ul{max-width:100%}li{padding-left:.3em;line-height:1.6em}li+li{margin-top:.5em}dt{float:left;margin:0 20px 0 0;width:120px;color:#daf2fd;font-weight:500;text-align:right}dd{margin:0 0 5px;text-align:left}blockquote{margin:1.5em 0;padding:0 1.6em;border-left:#daf2fd}blockquote small{display:inline-block;margin:.8em 0 .8em 1.5em;font-size:.9em;opacity:.8}blockquote small:before{content:"\2014 \00A0"}blockquote cite{font-weight:700}blockquote cite a{font-weight:400}a{color:#15171a;text-decoration:none}h1,h2,h3,h4,h5,h6{margin-top:0;line-height:1.15;font-weight:600;text-rendering:optimizeLegibility;letter-spacing:-.01em}h1{margin:0 0 .5em;font-size:4.8rem;font-weight:700;letter-spacing:-.015em}@media (max-width:600px){h1{font-size:2.8rem}}h2{margin:1.5em 0 .5em;font-size:2.8rem;font-weight:700}@media (max-width:600px){h2{font-size:2.3rem}}h3{margin:1.5em 0 .5em;font-size:2.4rem;font-weight:600}@media (max-width:600px){h3{font-size:1.7rem}}h4{margin:1.5em 0 .5em;font-size:2rem}@media (max-width:600px){h4{font-size:1.7rem}}h5{font-size:2rem}h5,h6{margin:1.5em 0 .5em}h6{font-size:1.8rem}
|
a,abbr,acronym,address,applet,article,aside,audio,big,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,ul,var,video{border:0;font:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}img{display:block;height:auto;max-width:100%}html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;box-sizing:border-box;font-family:sans-serif}*,:after,:before{box-sizing:inherit}a{background-color:transparent}a:active,a:hover{outline:0}b,strong{font-weight:700}dfn,em,i{font-style:italic}h1{font-size:2em;margin:.67em 0}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}mark{background-color:#fdffb6}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}kbd{background:#f6f8fa;border:1px solid rgba(124,139,154,.25);border-radius:6px;box-shadow:inset 0 -1px 0 rgba(124,139,154,.25);font-family:var(--font-mono);font-size:1.5rem;padding:3px 5px}@media (max-width:600px){kbd{font-size:1.3rem}}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{border:none;overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input:focus{outline:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{border:0;padding:0}textarea{overflow:auto}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{-webkit-tap-highlight-color:rgba(0,0,0,0);font-size:62.5%}body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-font-feature-settings:"liga" on;background:#fff;color:var(--color-darkgrey);font-family:var(--font-sans);font-size:1.6rem;font-style:normal;font-weight:400;letter-spacing:0;line-height:1.6em}::-moz-selection{background:#daf2fd;text-shadow:none}::selection{background:#daf2fd;text-shadow:none}hr{border:0;border-top:1px solid #f0f0f0;display:block;height:1px;margin:2.5em 0 3.5em;padding:0;position:relative;width:100%}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}::not(.gh-content) blockquote,::not(.gh-content) dl,::not(.gh-content) ol,::not(.gh-content) p,::not(.gh-content) ul{margin:0 0 1.5em}ol,ul{padding-left:1.3em;padding-right:1.5em}ol ol,ol ul,ul ol,ul ul{margin:.5em 0 1em}ul{list-style:disc}ol{list-style:decimal}ol,ul{max-width:100%}li{line-height:1.6em;padding-left:.3em}li+li{margin-top:.5em}dt{color:#daf2fd;float:left;font-weight:500;margin:0 20px 0 0;text-align:right;width:120px}dd{margin:0 0 5px;text-align:left}blockquote{border-left:#daf2fd;margin:1.5em 0;padding:0 1.6em}blockquote small{display:inline-block;font-size:.9em;margin:.8em 0 .8em 1.5em;opacity:.8}blockquote small:before{content:"\2014 \00A0"}blockquote cite{font-weight:700}blockquote cite a{font-weight:400}a{color:#15171a;text-decoration:none}h1,h2,h3,h4,h5,h6{text-rendering:optimizeLegibility;font-weight:600;letter-spacing:-.01em;line-height:1.15;margin-top:0}h1{font-size:4.8rem;font-weight:700;letter-spacing:-.015em;margin:0 0 .5em}@media (max-width:600px){h1{font-size:2.8rem}}h2{font-size:2.8rem;font-weight:700;margin:1.5em 0 .5em}@media (max-width:600px){h2{font-size:2.3rem}}h3{font-size:2.4rem;font-weight:600;margin:1.5em 0 .5em}@media (max-width:600px){h3{font-size:1.7rem}}h4{font-size:2rem;margin:1.5em 0 .5em}@media (max-width:600px){h4{font-size:1.7rem}}h5{font-size:2rem}h5,h6{margin:1.5em 0 .5em}h6{font-size:1.8rem}
|
||||||
/*# sourceMappingURL=global.css.map */
|
/*# sourceMappingURL=global.css.map */
|
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>
|
||||||
|
63
default.hbs
63
default.hbs
@ -18,47 +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>
|
||||||
<a class="gh-burger" role="button">
|
<button class="gh-search gh-icon-btn" data-ghost-search>{{> "icons/search"}}</button>
|
||||||
<div class="gh-burger-box">
|
<button class="gh-burger"></button>
|
||||||
<div class="gh-burger-inner"></div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</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" data-ghost-search>{{> "icons/search"}}</button>
|
||||||
|
{{/match}}
|
||||||
|
{{/unless}}
|
||||||
|
</nav>
|
||||||
|
|
||||||
<div class="gh-head-actions">
|
<div class="gh-head-actions">
|
||||||
<div class="gh-social">
|
{{#unless @site.members_enabled}}
|
||||||
{{#if @site.facebook}}
|
{{^match @custom.navigation_layout "Stacked"}}
|
||||||
<a class="gh-social-link gh-social-facebook" href="{{facebook_url @site.facebook}}" title="Facebook" target="_blank" rel="noopener">{{> "icons/facebook"}}</a>
|
<button class="gh-search gh-icon-btn" data-ghost-search>{{> "icons/search"}}</button>
|
||||||
{{/if}}
|
{{/match}}
|
||||||
{{#if @site.twitter}}
|
{{else}}
|
||||||
<a class="gh-social-link gh-social-twitter" href="{{twitter_url @site.twitter}}" title="Twitter" target="_blank" rel="noopener">{{> "icons/twitter"}}</a>
|
<button class="gh-search gh-icon-btn" data-ghost-search>{{> "icons/search"}}</button>
|
||||||
{{/if}}
|
<div class="gh-head-members">
|
||||||
</div>
|
{{#unless @member}}
|
||||||
{{#if @site.members_enabled}}
|
{{#unless @site.members_invite_only}}
|
||||||
{{#unless @member}}
|
<a class="gh-head-link" href="#/portal/signin" data-portal="signin">Sign in</a>
|
||||||
<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/account" data-portal="account">Account</a>
|
<a class="gh-head-button" href="#/portal/signin" data-portal="signin">Sign in</a>
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
{{/if}}
|
{{else}}
|
||||||
|
<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">
|
||||||
|
@ -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;
|
||||||
@ -123,7 +124,7 @@ exports.release = async () => {
|
|||||||
type: 'input',
|
type: 'input',
|
||||||
name: 'compatibleWithGhost',
|
name: 'compatibleWithGhost',
|
||||||
message: 'Which version of Ghost is it compatible with?',
|
message: 'Which version of Ghost is it compatible with?',
|
||||||
default: '4.0.0'
|
default: '5.0.0'
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
const compatibleWithGhost = result.compatibleWithGhost;
|
const compatibleWithGhost = result.compatibleWithGhost;
|
||||||
|
@ -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>
|
||||||
|
32
package.json
32
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.1.5",
|
"version": "5.4.5",
|
||||||
"engines": {
|
"engines": {
|
||||||
"ghost": ">=5.0.0"
|
"ghost": ">=5.0.0"
|
||||||
},
|
},
|
||||||
@ -45,21 +45,21 @@
|
|||||||
"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.6.12",
|
"@tryghost/release-utils": "0.8.1",
|
||||||
"autoprefixer": "10.2.5",
|
"autoprefixer": "10.4.7",
|
||||||
"beeper": "2.1.0",
|
"beeper": "2.1.0",
|
||||||
"cssnano": "4.1.10",
|
"cssnano": "5.1.12",
|
||||||
"gscan": "4.22.0",
|
"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",
|
||||||
"gulp-postcss": "9.0.0",
|
"gulp-postcss": "9.0.1",
|
||||||
"gulp-uglify": "3.0.2",
|
"gulp-uglify": "3.0.2",
|
||||||
"gulp-zip": "5.1.0",
|
"gulp-zip": "5.1.0",
|
||||||
"inquirer": "8.0.0",
|
"inquirer": "8.2.4",
|
||||||
"postcss": "8.2.8",
|
"postcss": "8.2.13",
|
||||||
"postcss-color-mod-function": "3.0.3",
|
"postcss-color-mod-function": "3.0.3",
|
||||||
"postcss-easy-import": "3.0.0",
|
"postcss-easy-import": "4.0.0",
|
||||||
"pump": "3.0.0"
|
"pump": "3.0.0"
|
||||||
},
|
},
|
||||||
"browserslist": [
|
"browserslist": [
|
||||||
@ -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": [
|
||||||
|
1
partials/icons/search.hbs
Normal file
1
partials/icons/search.hbs
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" width="20" height="20"><path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg>
|
After Width: | Height: | Size: 248 B |
@ -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>
|
||||||
|
Reference in New Issue
Block a user