ghost 4.23.0 → 4.26.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.
Files changed (175) hide show
  1. package/.eslintrc.js +39 -0
  2. package/content/themes/casper/assets/built/casper.js +1 -1
  3. package/content/themes/casper/assets/built/casper.js.map +1 -1
  4. package/content/themes/casper/assets/built/global.css +1 -1
  5. package/content/themes/casper/assets/built/global.css.map +1 -1
  6. package/content/themes/casper/assets/built/screen.css +1 -1
  7. package/content/themes/casper/assets/built/screen.css.map +1 -1
  8. package/content/themes/casper/assets/css/global.css +6 -1
  9. package/content/themes/casper/assets/css/screen.css +50 -215
  10. package/content/themes/casper/default.hbs +2 -2
  11. package/content/themes/casper/package.json +3 -2
  12. package/content/themes/casper/post.hbs +1 -1
  13. package/content/themes/casper/yarn.lock +173 -123
  14. package/core/app.js +20 -5
  15. package/core/boot.js +77 -36
  16. package/core/bridge.js +10 -10
  17. package/core/built/assets/ghost-dark-ef86e3bc7f0fb83d39d3d6a49bff8dd5.css +1 -0
  18. package/core/built/assets/ghost.min-57c1e677f42d596942d317ce93e8a62c.css +1 -0
  19. package/core/built/assets/{ghost.min-cccc107e881b74c7aaf1a73e1e5e0dee.js → ghost.min-f3c6886e191d34450e9ffca0c8fa056e.js} +543 -618
  20. package/core/built/assets/icons/audio-upload.svg +8 -0
  21. package/core/built/assets/{vendor.min-c9002845b6c30ac978abdadde9f33d7c.js → vendor.min-b6b8d2a31d61830c2d8f65c5ba54236a.js} +2656 -2118
  22. package/core/frontend/apps/amp/lib/helpers/amp_content.js +2 -2
  23. package/core/frontend/apps/amp/lib/views/amp.hbs +75 -0
  24. package/core/frontend/apps/private-blogging/index.js +1 -1
  25. package/core/frontend/helpers/url.js +18 -1
  26. package/core/frontend/services/apps/index.js +1 -1
  27. package/core/frontend/services/apps/loader.js +3 -3
  28. package/core/frontend/services/card-assets/index.js +0 -12
  29. package/core/frontend/services/card-assets/service.js +22 -21
  30. package/core/frontend/services/helpers/handlebars.js +1 -1
  31. package/core/frontend/services/theme-engine/middleware/ensure-active-theme.js +34 -0
  32. package/core/frontend/services/theme-engine/middleware/index.js +6 -0
  33. package/core/frontend/services/theme-engine/middleware/update-global-template-options.js +116 -0
  34. package/core/frontend/services/theme-engine/middleware/update-local-template-data.js +9 -0
  35. package/core/frontend/services/theme-engine/middleware/update-local-template-options.js +57 -0
  36. package/core/frontend/src/cards/css/audio.css +186 -0
  37. package/core/frontend/src/cards/css/blockquote.css +27 -0
  38. package/core/frontend/src/cards/css/bookmark.css +7 -0
  39. package/core/frontend/src/cards/css/button.css +4 -0
  40. package/core/frontend/src/cards/css/callout.css +23 -15
  41. package/core/frontend/src/cards/css/gallery.css +13 -3
  42. package/core/frontend/src/cards/css/toggle.css +48 -15
  43. package/core/frontend/src/cards/js/audio.js +137 -0
  44. package/core/frontend/web/middleware/error-handler.js +93 -0
  45. package/core/frontend/web/middleware/handle-image-sizes.js +3 -6
  46. package/core/frontend/web/middleware/index.js +1 -0
  47. package/core/frontend/web/middleware/serve-public-file.js +25 -8
  48. package/core/frontend/web/site.js +2 -5
  49. package/core/server/adapters/scheduling/SchedulingDefault.js +2 -2
  50. package/core/server/adapters/storage/LocalStorageBase.js +2 -2
  51. package/core/server/api/canary/db.js +2 -2
  52. package/core/server/api/canary/media.js +3 -2
  53. package/core/server/api/canary/oembed.js +16 -1
  54. package/core/server/api/canary/session.js +1 -1
  55. package/core/server/api/canary/slugs.js +1 -1
  56. package/core/server/api/canary/utils/permissions.js +2 -2
  57. package/core/server/api/canary/utils/serializers/output/config.js +2 -6
  58. package/core/server/api/v2/db.js +2 -2
  59. package/core/server/api/v2/session.js +1 -1
  60. package/core/server/api/v2/slugs.js +1 -1
  61. package/core/server/api/v2/utils/permissions.js +2 -2
  62. package/core/server/api/v3/db.js +2 -2
  63. package/core/server/api/v3/session.js +1 -1
  64. package/core/server/api/v3/slugs.js +1 -1
  65. package/core/server/api/v3/utils/permissions.js +2 -2
  66. package/core/server/data/db/state-manager.js +4 -4
  67. package/core/server/data/exporter/export-filename.js +1 -1
  68. package/core/server/data/importer/handlers/json.js +1 -1
  69. package/core/server/data/importer/import-manager.js +1 -1
  70. package/core/server/data/importer/importers/data/base.js +1 -1
  71. package/core/server/data/migrations/utils.js +2 -2
  72. package/core/server/data/migrations/versions/1.25/1-update-koenig-beta-html.js +1 -0
  73. package/core/server/data/migrations/versions/3.1/08-add-uuid-values-to-members.js +1 -0
  74. package/core/server/data/migrations/versions/3.22/02-settings-key-renames.js +2 -0
  75. package/core/server/data/migrations/versions/3.22/05-migrate-members-subscription-settings.js +3 -0
  76. package/core/server/data/migrations/versions/3.22/06-migrate-stripe-connect-settings.js +2 -0
  77. package/core/server/data/migrations/versions/3.23/01-migrate-bulk-email-settings.js +1 -0
  78. package/core/server/data/migrations/versions/3.29/01-remove-duplicate-subscriptions.js +2 -0
  79. package/core/server/data/migrations/versions/3.29/02-remove-duplicate-customers.js +2 -0
  80. package/core/server/data/migrations/versions/3.38/04-populate-recipient-filter-column.js +2 -0
  81. package/core/server/data/migrations/versions/4.0/01-update-mobiledoc.js +2 -0
  82. package/core/server/data/migrations/versions/4.0/03-populate-status-column-for-members.js +4 -0
  83. package/core/server/data/migrations/versions/4.0/06-populate-members-subscribe-events-table.js +1 -0
  84. package/core/server/data/migrations/versions/4.0/17-populate-members-status-events-table.js +1 -0
  85. package/core/server/data/migrations/versions/4.0/18-transform-urls-absolute-to-transform-ready.js +5 -0
  86. package/core/server/data/migrations/versions/4.0/22-solve-orphaned-webhooks.js +1 -0
  87. package/core/server/data/migrations/versions/4.0/23-regenerate-posts-html.js +1 -0
  88. package/core/server/data/migrations/versions/4.0/25-populate-members-paid-subscription-events-table.js +2 -1
  89. package/core/server/data/migrations/versions/4.12/02-fix-member-statuses.js +1 -0
  90. package/core/server/data/migrations/versions/4.14/01-fix-comped-member-statuses.js +3 -0
  91. package/core/server/data/migrations/versions/4.14/02-fix-free-members-status-events.js +1 -0
  92. package/core/server/data/migrations/versions/4.20/05-remove-not-null-constraint-from-portal-title.js +2 -0
  93. package/core/server/data/migrations/versions/4.23/01-truncate-offer-names.js +1 -0
  94. package/core/server/data/migrations/versions/4.3/04-attach-members-to-product.js +1 -0
  95. package/core/server/data/migrations/versions/4.4/01-restore-free-members-signup-setting-from-backup.js +1 -0
  96. package/core/server/data/migrations/versions/4.6/01-remove-comped-status.js +1 -0
  97. package/core/server/data/migrations/versions/4.8/04-migrate-show-newsletter-header-setting.js +1 -0
  98. package/core/server/data/migrations/versions/4.9/05-fix-missed-mobiledoc-url-transforms.js +1 -0
  99. package/core/server/data/migrations/versions/4.9/06-add-comped-status.js +1 -0
  100. package/core/server/data/migrations/versions/4.9/07-update-comped-members-status-events.js +1 -0
  101. package/core/server/data/schema/commands.js +2 -2
  102. package/core/server/ghost-server.js +2 -2
  103. package/core/server/lib/image/image-size.js +2 -2
  104. package/core/server/models/base/listeners.js +2 -2
  105. package/core/server/models/member-email-change-event.js +2 -2
  106. package/core/server/models/member-login-event.js +2 -2
  107. package/core/server/models/member-paid-subscription-event.js +3 -3
  108. package/core/server/models/member-payment-event.js +3 -3
  109. package/core/server/models/member-product-event.js +6 -6
  110. package/core/server/models/member-status-event.js +5 -3
  111. package/core/server/models/member-subscribe-event.js +9 -3
  112. package/core/server/models/relations/authors.js +1 -1
  113. package/core/server/models/settings.js +1 -1
  114. package/core/server/notify.js +1 -2
  115. package/core/server/services/auth/passwordreset.js +1 -1
  116. package/core/server/services/auth/setup.js +1 -1
  117. package/core/server/services/email-analytics/jobs/index.js +1 -1
  118. package/core/server/services/mega/mega.js +6 -4
  119. package/core/server/services/mega/template.js +47 -17
  120. package/core/server/services/members/api.js +22 -0
  121. package/core/server/services/members/config.js +1 -1
  122. package/core/server/services/members/emails/signup-paid.js +168 -0
  123. package/core/server/services/members/service.js +6 -2
  124. package/core/server/services/members/stripe-connect.js +4 -2
  125. package/core/server/services/nft-oembed.js +7 -2
  126. package/core/server/services/oembed.js +15 -3
  127. package/core/server/services/permissions/can-this.js +1 -1
  128. package/core/server/services/redirects/api.js +20 -25
  129. package/core/server/services/redirects/index.js +18 -10
  130. package/core/server/services/redirects/utils.js +14 -0
  131. package/core/server/services/redirects/validation.js +10 -0
  132. package/core/server/services/route-settings/default-settings-manager.js +1 -1
  133. package/core/server/services/route-settings/index.js +40 -17
  134. package/core/server/services/route-settings/route-settings.js +120 -115
  135. package/core/server/services/route-settings/settings-loader.js +18 -36
  136. package/core/server/services/route-settings/yaml-parser.js +1 -1
  137. package/core/server/services/slack.js +1 -1
  138. package/core/server/services/themes/activation-bridge.js +3 -3
  139. package/core/server/services/themes/storage.js +2 -2
  140. package/core/server/services/twitter-embed.js +81 -0
  141. package/core/server/services/url/LocalFileCache.js +75 -0
  142. package/core/server/services/url/UrlService.js +15 -47
  143. package/core/server/services/url/index.js +17 -4
  144. package/core/server/services/xmlrpc.js +2 -2
  145. package/core/server/web/admin/app.js +2 -5
  146. package/core/server/web/admin/controller.js +35 -12
  147. package/core/server/web/admin/middleware/redirect-admin-urls.js +15 -0
  148. package/core/server/web/admin/views/default-prod.html +4 -4
  149. package/core/server/web/admin/views/default.html +4 -4
  150. package/core/server/web/api/canary/admin/app.js +0 -3
  151. package/core/server/web/api/canary/admin/middleware.js +1 -1
  152. package/core/server/web/api/canary/content/app.js +0 -3
  153. package/core/server/web/api/v2/admin/app.js +0 -3
  154. package/core/server/web/api/v2/admin/middleware.js +1 -1
  155. package/core/server/web/api/v2/content/app.js +0 -3
  156. package/core/server/web/api/v3/admin/app.js +0 -3
  157. package/core/server/web/api/v3/admin/middleware.js +1 -1
  158. package/core/server/web/api/v3/content/app.js +0 -3
  159. package/core/server/web/members/app.js +0 -3
  160. package/core/server/web/oauth/app.js +0 -4
  161. package/core/server/web/parent/app.js +2 -13
  162. package/core/server/web/parent/backend.js +2 -0
  163. package/core/server/web/shared/middleware/error-handler.js +57 -162
  164. package/core/server/web/shared/middleware/index.js +0 -4
  165. package/core/shared/config/defaults.json +7 -1
  166. package/core/shared/express.js +1 -1
  167. package/core/shared/labs.js +12 -7
  168. package/core/shared/sentry.js +1 -1
  169. package/package.json +41 -40
  170. package/yarn.lock +799 -948
  171. package/content/themes/casper/assets/js/gallery-card.js +0 -24
  172. package/core/built/assets/ghost-dark-42cf6e0c730578940ec069bda45aea41.css +0 -1
  173. package/core/built/assets/ghost.min-fcf6a0738421f86c47c55f20d00c5ba9.css +0 -1
  174. package/core/frontend/services/theme-engine/middleware.js +0 -209
  175. package/core/server/web/shared/middleware/maintenance.js +0 -25
@@ -995,12 +995,16 @@ is the very first element in the post content */
995
995
  }
996
996
 
997
997
  /* Now the content typography styles */
998
- .gh-content a {
998
+ .gh-content a:not(.gh-post-upgrade-cta a):not(.kg-bookmark-container):not(.kg-btn):not(.kg-nft-card-container):not(.kg-callout-card-accent a) {
999
999
  color: var(--ghost-accent-color);
1000
1000
  text-decoration: underline;
1001
1001
  word-break: break-word;
1002
1002
  }
1003
1003
 
1004
+ .gh-content .kg-callout-card-accent a {
1005
+ text-decoration: underline;
1006
+ }
1007
+
1004
1008
  .gh-content > blockquote,
1005
1009
  .gh-content > ol,
1006
1010
  .gh-content > ul,
@@ -1012,11 +1016,34 @@ is the very first element in the post content */
1012
1016
  line-height: 1.6em;
1013
1017
  }
1014
1018
 
1019
+ .gh-content .kg-callout-text,
1020
+ .gh-content .kg-toggle-content > ol,
1021
+ .gh-content .kg-toggle-content > ul,
1022
+ .gh-content .kg-toggle-content > p {
1023
+ font-family: var(--font-serif);
1024
+ font-weight: 400;
1025
+ font-size: 2.0rem;
1026
+ line-height: 1.6em;
1027
+ }
1028
+
1029
+ .gh-content .kg-callout-emoji {
1030
+ font-size: 2.2rem;
1031
+ line-height: 1.5em;
1032
+ }
1033
+
1034
+ .gh-content .kg-toggle-heading-text {
1035
+ font-size: 2.2rem;
1036
+ }
1037
+
1015
1038
  .has-sans-body .gh-content > blockquote,
1016
1039
  .has-sans-body .gh-content > ol,
1017
1040
  .has-sans-body .gh-content > ul,
1018
1041
  .has-sans-body .gh-content > dl,
1019
- .has-sans-body .gh-content > p {
1042
+ .has-sans-body .gh-content > p,
1043
+ .has-sans-body .kg-callout-text,
1044
+ .has-sans-body .kg-toggle-content > ol,
1045
+ .has-sans-body .kg-toggle-content > ul,
1046
+ .has-sans-body .kg-toggle-content > p {
1020
1047
  font-family: var(--font-sans);
1021
1048
  }
1022
1049
 
@@ -1066,11 +1093,15 @@ is the very first element in the post content */
1066
1093
  }
1067
1094
 
1068
1095
  @media (max-width: 650px) {
1069
- .gh-content blockquote,
1070
- .gh-content ol,
1071
- .gh-content ul,
1072
- .gh-content dl,
1073
- .gh-content p {
1096
+ .gh-content > blockquote,
1097
+ .gh-content > ol,
1098
+ .gh-content > ul,
1099
+ .gh-content > dl,
1100
+ .gh-content > p,
1101
+ .kg-callout-text,
1102
+ .kg-toggle-content > ol,
1103
+ .kg-toggle-content > ul,
1104
+ .kg-toggle-content > p {
1074
1105
  font-size: 1.7rem;
1075
1106
  }
1076
1107
 
@@ -1112,6 +1143,14 @@ except for when immediately preceeded by a heading */
1112
1143
  margin: auto;
1113
1144
  }
1114
1145
 
1146
+ .has-serif-title .kg-toggle-heading-text {
1147
+ font-family: var(--font-serif);
1148
+ }
1149
+
1150
+ .kg-toggle-content > * + * {
1151
+ margin-top: min(2.4rem, 4vmin);
1152
+ }
1153
+
1115
1154
 
1116
1155
  /* Captions */
1117
1156
  figcaption {
@@ -1143,162 +1182,6 @@ iframe.instagram-media + script + :not([id]) {
1143
1182
  }
1144
1183
 
1145
1184
 
1146
- /* Galleries
1147
- /* ---------------------------------------------------------- */
1148
-
1149
- /* When there galleries are mixed with images, reduce margin
1150
- between them, so it looks like 1 big gallery */
1151
- .kg-image-card + .kg-gallery-card,
1152
- .kg-gallery-card + .kg-image-card,
1153
- .kg-gallery-card + .kg-gallery-card {
1154
- margin-top: 0.75em;
1155
- }
1156
-
1157
- .kg-image-card.kg-card-hascaption + .kg-gallery-card,
1158
- .kg-gallery-card.kg-card-hascaption + .kg-image-card,
1159
- .kg-gallery-card.kg-card-hascaption + .kg-gallery-card {
1160
- margin-top: 1.75em;
1161
- }
1162
-
1163
- .kg-gallery-container {
1164
- position: relative;
1165
- }
1166
-
1167
- .kg-gallery-row {
1168
- display: flex;
1169
- flex-direction: row;
1170
- justify-content: center;
1171
- }
1172
-
1173
- .kg-gallery-image img {
1174
- display: block;
1175
- margin: 0;
1176
- width: 100%;
1177
- height: 100%;
1178
- }
1179
-
1180
- .kg-gallery-row:not(:first-of-type) {
1181
- margin: 0.75em 0 0 0;
1182
- }
1183
-
1184
- .kg-gallery-image:not(:first-of-type) {
1185
- margin: 0 0 0 0.75em;
1186
- }
1187
-
1188
-
1189
- /* Bookmark Cards
1190
- /* ---------------------------------------------------------- */
1191
-
1192
- /* These are styled links with structured data, similar to a
1193
- Twitter card. These styles roughly match what you see in the
1194
- Ghost editor. */
1195
-
1196
- .kg-bookmark-card,
1197
- .kg-bookmark-publisher {
1198
- position: relative;
1199
- width: 100%;
1200
- }
1201
-
1202
- .kg-bookmark-container,
1203
- .kg-bookmark-container:hover {
1204
- display: flex;
1205
- color: currentColor;
1206
- font-family: var(--font-sans-serif);
1207
- text-decoration: none !important;
1208
- background: rgba(255,255,255,0.6);
1209
- border-radius: 5px;
1210
- box-shadow: 0 2px 6px -2px rgba(0, 0, 0, 0.1), 0 0 1px rgba(0, 0, 0, 0.4);
1211
- overflow: hidden;
1212
- }
1213
-
1214
- .kg-bookmark-content {
1215
- display: flex;
1216
- flex-direction: column;
1217
- flex-grow: 1;
1218
- flex-basis: 100%;
1219
- align-items: flex-start;
1220
- justify-content: flex-start;
1221
- padding: 20px;
1222
- }
1223
-
1224
- .kg-bookmark-title {
1225
- font-size: 1.5rem;
1226
- line-height: 1.4em;
1227
- font-weight: 600;
1228
- color: #15171A;
1229
- }
1230
-
1231
- .kg-bookmark-description {
1232
- display: -webkit-box;
1233
- font-size: 1.4rem;
1234
- line-height: 1.5em;
1235
- margin-top: 3px;
1236
- color: #626d79;
1237
- font-weight: 400;
1238
- max-height: 44px;
1239
- overflow-y: hidden;
1240
- -webkit-line-clamp: 2;
1241
- -webkit-box-orient: vertical;
1242
- }
1243
-
1244
- .kg-bookmark-metadata {
1245
- display: flex;
1246
- align-items: center;
1247
- margin-top: 22px;
1248
- width: 100%;
1249
- color: #394047;
1250
- font-size: 1.4rem;
1251
- font-weight: 500;
1252
- }
1253
-
1254
- .kg-bookmark-icon {
1255
- width: 20px;
1256
- height: 20px;
1257
- margin-right: 6px;
1258
- }
1259
-
1260
- .kg-bookmark-author,
1261
- .kg-bookmark-publisher {
1262
- display: inline;
1263
- }
1264
-
1265
- .kg-bookmark-publisher {
1266
- text-overflow: ellipsis;
1267
- overflow: hidden;
1268
- max-width: 240px;
1269
- white-space: nowrap;
1270
- display: block;
1271
- line-height: 1.65em;
1272
- }
1273
-
1274
- .kg-bookmark-metadata > span:nth-of-type(2) {
1275
- color: #626d79;
1276
- font-weight: 400;
1277
- }
1278
-
1279
- .kg-bookmark-metadata > span:nth-of-type(2):before {
1280
- content: "•";
1281
- color: #394047;
1282
- margin: 0 6px;
1283
- }
1284
-
1285
- .kg-bookmark-thumbnail {
1286
- position: relative;
1287
- flex-grow: 1;
1288
- min-width: 33%;
1289
- }
1290
-
1291
- .kg-bookmark-thumbnail img {
1292
- width: 100%;
1293
- height: 100%;
1294
- object-fit: cover;
1295
- position: absolute;
1296
- top: 0;
1297
- left: 0;
1298
- border-radius: 0 4px 4px 0;
1299
- }
1300
-
1301
-
1302
1185
  /* Card captions
1303
1186
  /* ---------------------------------------------------------- */
1304
1187
 
@@ -1913,12 +1796,7 @@ html.dark-mode .no-image .author-social-link a {
1913
1796
  color: rgba(255, 255, 255, 0.75);
1914
1797
  }
1915
1798
 
1916
- html.dark-mode .gh-content h1,
1917
- html.dark-mode .gh-content h2,
1918
- html.dark-mode .gh-content h3,
1919
- html.dark-mode .gh-content h4,
1920
- html.dark-mode .gh-content h5,
1921
- html.dark-mode .gh-content h6 {
1799
+ html.dark-mode .gh-content > [id] {
1922
1800
  color: rgba(255, 255, 255, 0.9);
1923
1801
  }
1924
1802
 
@@ -1932,9 +1810,8 @@ html.dark-mode .gh-content :not(pre) > code {
1932
1810
  color: var(--color-wash);
1933
1811
  }
1934
1812
 
1935
- html.dark-mode .gh-content a {
1813
+ html.dark-mode .gh-content a:not(.kg-btn):not(.kg-nft-card-container) {
1936
1814
  color: #fff;
1937
- box-shadow: inset 0 -1px 0 #fff;
1938
1815
  }
1939
1816
 
1940
1817
  html.dark-mode .gh-content strong {
@@ -1981,28 +1858,10 @@ html.dark-mode .gh-content table td {
1981
1858
  border: color-mod(var(--color-darkmode) l(+8%)) 1px solid;
1982
1859
  }
1983
1860
 
1984
- html.dark-mode .gh-content .kg-bookmark-container,
1985
- html.dark-mode .gh-content .kg-bookmark-container:hover {
1986
- color: rgba(255, 255, 255, 0.75);
1987
- box-shadow: 0 0 1px rgba(255,255,255,0.9);
1988
- }
1989
-
1990
1861
  html.dark-mode .gh-content input {
1991
1862
  color: color-mod(var(--color-midgrey) l(-30%));
1992
1863
  }
1993
1864
 
1994
- html.dark-mode .kg-bookmark-title {
1995
- color: #fff;
1996
- }
1997
-
1998
- html.dark-mode .kg-bookmark-description {
1999
- color: rgba(255, 255, 255, 0.75);
2000
- }
2001
-
2002
- html.dark-mode .kg-bookmark-metadata {
2003
- color: rgba(255, 255, 255, 0.75);
2004
- }
2005
-
2006
1865
  html.dark-mode .site-archive-header .no-image {
2007
1866
  color: rgba(255, 255, 255, 0.9);
2008
1867
  background: var(--color-darkmode);
@@ -2075,12 +1934,7 @@ html.dark-mode .site-archive-header .no-image {
2075
1934
  color: rgba(255, 255, 255, 0.75);
2076
1935
  }
2077
1936
 
2078
- html.auto-color .gh-content h1,
2079
- html.auto-color .gh-content h2,
2080
- html.auto-color .gh-content h3,
2081
- html.auto-color .gh-content h4,
2082
- html.auto-color .gh-content h5,
2083
- html.auto-color .gh-content h6 {
1937
+ html.auto-color .gh-content > [id] {
2084
1938
  color: rgba(255, 255, 255, 0.9);
2085
1939
  }
2086
1940
 
@@ -2094,9 +1948,8 @@ html.dark-mode .site-archive-header .no-image {
2094
1948
  color: var(--color-wash);
2095
1949
  }
2096
1950
 
2097
- html.auto-color .gh-content a {
1951
+ html.auto-color .gh-content a:not(.kg-btn):not(.kg-nft-card-container) {
2098
1952
  color: #fff;
2099
- box-shadow: inset 0 -1px 0 #fff;
2100
1953
  }
2101
1954
 
2102
1955
  html.auto-color .gh-content strong {
@@ -2143,28 +1996,10 @@ html.dark-mode .site-archive-header .no-image {
2143
1996
  border: color-mod(var(--color-darkmode) l(+8%)) 1px solid;
2144
1997
  }
2145
1998
 
2146
- html.auto-color .gh-content .kg-bookmark-container,
2147
- html.auto-color .gh-content .kg-bookmark-container:hover {
2148
- color: rgba(255, 255, 255, 0.75);
2149
- box-shadow: 0 0 1px rgba(255,255,255,0.9);
2150
- }
2151
-
2152
1999
  html.auto-color .gh-content input {
2153
2000
  color: color-mod(var(--color-midgrey) l(-30%));
2154
2001
  }
2155
2002
 
2156
- html.auto-color .kg-bookmark-title {
2157
- color: #fff;
2158
- }
2159
-
2160
- html.auto-color .kg-bookmark-description {
2161
- color: rgba(255, 255, 255, 0.75);
2162
- }
2163
-
2164
- html.auto-color .kg-bookmark-metadata {
2165
- color: rgba(255, 255, 255, 0.75);
2166
- }
2167
-
2168
2003
  html.auto-color .site-archive-header .no-image {
2169
2004
  color: rgba(255, 255, 255, 0.9);
2170
2005
  background: var(--color-darkmode);
@@ -61,9 +61,9 @@
61
61
  </div>
62
62
 
63
63
  {{#unless @member}}
64
- <a class="gh-head-button" href="#/portal/signup">Subscribe</a>
64
+ <a class="gh-head-button" href="#/portal/signup" data-portal="signup">Subscribe</a>
65
65
  {{else}}
66
- <a class="gh-head-button" href="#/portal/account">Account</a>
66
+ <a class="gh-head-button" href="#/portal/account" data-portal="account">Account</a>
67
67
  {{/unless}}
68
68
  </div>
69
69
  </nav>
@@ -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.2.0",
5
+ "version": "4.3.1",
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.10.1",
53
+ "gscan": "4.11.1",
54
54
  "gulp": "4.0.2",
55
55
  "gulp-concat": "2.6.1",
56
56
  "gulp-livereload": "4.0.2",
@@ -88,6 +88,7 @@
88
88
  "width": 2000
89
89
  }
90
90
  },
91
+ "card_assets": true,
91
92
  "custom": {
92
93
  "title_font": {
93
94
  "type": "select",
@@ -88,7 +88,7 @@ into the {body} tag of the default.hbs template --}}
88
88
  <section class="footer-cta {{#match @custom.email_signup_for_logged_out_visitors "Bottom of post"}}cta-alt{{/match}}">
89
89
  <div class="inner">
90
90
  {{#if @custom.email_signup_text}}<h2>{{@custom.email_signup_text}}</h2>{{/if}}
91
- <a class="footer-cta-button" href="#/portal">
91
+ <a class="footer-cta-button" href="#/portal" data-portal>
92
92
  <div class="footer-cta-input">Enter your email</div>
93
93
  <span>Subscribe</span>
94
94
  </a>