ghost 4.20.2 → 4.22.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/.eslintrc.js +1 -1
- package/Gruntfile.js +1 -0
- package/content/themes/casper/assets/built/screen.css +1 -1
- package/content/themes/casper/assets/built/screen.css.map +1 -1
- package/content/themes/casper/assets/css/screen.css +263 -50
- package/content/themes/casper/default.hbs +12 -3
- package/content/themes/casper/index.hbs +25 -23
- package/content/themes/casper/package.json +91 -2
- package/content/themes/casper/partials/post-card.hbs +1 -1
- package/content/themes/casper/post.hbs +18 -14
- package/content/themes/casper/yarn.lock +245 -192
- package/core/boot.js +5 -0
- package/core/bridge.js +14 -0
- package/core/built/assets/{chunk.3.777d43e2ce954ba8b2f5.js → chunk.3.1148677ff3b78e5aeaee.js} +60 -60
- package/core/built/assets/{ghost-dark-20e2892d4f30d0d1183c9ac725ea37d0.css → ghost-dark-684ad238e1a858c7cb5be6988de7c6f5.css} +1 -1
- package/core/built/assets/{ghost.min-57e46fd3b1145ecf2cbd185a13611f3b.css → ghost.min-66e08535f8bb797a8c40e0a2b31f1e9e.css} +1 -1
- package/core/built/assets/{ghost.min-07b6a50c54b3e2e190332c28c7255d2f.js → ghost.min-efbfb823467b66f4acc66537d033aa55.js} +1770 -1906
- package/core/built/assets/{vendor.min-af502ac4142871500fc424f6a5a254ec.js → vendor.min-7c8fdd90f7ecd2e94328a07ea3b64608.js} +985 -956
- package/core/frontend/apps/amp/lib/helpers/amp_content.js +16 -4
- package/core/frontend/helpers/asset.js +9 -1
- package/core/frontend/helpers/ghost_head.js +13 -1
- package/core/frontend/meta/title.js +15 -5
- package/core/frontend/services/card-assets/index.js +16 -0
- package/core/frontend/services/card-assets/service.js +101 -0
- package/core/frontend/services/routing/router-manager.js +5 -3
- package/core/frontend/services/theme-engine/config/defaults.json +4 -1
- package/core/frontend/services/theme-engine/config/index.js +1 -1
- package/core/frontend/src/cards/css/bookmark.css +83 -0
- package/core/frontend/src/cards/css/gallery.css +36 -0
- package/core/frontend/src/cards/js/gallery.js +8 -0
- package/core/frontend/web/middleware/serve-public-file.js +10 -1
- package/core/frontend/web/site.js +10 -9
- package/core/server/adapters/storage/LocalImagesStorage.js +50 -0
- package/core/server/adapters/storage/LocalMediaStorage.js +23 -0
- package/core/server/adapters/storage/{LocalFileStorage.js → LocalStorageBase.js} +36 -48
- package/core/server/adapters/storage/index.js +1 -1
- package/core/server/adapters/storage/utils.js +2 -2
- package/core/server/api/canary/index.js +4 -0
- package/core/server/api/canary/media.js +22 -0
- package/core/server/api/canary/members.js +6 -103
- package/core/server/api/canary/membersStripeConnect.js +0 -10
- package/core/server/api/canary/redirects.js +1 -6
- package/core/server/api/canary/utils/serializers/input/pages.js +8 -0
- package/core/server/api/canary/utils/serializers/output/images.js +4 -0
- package/core/server/api/canary/utils/serializers/output/index.js +4 -0
- package/core/server/api/canary/utils/serializers/output/media.js +28 -0
- package/core/server/api/canary/utils/validators/input/index.js +4 -0
- package/core/server/api/canary/utils/validators/input/media.js +7 -0
- package/core/server/api/v2/redirects.js +1 -6
- package/core/server/api/v2/utils/serializers/output/images.js +4 -0
- package/core/server/api/v3/members.js +5 -1
- package/core/server/api/v3/redirects.js +1 -6
- package/core/server/api/v3/utils/serializers/output/images.js +4 -0
- package/core/server/data/migrations/utils.js +55 -16
- package/core/server/data/migrations/versions/4.22/01-add-is-launch-complete-setting.js +8 -0
- package/core/server/data/migrations/versions/4.22/02-update-launch-complete-setting-from-user-data.js +39 -0
- package/core/server/data/schema/default-settings.json +8 -0
- package/core/server/frontend/ghost.min.css +1 -1
- package/core/server/lib/image/blog-icon.js +2 -4
- package/core/server/lib/image/image-size.js +1 -1
- package/core/server/services/limits.js +3 -6
- package/core/server/services/mega/template.js +4 -0
- package/core/server/services/members/api.js +1 -1
- package/core/server/services/members/emails/signup.js +2 -2
- package/core/server/services/members/stripe-connect.js +14 -0
- package/core/server/services/offers/service.js +1 -31
- package/core/server/services/redirects/api.js +270 -0
- package/core/server/services/redirects/index.js +27 -12
- package/core/server/services/themes/ThemeStorage.js +5 -5
- package/core/server/web/admin/views/default-prod.html +4 -4
- package/core/server/web/admin/views/default.html +4 -4
- package/core/server/web/api/canary/admin/routes.js +13 -4
- package/core/server/web/api/middleware/upload.js +117 -10
- package/core/server/web/members/app.js +1 -1
- package/core/server/web/shared/middlewares/index.js +0 -4
- package/core/shared/config/defaults.json +3 -1
- package/core/shared/config/helpers.js +2 -0
- package/core/shared/config/overrides.json +8 -0
- package/core/shared/labs.js +5 -3
- package/package.json +35 -34
- package/yarn.lock +997 -1016
- package/core/built/assets/img/themes/Editorial-a25a4a34c04dedd858bd5e05ef388b1c.jpg +0 -0
- package/core/built/assets/img/themes/Massively-06edf00108429f7fb8e65f190fba34fe.jpg +0 -0
- package/core/server/services/redirects/settings.js +0 -234
- package/core/server/web/shared/middlewares/custom-redirects.js +0 -128
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "casper",
|
|
3
3
|
"description": "A clean, minimal default theme for the Ghost publishing platform",
|
|
4
4
|
"demo": "https://demo.ghost.io",
|
|
5
|
-
"version": "4.
|
|
5
|
+
"version": "4.2.0",
|
|
6
6
|
"engines": {
|
|
7
7
|
"ghost": ">=4.0.0",
|
|
8
8
|
"ghost-api": "v4"
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"autoprefixer": "10.2.5",
|
|
51
51
|
"beeper": "2.1.0",
|
|
52
52
|
"cssnano": "4.1.10",
|
|
53
|
-
"gscan": "4.
|
|
53
|
+
"gscan": "4.10.1",
|
|
54
54
|
"gulp": "4.0.2",
|
|
55
55
|
"gulp-concat": "2.6.1",
|
|
56
56
|
"gulp-livereload": "4.0.2",
|
|
@@ -87,6 +87,95 @@
|
|
|
87
87
|
"xl": {
|
|
88
88
|
"width": 2000
|
|
89
89
|
}
|
|
90
|
+
},
|
|
91
|
+
"custom": {
|
|
92
|
+
"title_font": {
|
|
93
|
+
"type": "select",
|
|
94
|
+
"options": [
|
|
95
|
+
"Modern sans-serif",
|
|
96
|
+
"Elegant serif"
|
|
97
|
+
],
|
|
98
|
+
"default": "Modern sans-serif"
|
|
99
|
+
},
|
|
100
|
+
"body_font": {
|
|
101
|
+
"type": "select",
|
|
102
|
+
"options": [
|
|
103
|
+
"Modern sans-serif",
|
|
104
|
+
"Elegant serif"
|
|
105
|
+
],
|
|
106
|
+
"default": "Elegant serif"
|
|
107
|
+
},
|
|
108
|
+
"publication_cover_style": {
|
|
109
|
+
"type": "select",
|
|
110
|
+
"options": [
|
|
111
|
+
"None",
|
|
112
|
+
"Medium",
|
|
113
|
+
"Large"
|
|
114
|
+
],
|
|
115
|
+
"default": "Medium",
|
|
116
|
+
"group": "homepage"
|
|
117
|
+
},
|
|
118
|
+
"feed_layout": {
|
|
119
|
+
"type": "select",
|
|
120
|
+
"options": [
|
|
121
|
+
"Dynamic grid",
|
|
122
|
+
"Simple grid",
|
|
123
|
+
"List"
|
|
124
|
+
],
|
|
125
|
+
"default": "Dynamic grid",
|
|
126
|
+
"group": "homepage"
|
|
127
|
+
},
|
|
128
|
+
"color_scheme": {
|
|
129
|
+
"type": "select",
|
|
130
|
+
"options": [
|
|
131
|
+
"Light",
|
|
132
|
+
"Dark",
|
|
133
|
+
"Auto"
|
|
134
|
+
],
|
|
135
|
+
"default": "Light"
|
|
136
|
+
},
|
|
137
|
+
"header_button_background": {
|
|
138
|
+
"type": "color",
|
|
139
|
+
"default": "#ffffff"
|
|
140
|
+
},
|
|
141
|
+
"header_button_text_color": {
|
|
142
|
+
"type": "select",
|
|
143
|
+
"options": [
|
|
144
|
+
"Light",
|
|
145
|
+
"Dark"
|
|
146
|
+
],
|
|
147
|
+
"default": "Dark"
|
|
148
|
+
},
|
|
149
|
+
"post_image_width": {
|
|
150
|
+
"type": "select",
|
|
151
|
+
"options": [
|
|
152
|
+
"Wide",
|
|
153
|
+
"Full",
|
|
154
|
+
"Small"
|
|
155
|
+
],
|
|
156
|
+
"default": "Wide",
|
|
157
|
+
"group": "post"
|
|
158
|
+
},
|
|
159
|
+
"email_signup_for_logged_out_visitors": {
|
|
160
|
+
"type": "select",
|
|
161
|
+
"options": [
|
|
162
|
+
"Footer",
|
|
163
|
+
"Bottom of post",
|
|
164
|
+
"None"
|
|
165
|
+
],
|
|
166
|
+
"default": "Footer",
|
|
167
|
+
"group": "post"
|
|
168
|
+
},
|
|
169
|
+
"email_signup_text": {
|
|
170
|
+
"type": "text",
|
|
171
|
+
"default": "Sign up for more like this.",
|
|
172
|
+
"group": "post"
|
|
173
|
+
},
|
|
174
|
+
"show_recent_posts": {
|
|
175
|
+
"type": "boolean",
|
|
176
|
+
"default": true,
|
|
177
|
+
"group": "post"
|
|
178
|
+
}
|
|
90
179
|
}
|
|
91
180
|
},
|
|
92
181
|
"renovate": {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{{!-- This is a partial file used to generate a post "card"
|
|
2
2
|
which templates loop over to generate a list of posts. --}}
|
|
3
3
|
|
|
4
|
-
<article class="post-card {{post_class}} {{#is "home"}}{{#
|
|
4
|
+
<article class="post-card {{post_class}} {{#match @custom.feed_layout "!=" "Simple grid"}}{{#is "home"}}{{#match @custom.feed_layout "Dynamic grid"}}{{#has index="0"}}{{#if feature_image}}post-card-large{{/if}}{{/has}}{{else}}post-card-large{{/match}}{{/is}}{{/match}}">
|
|
5
5
|
|
|
6
6
|
{{#if feature_image}}
|
|
7
7
|
<a class="post-card-image-link" href="{{url}}">
|
|
@@ -8,7 +8,7 @@ into the {body} tag of the default.hbs template --}}
|
|
|
8
8
|
{{!-- Everything inside the #post block pulls data from the post --}}
|
|
9
9
|
|
|
10
10
|
<main id="site-main" class="site-main">
|
|
11
|
-
<article class="article {{post_class}}">
|
|
11
|
+
<article class="article {{post_class}} {{#match @custom.post_image_width "Full"}}image-full{{else match @custom.post_image_width "=" "Small"}}image-small{{/match}}">
|
|
12
12
|
|
|
13
13
|
<header class="article-header gh-canvas">
|
|
14
14
|
|
|
@@ -83,22 +83,25 @@ into the {body} tag of the default.hbs template --}}
|
|
|
83
83
|
</main>
|
|
84
84
|
|
|
85
85
|
{{!-- A signup call to action is displayed here, unless viewed as a logged-in member --}}
|
|
86
|
-
{{#
|
|
87
|
-
|
|
88
|
-
<
|
|
89
|
-
<
|
|
90
|
-
|
|
91
|
-
<
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
</
|
|
98
|
-
|
|
86
|
+
{{#match @custom.email_signup_for_logged_out_visitors "!=" "None"}}
|
|
87
|
+
{{#unless @member}}{{#if access}}
|
|
88
|
+
<section class="footer-cta {{#match @custom.email_signup_for_logged_out_visitors "Bottom of post"}}cta-alt{{/match}}">
|
|
89
|
+
<div class="inner">
|
|
90
|
+
{{#if @custom.email_signup_text}}<h2>{{@custom.email_signup_text}}</h2>{{/if}}
|
|
91
|
+
<a class="footer-cta-button" href="#/portal">
|
|
92
|
+
<div class="footer-cta-input">Enter your email</div>
|
|
93
|
+
<span>Subscribe</span>
|
|
94
|
+
</a>
|
|
95
|
+
{{!-- ^ This looks like a form element, but it's just a link to Portal,
|
|
96
|
+
making the form validation and submission much simpler. --}}
|
|
97
|
+
</div>
|
|
98
|
+
</section>
|
|
99
|
+
{{/if}}{{/unless}}
|
|
100
|
+
{{/match}}
|
|
99
101
|
|
|
100
102
|
|
|
101
103
|
{{!-- Read more links, just above the footer --}}
|
|
104
|
+
{{#if @custom.show_recent_posts}}
|
|
102
105
|
<aside class="read-more-wrap">
|
|
103
106
|
<div class="read-more inner">
|
|
104
107
|
|
|
@@ -118,5 +121,6 @@ into the {body} tag of the default.hbs template --}}
|
|
|
118
121
|
|
|
119
122
|
</div>
|
|
120
123
|
</aside>
|
|
124
|
+
{{/if}}
|
|
121
125
|
|
|
122
126
|
{{/post}}
|