ghost 5.66.1 → 5.67.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/tryghost-adapter-cache-memory-ttl-5.67.0.tgz +0 -0
- package/components/{tryghost-adapter-cache-redis-5.66.1.tgz → tryghost-adapter-cache-redis-5.67.0.tgz} +0 -0
- package/components/tryghost-adapter-manager-5.67.0.tgz +0 -0
- package/components/tryghost-announcement-bar-settings-5.67.0.tgz +0 -0
- package/components/tryghost-api-framework-5.67.0.tgz +0 -0
- package/components/tryghost-api-version-compatibility-service-5.67.0.tgz +0 -0
- package/components/tryghost-audience-feedback-5.67.0.tgz +0 -0
- package/components/tryghost-bookshelf-repository-5.67.0.tgz +0 -0
- package/components/{tryghost-bootstrap-socket-5.66.1.tgz → tryghost-bootstrap-socket-5.67.0.tgz} +0 -0
- package/components/tryghost-collections-5.67.0.tgz +0 -0
- package/components/tryghost-constants-5.67.0.tgz +0 -0
- package/components/{tryghost-custom-theme-settings-service-5.66.1.tgz → tryghost-custom-theme-settings-service-5.67.0.tgz} +0 -0
- package/components/{tryghost-data-generator-5.66.1.tgz → tryghost-data-generator-5.67.0.tgz} +0 -0
- package/components/tryghost-domain-events-5.67.0.tgz +0 -0
- package/components/tryghost-donations-5.67.0.tgz +0 -0
- package/components/tryghost-dynamic-routing-events-5.67.0.tgz +0 -0
- package/components/tryghost-email-analytics-provider-mailgun-5.67.0.tgz +0 -0
- package/components/{tryghost-email-analytics-service-5.66.1.tgz → tryghost-email-analytics-service-5.67.0.tgz} +0 -0
- package/components/tryghost-email-content-generator-5.67.0.tgz +0 -0
- package/components/tryghost-email-events-5.67.0.tgz +0 -0
- package/components/{tryghost-email-service-5.66.1.tgz → tryghost-email-service-5.67.0.tgz} +0 -0
- package/components/tryghost-email-suppression-list-5.67.0.tgz +0 -0
- package/components/tryghost-event-aware-cache-wrapper-5.67.0.tgz +0 -0
- package/components/tryghost-express-dynamic-redirects-5.67.0.tgz +0 -0
- package/components/tryghost-external-media-inliner-5.67.0.tgz +0 -0
- package/components/tryghost-extract-api-key-5.67.0.tgz +0 -0
- package/components/{tryghost-html-to-plaintext-5.66.1.tgz → tryghost-html-to-plaintext-5.67.0.tgz} +0 -0
- package/components/tryghost-i18n-5.67.0.tgz +0 -0
- package/components/tryghost-importer-handler-content-files-5.67.0.tgz +0 -0
- package/components/tryghost-importer-revue-5.67.0.tgz +0 -0
- package/components/{tryghost-in-memory-repository-5.66.1.tgz → tryghost-in-memory-repository-5.67.0.tgz} +0 -0
- package/components/{tryghost-job-manager-5.66.1.tgz → tryghost-job-manager-5.67.0.tgz} +0 -0
- package/components/{tryghost-link-redirects-5.66.1.tgz → tryghost-link-redirects-5.67.0.tgz} +0 -0
- package/components/tryghost-link-replacer-5.67.0.tgz +0 -0
- package/components/{tryghost-link-tracking-5.66.1.tgz → tryghost-link-tracking-5.67.0.tgz} +0 -0
- package/components/tryghost-magic-link-5.67.0.tgz +0 -0
- package/components/{tryghost-mail-events-5.66.1.tgz → tryghost-mail-events-5.67.0.tgz} +0 -0
- package/components/{tryghost-mailgun-client-5.66.1.tgz → tryghost-mailgun-client-5.67.0.tgz} +0 -0
- package/components/{tryghost-member-attribution-5.66.1.tgz → tryghost-member-attribution-5.67.0.tgz} +0 -0
- package/components/tryghost-member-events-5.67.0.tgz +0 -0
- package/components/{tryghost-members-api-5.66.1.tgz → tryghost-members-api-5.67.0.tgz} +0 -0
- package/components/{tryghost-members-csv-5.66.1.tgz → tryghost-members-csv-5.67.0.tgz} +0 -0
- package/components/{tryghost-members-events-service-5.66.1.tgz → tryghost-members-events-service-5.67.0.tgz} +0 -0
- package/components/tryghost-members-importer-5.67.0.tgz +0 -0
- package/components/{tryghost-members-offers-5.66.1.tgz → tryghost-members-offers-5.67.0.tgz} +0 -0
- package/components/tryghost-members-payments-5.67.0.tgz +0 -0
- package/components/tryghost-members-ssr-5.67.0.tgz +0 -0
- package/components/{tryghost-members-stripe-service-5.66.1.tgz → tryghost-members-stripe-service-5.67.0.tgz} +0 -0
- package/components/tryghost-mentions-email-report-5.67.0.tgz +0 -0
- package/components/tryghost-milestones-5.67.0.tgz +0 -0
- package/components/tryghost-minifier-5.67.0.tgz +0 -0
- package/components/tryghost-model-to-domain-event-interceptor-5.67.0.tgz +0 -0
- package/components/tryghost-mw-api-version-mismatch-5.67.0.tgz +0 -0
- package/components/tryghost-mw-cache-control-5.67.0.tgz +0 -0
- package/components/{tryghost-mw-error-handler-5.66.1.tgz → tryghost-mw-error-handler-5.67.0.tgz} +0 -0
- package/components/tryghost-mw-session-from-token-5.67.0.tgz +0 -0
- package/components/tryghost-mw-update-user-last-seen-5.67.0.tgz +0 -0
- package/components/tryghost-mw-version-match-5.67.0.tgz +0 -0
- package/components/tryghost-mw-vhost-5.67.0.tgz +0 -0
- package/components/tryghost-nql-filter-expansions-5.67.0.tgz +0 -0
- package/components/tryghost-oembed-service-5.67.0.tgz +0 -0
- package/components/tryghost-package-json-5.67.0.tgz +0 -0
- package/components/{tryghost-post-events-5.66.1.tgz → tryghost-post-events-5.67.0.tgz} +0 -0
- package/components/tryghost-post-revisions-5.67.0.tgz +0 -0
- package/components/tryghost-posts-service-5.67.0.tgz +0 -0
- package/components/tryghost-recommendations-5.67.0.tgz +0 -0
- package/components/tryghost-referrers-5.67.0.tgz +0 -0
- package/components/{tryghost-security-5.66.1.tgz → tryghost-security-5.67.0.tgz} +0 -0
- package/components/tryghost-session-service-5.67.0.tgz +0 -0
- package/components/{tryghost-settings-path-manager-5.66.1.tgz → tryghost-settings-path-manager-5.67.0.tgz} +0 -0
- package/components/tryghost-slack-notifications-5.67.0.tgz +0 -0
- package/components/tryghost-staff-service-5.67.0.tgz +0 -0
- package/components/tryghost-stats-service-5.67.0.tgz +0 -0
- package/components/tryghost-tiers-5.67.0.tgz +0 -0
- package/components/{tryghost-update-check-service-5.66.1.tgz → tryghost-update-check-service-5.67.0.tgz} +0 -0
- package/components/tryghost-verification-trigger-5.67.0.tgz +0 -0
- package/components/tryghost-version-notifications-data-service-5.67.0.tgz +0 -0
- package/components/tryghost-webmentions-5.67.0.tgz +0 -0
- package/content/themes/casper/assets/css/screen.css +0 -4
- package/content/themes/source/LICENSE +22 -0
- package/content/themes/source/README.md +65 -0
- package/content/themes/source/assets/built/screen.css +2 -0
- package/content/themes/source/assets/built/screen.css.map +1 -0
- package/content/themes/source/assets/built/source.js +2 -0
- package/content/themes/source/assets/built/source.js.map +1 -0
- package/content/themes/source/assets/css/screen.css +3206 -0
- package/content/themes/source/assets/fonts/eb-garamond-italic.woff2 +0 -0
- package/content/themes/source/assets/fonts/eb-garamond-roman.woff2 +0 -0
- package/content/themes/source/assets/fonts/inter-roman.woff2 +0 -0
- package/content/themes/source/assets/fonts/jetbrains-mono-italic.woff2 +0 -0
- package/content/themes/source/assets/fonts/jetbrains-mono-roman.woff2 +0 -0
- package/content/themes/source/assets/images/default-skin.png +0 -0
- package/content/themes/source/assets/images/default-skin.svg +1 -0
- package/content/themes/source/assets/images/preloader.gif +0 -0
- package/content/themes/source/assets/js/casper.js +46 -0
- package/content/themes/source/assets/js/dropdown.js +86 -0
- package/content/themes/source/assets/js/lib/imagesloaded.pkgd.min.js +7 -0
- package/content/themes/source/assets/js/lib/photoswipe-ui-default.min.js +4 -0
- package/content/themes/source/assets/js/lib/photoswipe.min.js +4 -0
- package/content/themes/source/assets/js/lib/reframe.min.js +1 -0
- package/content/themes/source/assets/js/lightbox.js +103 -0
- package/content/themes/source/assets/js/pagination.js +95 -0
- package/content/themes/source/author.hbs +43 -0
- package/content/themes/source/default.hbs +65 -0
- package/content/themes/source/gulpfile.js +174 -0
- package/content/themes/source/home.hbs +12 -0
- package/content/themes/source/index.hbs +6 -0
- package/content/themes/source/package.json +202 -0
- package/content/themes/source/page.hbs +26 -0
- package/content/themes/source/partials/components/cta.hbs +25 -0
- package/content/themes/source/partials/components/featured.hbs +14 -0
- package/content/themes/source/partials/components/footer.hbs +35 -0
- package/content/themes/source/partials/components/header-content.hbs +81 -0
- package/content/themes/source/partials/components/header.hbs +19 -0
- package/content/themes/source/partials/components/navigation.hbs +53 -0
- package/content/themes/source/partials/components/post-list.hbs +114 -0
- package/content/themes/source/partials/email-subscription.hbs +8 -0
- package/content/themes/source/partials/feature-image.hbs +16 -0
- package/content/themes/source/partials/icons/arrow.hbs +1 -0
- package/content/themes/source/partials/icons/avatar.hbs +1 -0
- package/content/themes/source/partials/icons/burger.hbs +1 -0
- package/content/themes/source/partials/icons/checkmark.hbs +24 -0
- package/content/themes/source/partials/icons/close.hbs +1 -0
- package/content/themes/source/partials/icons/facebook.hbs +1 -0
- package/content/themes/source/partials/icons/fire.hbs +3 -0
- package/content/themes/source/partials/icons/loader.hbs +17 -0
- package/content/themes/source/partials/icons/lock.hbs +5 -0
- package/content/themes/source/partials/icons/rss.hbs +1 -0
- package/content/themes/source/partials/icons/search.hbs +1 -0
- package/content/themes/source/partials/icons/twitter.hbs +1 -0
- package/content/themes/source/partials/lightbox.hbs +41 -0
- package/content/themes/source/partials/post-card.hbs +37 -0
- package/content/themes/source/partials/search-toggle.hbs +3 -0
- package/content/themes/source/post.hbs +76 -0
- package/content/themes/source/tag.hbs +22 -0
- package/core/built/admin/assets/admin-x-settings/{CodeEditorView-b1c6a306.mjs → CodeEditorView-1643e910.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +2 -2
- package/core/built/admin/assets/admin-x-settings/{index-02567620.mjs → index-b4c2ef5b.mjs} +2248 -2187
- package/core/built/admin/assets/admin-x-settings/{limit-service-bf02ec54.mjs → limit-service-c343d244.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/modals-8b0aeacd.mjs +23887 -0
- package/core/built/admin/assets/{chunk.143.6ae91642f45fce60949c.js → chunk.143.da2301d9edb6ad0b5496.js} +5 -5
- package/core/built/admin/assets/{chunk.178.4842a4a973bb574d843b.js → chunk.178.efec05ab07e1e216d657.js} +4 -4
- package/core/built/admin/assets/{chunk.555.ba02d5a0095b4c4a7700.js → chunk.940.b09a2c2049ed9c373dd0.js} +55 -62
- package/core/built/admin/assets/{ghost-b24dd6efffe76ca031de95be6e91b543.js → ghost-193c98abe66483968da753e54917e87a.js} +114 -107
- package/core/built/admin/assets/ghost-9e454659c8c0896ed10336b640d1b1eb.css +1 -0
- package/core/built/admin/assets/ghost-dark-1d24186396fe74946c926faa9faa247b.css +1 -0
- package/core/built/admin/assets/img/themes/Source-Magazine-176385eb99561485ce6385598f7599b0.png +0 -0
- package/core/built/admin/assets/img/themes/Source-Newsletter-bb1a8611a326edb78f9ecb8bc1838c81.png +0 -0
- package/core/built/admin/assets/img/themes/Source-f29c6d6abe774ea7d5940a7431069fce.png +0 -0
- package/core/built/admin/assets/{vendor-5aa07b661eeb443bf7dd2c1de3b3f387.js → vendor-71d23939faaa5d1478ead73d917111b9.js} +48 -40
- package/core/built/admin/index.html +6 -6
- package/core/server/api/endpoints/recommendations.js +2 -1
- package/core/server/data/migrations/versions/5.67/2023-10-03-00-32-32-rollback-source-theme.js +40 -0
- package/core/server/data/schema/default-settings/default-settings.json +1 -1
- package/core/server/services/auth/setup.js +3 -3
- package/core/server/services/recommendations/RecommendationServiceWrapper.js +5 -4
- package/core/server/services/themes/storage.js +7 -7
- package/package.json +154 -154
- package/yarn.lock +221 -255
- package/components/tryghost-adapter-cache-memory-ttl-5.66.1.tgz +0 -0
- package/components/tryghost-adapter-manager-5.66.1.tgz +0 -0
- package/components/tryghost-announcement-bar-settings-5.66.1.tgz +0 -0
- package/components/tryghost-api-framework-5.66.1.tgz +0 -0
- package/components/tryghost-api-version-compatibility-service-5.66.1.tgz +0 -0
- package/components/tryghost-audience-feedback-5.66.1.tgz +0 -0
- package/components/tryghost-bookshelf-repository-5.66.1.tgz +0 -0
- package/components/tryghost-collections-5.66.1.tgz +0 -0
- package/components/tryghost-constants-5.66.1.tgz +0 -0
- package/components/tryghost-domain-events-5.66.1.tgz +0 -0
- package/components/tryghost-donations-5.66.1.tgz +0 -0
- package/components/tryghost-dynamic-routing-events-5.66.1.tgz +0 -0
- package/components/tryghost-email-analytics-provider-mailgun-5.66.1.tgz +0 -0
- package/components/tryghost-email-content-generator-5.66.1.tgz +0 -0
- package/components/tryghost-email-events-5.66.1.tgz +0 -0
- package/components/tryghost-email-suppression-list-5.66.1.tgz +0 -0
- package/components/tryghost-event-aware-cache-wrapper-5.66.1.tgz +0 -0
- package/components/tryghost-express-dynamic-redirects-5.66.1.tgz +0 -0
- package/components/tryghost-external-media-inliner-5.66.1.tgz +0 -0
- package/components/tryghost-extract-api-key-5.66.1.tgz +0 -0
- package/components/tryghost-i18n-5.66.1.tgz +0 -0
- package/components/tryghost-importer-handler-content-files-5.66.1.tgz +0 -0
- package/components/tryghost-importer-revue-5.66.1.tgz +0 -0
- package/components/tryghost-link-replacer-5.66.1.tgz +0 -0
- package/components/tryghost-magic-link-5.66.1.tgz +0 -0
- package/components/tryghost-member-events-5.66.1.tgz +0 -0
- package/components/tryghost-members-importer-5.66.1.tgz +0 -0
- package/components/tryghost-members-payments-5.66.1.tgz +0 -0
- package/components/tryghost-members-ssr-5.66.1.tgz +0 -0
- package/components/tryghost-mentions-email-report-5.66.1.tgz +0 -0
- package/components/tryghost-milestones-5.66.1.tgz +0 -0
- package/components/tryghost-minifier-5.66.1.tgz +0 -0
- package/components/tryghost-model-to-domain-event-interceptor-5.66.1.tgz +0 -0
- package/components/tryghost-mw-api-version-mismatch-5.66.1.tgz +0 -0
- package/components/tryghost-mw-cache-control-5.66.1.tgz +0 -0
- package/components/tryghost-mw-session-from-token-5.66.1.tgz +0 -0
- package/components/tryghost-mw-update-user-last-seen-5.66.1.tgz +0 -0
- package/components/tryghost-mw-version-match-5.66.1.tgz +0 -0
- package/components/tryghost-mw-vhost-5.66.1.tgz +0 -0
- package/components/tryghost-nql-filter-expansions-5.66.1.tgz +0 -0
- package/components/tryghost-oembed-service-5.66.1.tgz +0 -0
- package/components/tryghost-package-json-5.66.1.tgz +0 -0
- package/components/tryghost-post-revisions-5.66.1.tgz +0 -0
- package/components/tryghost-posts-service-5.66.1.tgz +0 -0
- package/components/tryghost-recommendations-5.66.1.tgz +0 -0
- package/components/tryghost-referrers-5.66.1.tgz +0 -0
- package/components/tryghost-session-service-5.66.1.tgz +0 -0
- package/components/tryghost-slack-notifications-5.66.1.tgz +0 -0
- package/components/tryghost-staff-service-5.66.1.tgz +0 -0
- package/components/tryghost-stats-service-5.66.1.tgz +0 -0
- package/components/tryghost-tiers-5.66.1.tgz +0 -0
- package/components/tryghost-verification-trigger-5.66.1.tgz +0 -0
- package/components/tryghost-version-notifications-data-service-5.66.1.tgz +0 -0
- package/components/tryghost-webmentions-5.66.1.tgz +0 -0
- package/core/built/admin/assets/admin-x-settings/modals-d2fd552b.mjs +0 -11622
- package/core/built/admin/assets/ghost-dark-54c925ac8f527d36132c18af7bef116e.css +0 -1
- package/core/built/admin/assets/ghost-f1a535bfec933b08a7a45f607cc245b1.css +0 -1
- /package/core/built/admin/assets/{chunk.555.ba02d5a0095b4c4a7700.js.LICENSE.txt → chunk.940.b09a2c2049ed9c373dd0.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
const {series, watch, src, dest, parallel} = require('gulp');
|
|
2
|
+
const pump = require('pump');
|
|
3
|
+
const path = require('path');
|
|
4
|
+
const releaseUtils = require('@tryghost/release-utils');
|
|
5
|
+
const inquirer = require('inquirer');
|
|
6
|
+
|
|
7
|
+
// gulp plugins and utils
|
|
8
|
+
const livereload = require('gulp-livereload');
|
|
9
|
+
const postcss = require('gulp-postcss');
|
|
10
|
+
const zip = require('gulp-zip');
|
|
11
|
+
const concat = require('gulp-concat');
|
|
12
|
+
const uglify = require('gulp-uglify');
|
|
13
|
+
const beeper = require('beeper');
|
|
14
|
+
const fs = require('fs');
|
|
15
|
+
|
|
16
|
+
// postcss plugins
|
|
17
|
+
const autoprefixer = require('autoprefixer');
|
|
18
|
+
const cssnano = require('cssnano');
|
|
19
|
+
const easyimport = require('postcss-easy-import');
|
|
20
|
+
|
|
21
|
+
const REPO = 'TryGhost/Source';
|
|
22
|
+
const REPO_READONLY = 'TryGhost/Source';
|
|
23
|
+
const CHANGELOG_PATH = path.join(process.cwd(), '.', 'changelog.md');
|
|
24
|
+
|
|
25
|
+
function serve(done) {
|
|
26
|
+
livereload.listen();
|
|
27
|
+
done();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const handleError = (done) => {
|
|
31
|
+
return function (err) {
|
|
32
|
+
if (err) {
|
|
33
|
+
beeper();
|
|
34
|
+
}
|
|
35
|
+
return done(err);
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
function hbs(done) {
|
|
40
|
+
pump([
|
|
41
|
+
src(['*.hbs', 'partials/**/*.hbs']),
|
|
42
|
+
livereload()
|
|
43
|
+
], handleError(done));
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function css(done) {
|
|
47
|
+
pump([
|
|
48
|
+
src('assets/css/screen.css', {sourcemaps: true}),
|
|
49
|
+
postcss([
|
|
50
|
+
easyimport,
|
|
51
|
+
autoprefixer(),
|
|
52
|
+
cssnano()
|
|
53
|
+
]),
|
|
54
|
+
dest('assets/built/', {sourcemaps: '.'}),
|
|
55
|
+
livereload()
|
|
56
|
+
], handleError(done));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function js(done) {
|
|
60
|
+
pump([
|
|
61
|
+
src([
|
|
62
|
+
// pull in lib files first so our own code can depend on it
|
|
63
|
+
'assets/js/lib/*.js',
|
|
64
|
+
'assets/js/*.js'
|
|
65
|
+
], {sourcemaps: true}),
|
|
66
|
+
concat('source.js'),
|
|
67
|
+
uglify(),
|
|
68
|
+
dest('assets/built/', {sourcemaps: '.'}),
|
|
69
|
+
livereload()
|
|
70
|
+
], handleError(done));
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function zipper(done) {
|
|
74
|
+
const filename = require('./package.json').name + '.zip';
|
|
75
|
+
|
|
76
|
+
pump([
|
|
77
|
+
src([
|
|
78
|
+
'**',
|
|
79
|
+
'!node_modules', '!node_modules/**',
|
|
80
|
+
'!dist', '!dist/**',
|
|
81
|
+
'!yarn-error.log',
|
|
82
|
+
'!yarn.lock',
|
|
83
|
+
'!gulpfile.js'
|
|
84
|
+
]),
|
|
85
|
+
zip(filename),
|
|
86
|
+
dest('dist/')
|
|
87
|
+
], handleError(done));
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const cssWatcher = () => watch('assets/css/**', css);
|
|
91
|
+
const jsWatcher = () => watch('assets/js/**', js);
|
|
92
|
+
const hbsWatcher = () => watch(['*.hbs', 'partials/**/*.hbs'], hbs);
|
|
93
|
+
const watcher = parallel(cssWatcher, jsWatcher, hbsWatcher);
|
|
94
|
+
const build = series(css, js);
|
|
95
|
+
|
|
96
|
+
exports.build = build;
|
|
97
|
+
exports.zip = series(build, zipper);
|
|
98
|
+
exports.default = series(build, serve, watcher);
|
|
99
|
+
|
|
100
|
+
exports.release = async () => {
|
|
101
|
+
// @NOTE: https://yarnpkg.com/lang/en/docs/cli/version/
|
|
102
|
+
// require(./package.json) can run into caching issues, this re-reads from file everytime on release
|
|
103
|
+
let packageJSON = JSON.parse(fs.readFileSync('./package.json'));
|
|
104
|
+
const newVersion = packageJSON.version;
|
|
105
|
+
|
|
106
|
+
if (!newVersion || newVersion === '') {
|
|
107
|
+
console.log(`Invalid version: ${newVersion}`);
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
console.log(`\nCreating release for ${newVersion}...`);
|
|
112
|
+
|
|
113
|
+
const githubToken = process.env.GST_TOKEN;
|
|
114
|
+
|
|
115
|
+
if (!githubToken) {
|
|
116
|
+
console.log('Please configure your environment with a GitHub token located in GST_TOKEN');
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
try {
|
|
121
|
+
const result = await inquirer.prompt([{
|
|
122
|
+
type: 'input',
|
|
123
|
+
name: 'compatibleWithGhost',
|
|
124
|
+
message: 'Which version of Ghost is it compatible with?',
|
|
125
|
+
default: '5.0.0'
|
|
126
|
+
}]);
|
|
127
|
+
|
|
128
|
+
const compatibleWithGhost = result.compatibleWithGhost;
|
|
129
|
+
|
|
130
|
+
const releasesResponse = await releaseUtils.releases.get({
|
|
131
|
+
userAgent: 'Source',
|
|
132
|
+
uri: `https://api.github.com/repos/${REPO_READONLY}/releases`
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
if (!releasesResponse || !releasesResponse) {
|
|
136
|
+
console.log('No releases found. Skipping...');
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
let previousVersion = releasesResponse[0].tag_name || releasesResponse[0].name;
|
|
141
|
+
console.log(`Previous version: ${previousVersion}`);
|
|
142
|
+
|
|
143
|
+
const changelog = new releaseUtils.Changelog({
|
|
144
|
+
changelogPath: CHANGELOG_PATH,
|
|
145
|
+
folder: path.join(process.cwd(), '.')
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
changelog
|
|
149
|
+
.write({
|
|
150
|
+
githubRepoPath: `https://github.com/${REPO}`,
|
|
151
|
+
lastVersion: previousVersion
|
|
152
|
+
})
|
|
153
|
+
.sort()
|
|
154
|
+
.clean();
|
|
155
|
+
|
|
156
|
+
const newReleaseResponse = await releaseUtils.releases.create({
|
|
157
|
+
draft: true,
|
|
158
|
+
preRelease: false,
|
|
159
|
+
tagName: 'v' + newVersion,
|
|
160
|
+
releaseName: newVersion,
|
|
161
|
+
userAgent: 'Source',
|
|
162
|
+
uri: `https://api.github.com/repos/${REPO}/releases`,
|
|
163
|
+
github: {
|
|
164
|
+
token: githubToken
|
|
165
|
+
},
|
|
166
|
+
content: [`**Compatible with Ghost ≥ ${compatibleWithGhost}**\n\n`],
|
|
167
|
+
changelogPath: CHANGELOG_PATH
|
|
168
|
+
});
|
|
169
|
+
console.log(`\nRelease draft generated: ${newReleaseResponse.releaseUrl}\n`);
|
|
170
|
+
} catch (err) {
|
|
171
|
+
console.error(err);
|
|
172
|
+
process.exit(1);
|
|
173
|
+
}
|
|
174
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{{!< default}}
|
|
2
|
+
{{!-- The tag above means: insert everything in this file into the body of the default.hbs template --}}
|
|
3
|
+
|
|
4
|
+
{{> "components/header" headerStyle=@custom.header_style}}
|
|
5
|
+
|
|
6
|
+
{{#match @custom.header_style "!=" "Highlight"}}
|
|
7
|
+
{{> "components/featured" showFeatured=@custom.show_featured_posts limit=4}}
|
|
8
|
+
{{/match}}
|
|
9
|
+
|
|
10
|
+
{{> "components/cta"}}
|
|
11
|
+
|
|
12
|
+
{{> "components/post-list" feed="home" postFeedStyle=@custom.post_feed_style showTitle=true showSidebar=@custom.show_publication_info_sidebar}}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{{!< default}}
|
|
2
|
+
{{!-- The tag above means: insert everything in this file into the body of the default.hbs template --}}
|
|
3
|
+
|
|
4
|
+
<main class="gh-main">
|
|
5
|
+
{{> "components/post-list" feed="index" postFeedStyle=@custom.post_feed_style showTitle=true showSidebar=@custom.show_publication_info_sidebar}}
|
|
6
|
+
</main>
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "source",
|
|
3
|
+
"description": "A default theme for the Ghost publishing platform",
|
|
4
|
+
"demo": "https://source.ghost.io",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"engines": {
|
|
7
|
+
"ghost": ">=5.0.0"
|
|
8
|
+
},
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"scripts": {
|
|
11
|
+
"dev": "gulp",
|
|
12
|
+
"zip": "gulp zip",
|
|
13
|
+
"test": "gscan .",
|
|
14
|
+
"test:ci": "gscan --fatal --verbose .",
|
|
15
|
+
"pretest": "gulp build",
|
|
16
|
+
"preship": "yarn test",
|
|
17
|
+
"ship": "STATUS=$(git status --porcelain); echo $STATUS; if [ -z \"$STATUS\" ]; then yarn version && git push --follow-tags; else echo \"Uncomitted changes found.\" && exit 1; fi",
|
|
18
|
+
"postship": "git fetch && gulp release"
|
|
19
|
+
},
|
|
20
|
+
"author": {
|
|
21
|
+
"name": "Ghost Foundation",
|
|
22
|
+
"email": "hello@ghost.org",
|
|
23
|
+
"url": "https://ghost.org/"
|
|
24
|
+
},
|
|
25
|
+
"gpm": {
|
|
26
|
+
"type": "theme",
|
|
27
|
+
"categories": [
|
|
28
|
+
"Minimal",
|
|
29
|
+
"Magazine"
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
"keywords": [
|
|
33
|
+
"ghost",
|
|
34
|
+
"theme",
|
|
35
|
+
"ghost-theme"
|
|
36
|
+
],
|
|
37
|
+
"repository": {
|
|
38
|
+
"type": "git",
|
|
39
|
+
"url": "https://github.com/TryGhost/Source.git"
|
|
40
|
+
},
|
|
41
|
+
"bugs": "https://github.com/TryGhost/Source/issues",
|
|
42
|
+
"contributors": "https://github.com/TryGhost/Source/graphs/contributors",
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"@tryghost/release-utils": "0.8.1",
|
|
45
|
+
"autoprefixer": "10.4.7",
|
|
46
|
+
"beeper": "2.1.0",
|
|
47
|
+
"cssnano": "5.1.12",
|
|
48
|
+
"gscan": "4.39.4",
|
|
49
|
+
"gulp": "4.0.2",
|
|
50
|
+
"gulp-concat": "2.6.1",
|
|
51
|
+
"gulp-livereload": "4.0.2",
|
|
52
|
+
"gulp-postcss": "9.0.1",
|
|
53
|
+
"gulp-uglify": "3.0.2",
|
|
54
|
+
"gulp-zip": "5.1.0",
|
|
55
|
+
"inquirer": "8.2.4",
|
|
56
|
+
"postcss": "8.2.13",
|
|
57
|
+
"postcss-easy-import": "4.0.0",
|
|
58
|
+
"pump": "3.0.0"
|
|
59
|
+
},
|
|
60
|
+
"browserslist": [
|
|
61
|
+
"defaults"
|
|
62
|
+
],
|
|
63
|
+
"config": {
|
|
64
|
+
"posts_per_page": 16,
|
|
65
|
+
"image_sizes": {
|
|
66
|
+
"xs": {
|
|
67
|
+
"width": 160
|
|
68
|
+
},
|
|
69
|
+
"s": {
|
|
70
|
+
"width": 320
|
|
71
|
+
},
|
|
72
|
+
"m": {
|
|
73
|
+
"width": 600
|
|
74
|
+
},
|
|
75
|
+
"l": {
|
|
76
|
+
"width": 960
|
|
77
|
+
},
|
|
78
|
+
"xl": {
|
|
79
|
+
"width": 1200
|
|
80
|
+
},
|
|
81
|
+
"xxl": {
|
|
82
|
+
"width": 2000
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"card_assets": true,
|
|
86
|
+
"custom": {
|
|
87
|
+
"navigation_layout": {
|
|
88
|
+
"type": "select",
|
|
89
|
+
"options": [
|
|
90
|
+
"Logo in the middle",
|
|
91
|
+
"Logo on the left",
|
|
92
|
+
"Stacked"
|
|
93
|
+
],
|
|
94
|
+
"default": "Logo in the middle"
|
|
95
|
+
},
|
|
96
|
+
"site_background_color": {
|
|
97
|
+
"type": "color",
|
|
98
|
+
"default": "#ffffff"
|
|
99
|
+
},
|
|
100
|
+
"header_and_footer_color": {
|
|
101
|
+
"type": "select",
|
|
102
|
+
"options": [
|
|
103
|
+
"Background color",
|
|
104
|
+
"Accent color"
|
|
105
|
+
],
|
|
106
|
+
"default": "Background color"
|
|
107
|
+
},
|
|
108
|
+
"title_font": {
|
|
109
|
+
"type": "select",
|
|
110
|
+
"options": [
|
|
111
|
+
"Modern sans-serif",
|
|
112
|
+
"Elegant serif",
|
|
113
|
+
"Consistent mono"
|
|
114
|
+
],
|
|
115
|
+
"default": "Modern sans-serif"
|
|
116
|
+
},
|
|
117
|
+
"body_font": {
|
|
118
|
+
"type": "select",
|
|
119
|
+
"options": [
|
|
120
|
+
"Modern sans-serif",
|
|
121
|
+
"Elegant serif"
|
|
122
|
+
],
|
|
123
|
+
"default": "Modern sans-serif"
|
|
124
|
+
},
|
|
125
|
+
"signup_heading": {
|
|
126
|
+
"type": "text",
|
|
127
|
+
"description": "Used in your footer across your theme, defaults to site title when empty"
|
|
128
|
+
},
|
|
129
|
+
"signup_subheading": {
|
|
130
|
+
"type": "text",
|
|
131
|
+
"description": "Defaults to site description when empty"
|
|
132
|
+
},
|
|
133
|
+
"header_style": {
|
|
134
|
+
"type": "select",
|
|
135
|
+
"options": [
|
|
136
|
+
"Landing",
|
|
137
|
+
"Highlight",
|
|
138
|
+
"Magazine",
|
|
139
|
+
"Search",
|
|
140
|
+
"Off"
|
|
141
|
+
],
|
|
142
|
+
"description": "Landing is recommended for all sites, Highlight & Magazine for those with more content",
|
|
143
|
+
"default": "Landing",
|
|
144
|
+
"group": "homepage"
|
|
145
|
+
},
|
|
146
|
+
"header_text": {
|
|
147
|
+
"type": "text",
|
|
148
|
+
"group": "homepage",
|
|
149
|
+
"description": "Defaults to site description when empty",
|
|
150
|
+
"visibility": "header_style:[Landing, Search]"
|
|
151
|
+
},
|
|
152
|
+
"background_image": {
|
|
153
|
+
"type": "boolean",
|
|
154
|
+
"default": true,
|
|
155
|
+
"description": "Use the publication cover set on the Brand tab as your background",
|
|
156
|
+
"group": "homepage",
|
|
157
|
+
"visibility": "header_style:[Landing, Search]"
|
|
158
|
+
},
|
|
159
|
+
"show_featured_posts": {
|
|
160
|
+
"type": "boolean",
|
|
161
|
+
"default": false,
|
|
162
|
+
"group": "homepage",
|
|
163
|
+
"visibility": "header_style:[Highlight, Magazine]"
|
|
164
|
+
},
|
|
165
|
+
"post_feed_style": {
|
|
166
|
+
"type": "select",
|
|
167
|
+
"options": [
|
|
168
|
+
"List",
|
|
169
|
+
"Grid"
|
|
170
|
+
],
|
|
171
|
+
"default": "List",
|
|
172
|
+
"group": "homepage"
|
|
173
|
+
},
|
|
174
|
+
"show_images_in_feed": {
|
|
175
|
+
"type": "boolean",
|
|
176
|
+
"default": true,
|
|
177
|
+
"group": "homepage",
|
|
178
|
+
"visibility": "post_feed_style:List"
|
|
179
|
+
},
|
|
180
|
+
"show_author": {
|
|
181
|
+
"type": "boolean",
|
|
182
|
+
"default": true,
|
|
183
|
+
"group": "homepage"
|
|
184
|
+
},
|
|
185
|
+
"show_publish_date": {
|
|
186
|
+
"type": "boolean",
|
|
187
|
+
"default": true,
|
|
188
|
+
"group": "homepage"
|
|
189
|
+
},
|
|
190
|
+
"show_publication_info_sidebar": {
|
|
191
|
+
"type": "boolean",
|
|
192
|
+
"default": false,
|
|
193
|
+
"group": "homepage"
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
"renovate": {
|
|
198
|
+
"extends": [
|
|
199
|
+
"@tryghost:theme"
|
|
200
|
+
]
|
|
201
|
+
}
|
|
202
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{{!< default}}
|
|
2
|
+
{{!-- The tag above means: insert everything in this file into the body of the default.hbs template --}}
|
|
3
|
+
|
|
4
|
+
{{#post}}
|
|
5
|
+
|
|
6
|
+
<main class="gh-main">
|
|
7
|
+
<article class="gh-article {{post_class}}">
|
|
8
|
+
|
|
9
|
+
{{#match @page.show_title_and_feature_image}}
|
|
10
|
+
<header class="gh-article-header gh-canvas">
|
|
11
|
+
<h1 class="gh-article-title is-title">{{title}}</h1>
|
|
12
|
+
{{#if custom_excerpt}}
|
|
13
|
+
<p class="gh-article-excerpt is-body">{{custom_excerpt}}</p>
|
|
14
|
+
{{/if}}
|
|
15
|
+
{{> "feature-image"}}
|
|
16
|
+
</header>
|
|
17
|
+
{{/match}}
|
|
18
|
+
|
|
19
|
+
<section class="gh-content gh-canvas is-body">
|
|
20
|
+
{{content}}
|
|
21
|
+
</section>
|
|
22
|
+
|
|
23
|
+
</article>
|
|
24
|
+
</main>
|
|
25
|
+
|
|
26
|
+
{{/post}}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{{#if @site.members_enabled}}
|
|
2
|
+
{{#unless @member}}
|
|
3
|
+
{{#match @custom.header_style "!=" "Landing"}}
|
|
4
|
+
{{#match @custom.header_style "!=" "Search"}}
|
|
5
|
+
{{#match @custom.header_style "!=" "Off"}}
|
|
6
|
+
{{#match posts.length ">=" 7}}
|
|
7
|
+
<section class="gh-cta gh-outer">
|
|
8
|
+
<div class="gh-cta-inner gh-inner">
|
|
9
|
+
<div class="gh-cta-content">
|
|
10
|
+
<h2 class="gh-cta-title is-title">
|
|
11
|
+
{{#if @custom.signup_heading}}{{@custom.signup_heading}}{{else}}{{@site.title}}{{/if}}
|
|
12
|
+
</h2>
|
|
13
|
+
<p class="gh-cta-description is-body">
|
|
14
|
+
{{#if @custom.signup_subheading}}{{@custom.signup_subheading}}{{else}}{{@site.description}}{{/if}}
|
|
15
|
+
</p>
|
|
16
|
+
</div>
|
|
17
|
+
{{> "email-subscription"}}
|
|
18
|
+
</div>
|
|
19
|
+
</section>
|
|
20
|
+
{{/match}}
|
|
21
|
+
{{/match}}
|
|
22
|
+
{{/match}}
|
|
23
|
+
{{/match}}
|
|
24
|
+
{{/unless}}
|
|
25
|
+
{{/if}}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{{#if showFeatured}}
|
|
2
|
+
{{#get "posts" filter="featured:true" include="authors" limit=limit as |featured|}}
|
|
3
|
+
<section class="gh-featured gh-outer">
|
|
4
|
+
<div class="gh-featured-inner gh-inner">
|
|
5
|
+
<h2 class="gh-featured-title">Featured</h2>
|
|
6
|
+
<div class="gh-featured-feed">
|
|
7
|
+
{{#foreach featured}}
|
|
8
|
+
{{> "post-card" imageSizes="80px"}}
|
|
9
|
+
{{/foreach}}
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
12
|
+
</section>
|
|
13
|
+
{{/get}}
|
|
14
|
+
{{/if}}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<footer class="gh-footer{{#match @custom.header_and_footer_color "Accent color"}} has-accent-color{{/match}} gh-outer">
|
|
2
|
+
<div class="gh-footer-inner gh-inner">
|
|
3
|
+
|
|
4
|
+
<div class="gh-footer-bar">
|
|
5
|
+
<span class="gh-footer-logo is-title">
|
|
6
|
+
{{#if @site.logo}}
|
|
7
|
+
<img src="{{@site.logo}}" alt="{{@site.title}}">
|
|
8
|
+
{{else}}
|
|
9
|
+
{{@site.title}}
|
|
10
|
+
{{/if}}
|
|
11
|
+
</span>
|
|
12
|
+
<nav class="gh-footer-menu">
|
|
13
|
+
{{navigation type="secondary"}}
|
|
14
|
+
</nav>
|
|
15
|
+
<div class="gh-footer-copyright">
|
|
16
|
+
Powered by <a href="https://ghost.org/" target="_blank" rel="noopener">Ghost</a>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
|
|
20
|
+
{{#if @site.members_enabled}}
|
|
21
|
+
{{#unless @member}}
|
|
22
|
+
<section class="gh-footer-signup">
|
|
23
|
+
<h2 class="gh-footer-signup-header is-title">
|
|
24
|
+
{{#if @custom.signup_heading}}{{@custom.signup_heading}}{{else}}{{@site.title}}{{/if}}
|
|
25
|
+
</h2>
|
|
26
|
+
<p class="gh-footer-signup-subhead is-body">
|
|
27
|
+
{{#if @custom.signup_subheading}}{{@custom.signup_subheading}}{{else}}{{@site.description}}{{/if}}
|
|
28
|
+
</p>
|
|
29
|
+
{{> "email-subscription"}}
|
|
30
|
+
</section>
|
|
31
|
+
{{/unless}}
|
|
32
|
+
{{/if}}
|
|
33
|
+
|
|
34
|
+
</div>
|
|
35
|
+
</footer>
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
<section class="gh-header is-{{#match headerStyle "Magazine"}}magazine{{else match headerStyle "Highlight"}}highlight{{else}}classic{{/match}}{{#if @custom.background_image}}{{#if @site.cover_image}} has-image{{/if}}{{/if}} gh-outer">
|
|
2
|
+
|
|
3
|
+
{{!-- Background image --}}
|
|
4
|
+
{{#if @custom.background_image}}
|
|
5
|
+
{{#match headerStyle "!=" "Magazine"}}
|
|
6
|
+
{{#match headerStyle "!=" "Highlight"}}
|
|
7
|
+
{{#if @site.cover_image}}
|
|
8
|
+
<img class="gh-header-image" src="{{@site.cover_image}}" alt="{{@site.title}}">
|
|
9
|
+
{{/if}}
|
|
10
|
+
{{/match}}
|
|
11
|
+
{{/match}}
|
|
12
|
+
{{/if}}
|
|
13
|
+
|
|
14
|
+
<div class="gh-header-inner gh-inner">
|
|
15
|
+
|
|
16
|
+
{{!-- Highlight layout --}}
|
|
17
|
+
{{#match headerStyle "Highlight"}}
|
|
18
|
+
<div class="gh-header-left">
|
|
19
|
+
{{#foreach posts limit="1"}}
|
|
20
|
+
{{> "post-card" imageSizes="(max-width: 767px) calc(100vw - max(8vmin, 40px)), 640px"}}
|
|
21
|
+
{{/foreach}}
|
|
22
|
+
</div>
|
|
23
|
+
<div class="gh-header-middle">
|
|
24
|
+
{{#foreach posts from="2" limit="3"}}
|
|
25
|
+
{{> "post-card"}}
|
|
26
|
+
{{/foreach}}
|
|
27
|
+
</div>
|
|
28
|
+
<div class="gh-header-right">
|
|
29
|
+
{{#if @custom.show_featured_posts}}
|
|
30
|
+
{{> "components/featured" showFeatured=@custom.show_featured_posts limit=6}}
|
|
31
|
+
{{else}}
|
|
32
|
+
<div class="gh-featured-feed">
|
|
33
|
+
{{#foreach posts from="5" limit="6"}}
|
|
34
|
+
{{> "post-card" imageSizes="80px"}}
|
|
35
|
+
{{/foreach}}
|
|
36
|
+
</div>
|
|
37
|
+
{{/if}}
|
|
38
|
+
</div>
|
|
39
|
+
{{/match}}
|
|
40
|
+
|
|
41
|
+
{{!-- Magazine layout --}}
|
|
42
|
+
{{#match headerStyle "Magazine"}}
|
|
43
|
+
{{#foreach posts limit="7"}}
|
|
44
|
+
{{#match @number 2}}
|
|
45
|
+
<div class="gh-header-left">
|
|
46
|
+
{{/match}}
|
|
47
|
+
{{#match @number 5}}
|
|
48
|
+
<div class="gh-header-right">
|
|
49
|
+
{{/match}}
|
|
50
|
+
{{#if @first}}
|
|
51
|
+
{{> "post-card" imageSizes="640px"}}
|
|
52
|
+
{{else}}
|
|
53
|
+
{{> "post-card"}}
|
|
54
|
+
{{/if}}
|
|
55
|
+
{{#match @number 4}}
|
|
56
|
+
</div>
|
|
57
|
+
{{/match}}
|
|
58
|
+
{{#match @number 7}}
|
|
59
|
+
</div>
|
|
60
|
+
{{/match}}
|
|
61
|
+
{{/foreach}}
|
|
62
|
+
{{/match}}
|
|
63
|
+
|
|
64
|
+
{{!-- Landing layout --}}
|
|
65
|
+
{{#match headerStyle "Landing"}}
|
|
66
|
+
<h1 class="gh-header-title is-title">{{#if @custom.header_text}}{{@custom.header_text}}{{else}}{{@site.description}}{{/if}}</h1>
|
|
67
|
+
{{> "email-subscription"}}
|
|
68
|
+
{{/match}}
|
|
69
|
+
|
|
70
|
+
{{!-- Search layout --}}
|
|
71
|
+
{{#match headerStyle "Search"}}
|
|
72
|
+
<h1 class="gh-header-title is-title">{{#if @custom.header_text}}{{@custom.header_text}}{{else}}{{@site.description}}{{/if}}</h1>
|
|
73
|
+
<form class="gh-form">
|
|
74
|
+
{{> "icons/search"}}
|
|
75
|
+
<button class="gh-form-input" data-ghost-search>Search posts, tags and authors</button>
|
|
76
|
+
</form>
|
|
77
|
+
{{/match}}
|
|
78
|
+
|
|
79
|
+
</div>
|
|
80
|
+
|
|
81
|
+
</section>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{{#match headerStyle "!=" "Off"}}
|
|
2
|
+
|
|
3
|
+
{{#match headerStyle "Highlight"}}
|
|
4
|
+
{{> "components/header-content"}}
|
|
5
|
+
{{else match headerStyle "Magazine"}}
|
|
6
|
+
{{> "components/header-content"}}
|
|
7
|
+
{{else}}
|
|
8
|
+
{{#match headerStyle "Landing"}}
|
|
9
|
+
{{#if @site.members_enabled}}
|
|
10
|
+
{{#unless @member}}
|
|
11
|
+
{{> "components/header-content"}}
|
|
12
|
+
{{/unless}}
|
|
13
|
+
{{/if}}
|
|
14
|
+
{{else}}
|
|
15
|
+
{{> "components/header-content"}}
|
|
16
|
+
{{/match}}
|
|
17
|
+
{{/match}}
|
|
18
|
+
|
|
19
|
+
{{/match}}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<header id="gh-navigation" class="gh-navigation is-{{#match navigationLayout "Logo on the left"}}left-logo{{else match navigationLayout "Stacked"}}stacked{{else}}middle-logo{{/match}}{{#match @custom.header_and_footer_color "Accent color"}} has-accent-color{{/match}} gh-outer">
|
|
2
|
+
<div class="gh-navigation-inner gh-inner">
|
|
3
|
+
|
|
4
|
+
<div class="gh-navigation-brand">
|
|
5
|
+
<a class="gh-navigation-logo is-title" href="{{@site.url}}">
|
|
6
|
+
{{#if @site.logo}}
|
|
7
|
+
<img src="{{@site.logo}}" alt="{{@site.title}}">
|
|
8
|
+
{{else}}
|
|
9
|
+
{{@site.title}}
|
|
10
|
+
{{/if}}
|
|
11
|
+
</a>
|
|
12
|
+
{{> "search-toggle"}}
|
|
13
|
+
<button class="gh-burger gh-icon-button">
|
|
14
|
+
{{> "icons/burger"}}
|
|
15
|
+
{{> "icons/close"}}
|
|
16
|
+
</button>
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
<nav class="gh-navigation-menu">
|
|
20
|
+
{{navigation}}
|
|
21
|
+
{{#unless @site.members_enabled}}
|
|
22
|
+
{{#match navigationLayout "Stacked"}}
|
|
23
|
+
{{> "search-toggle"}}
|
|
24
|
+
{{/match}}
|
|
25
|
+
{{/unless}}
|
|
26
|
+
</nav>
|
|
27
|
+
|
|
28
|
+
<div class="gh-navigation-actions">
|
|
29
|
+
{{#unless @site.members_enabled}}
|
|
30
|
+
{{^match navigationLayout "Stacked"}}
|
|
31
|
+
{{> "search-toggle"}}
|
|
32
|
+
{{/match}}
|
|
33
|
+
{{else}}
|
|
34
|
+
{{> "search-toggle"}}
|
|
35
|
+
<div class="gh-navigation-members">
|
|
36
|
+
{{#unless @member}}
|
|
37
|
+
{{#unless @site.members_invite_only}}
|
|
38
|
+
<a href="#/portal/signin" data-portal="signin">Sign in</a>
|
|
39
|
+
{{#unless hideSubscribeButton}}
|
|
40
|
+
<a class="gh-button" href="#/portal/signup" data-portal="signup">Subscribe</a>
|
|
41
|
+
{{/unless}}
|
|
42
|
+
{{else}}
|
|
43
|
+
<a class="gh-button" href="#/portal/signin" data-portal="signin">Sign in</a>
|
|
44
|
+
{{/unless}}
|
|
45
|
+
{{else}}
|
|
46
|
+
<a class="gh-button" href="#/portal/account" data-portal="account">Account</a>
|
|
47
|
+
{{/unless}}
|
|
48
|
+
</div>
|
|
49
|
+
{{/unless}}
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
</div>
|
|
53
|
+
</header>
|