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.
Files changed (217) hide show
  1. package/components/tryghost-adapter-cache-memory-ttl-5.67.0.tgz +0 -0
  2. package/components/{tryghost-adapter-cache-redis-5.66.1.tgz → tryghost-adapter-cache-redis-5.67.0.tgz} +0 -0
  3. package/components/tryghost-adapter-manager-5.67.0.tgz +0 -0
  4. package/components/tryghost-announcement-bar-settings-5.67.0.tgz +0 -0
  5. package/components/tryghost-api-framework-5.67.0.tgz +0 -0
  6. package/components/tryghost-api-version-compatibility-service-5.67.0.tgz +0 -0
  7. package/components/tryghost-audience-feedback-5.67.0.tgz +0 -0
  8. package/components/tryghost-bookshelf-repository-5.67.0.tgz +0 -0
  9. package/components/{tryghost-bootstrap-socket-5.66.1.tgz → tryghost-bootstrap-socket-5.67.0.tgz} +0 -0
  10. package/components/tryghost-collections-5.67.0.tgz +0 -0
  11. package/components/tryghost-constants-5.67.0.tgz +0 -0
  12. package/components/{tryghost-custom-theme-settings-service-5.66.1.tgz → tryghost-custom-theme-settings-service-5.67.0.tgz} +0 -0
  13. package/components/{tryghost-data-generator-5.66.1.tgz → tryghost-data-generator-5.67.0.tgz} +0 -0
  14. package/components/tryghost-domain-events-5.67.0.tgz +0 -0
  15. package/components/tryghost-donations-5.67.0.tgz +0 -0
  16. package/components/tryghost-dynamic-routing-events-5.67.0.tgz +0 -0
  17. package/components/tryghost-email-analytics-provider-mailgun-5.67.0.tgz +0 -0
  18. package/components/{tryghost-email-analytics-service-5.66.1.tgz → tryghost-email-analytics-service-5.67.0.tgz} +0 -0
  19. package/components/tryghost-email-content-generator-5.67.0.tgz +0 -0
  20. package/components/tryghost-email-events-5.67.0.tgz +0 -0
  21. package/components/{tryghost-email-service-5.66.1.tgz → tryghost-email-service-5.67.0.tgz} +0 -0
  22. package/components/tryghost-email-suppression-list-5.67.0.tgz +0 -0
  23. package/components/tryghost-event-aware-cache-wrapper-5.67.0.tgz +0 -0
  24. package/components/tryghost-express-dynamic-redirects-5.67.0.tgz +0 -0
  25. package/components/tryghost-external-media-inliner-5.67.0.tgz +0 -0
  26. package/components/tryghost-extract-api-key-5.67.0.tgz +0 -0
  27. package/components/{tryghost-html-to-plaintext-5.66.1.tgz → tryghost-html-to-plaintext-5.67.0.tgz} +0 -0
  28. package/components/tryghost-i18n-5.67.0.tgz +0 -0
  29. package/components/tryghost-importer-handler-content-files-5.67.0.tgz +0 -0
  30. package/components/tryghost-importer-revue-5.67.0.tgz +0 -0
  31. package/components/{tryghost-in-memory-repository-5.66.1.tgz → tryghost-in-memory-repository-5.67.0.tgz} +0 -0
  32. package/components/{tryghost-job-manager-5.66.1.tgz → tryghost-job-manager-5.67.0.tgz} +0 -0
  33. package/components/{tryghost-link-redirects-5.66.1.tgz → tryghost-link-redirects-5.67.0.tgz} +0 -0
  34. package/components/tryghost-link-replacer-5.67.0.tgz +0 -0
  35. package/components/{tryghost-link-tracking-5.66.1.tgz → tryghost-link-tracking-5.67.0.tgz} +0 -0
  36. package/components/tryghost-magic-link-5.67.0.tgz +0 -0
  37. package/components/{tryghost-mail-events-5.66.1.tgz → tryghost-mail-events-5.67.0.tgz} +0 -0
  38. package/components/{tryghost-mailgun-client-5.66.1.tgz → tryghost-mailgun-client-5.67.0.tgz} +0 -0
  39. package/components/{tryghost-member-attribution-5.66.1.tgz → tryghost-member-attribution-5.67.0.tgz} +0 -0
  40. package/components/tryghost-member-events-5.67.0.tgz +0 -0
  41. package/components/{tryghost-members-api-5.66.1.tgz → tryghost-members-api-5.67.0.tgz} +0 -0
  42. package/components/{tryghost-members-csv-5.66.1.tgz → tryghost-members-csv-5.67.0.tgz} +0 -0
  43. package/components/{tryghost-members-events-service-5.66.1.tgz → tryghost-members-events-service-5.67.0.tgz} +0 -0
  44. package/components/tryghost-members-importer-5.67.0.tgz +0 -0
  45. package/components/{tryghost-members-offers-5.66.1.tgz → tryghost-members-offers-5.67.0.tgz} +0 -0
  46. package/components/tryghost-members-payments-5.67.0.tgz +0 -0
  47. package/components/tryghost-members-ssr-5.67.0.tgz +0 -0
  48. package/components/{tryghost-members-stripe-service-5.66.1.tgz → tryghost-members-stripe-service-5.67.0.tgz} +0 -0
  49. package/components/tryghost-mentions-email-report-5.67.0.tgz +0 -0
  50. package/components/tryghost-milestones-5.67.0.tgz +0 -0
  51. package/components/tryghost-minifier-5.67.0.tgz +0 -0
  52. package/components/tryghost-model-to-domain-event-interceptor-5.67.0.tgz +0 -0
  53. package/components/tryghost-mw-api-version-mismatch-5.67.0.tgz +0 -0
  54. package/components/tryghost-mw-cache-control-5.67.0.tgz +0 -0
  55. package/components/{tryghost-mw-error-handler-5.66.1.tgz → tryghost-mw-error-handler-5.67.0.tgz} +0 -0
  56. package/components/tryghost-mw-session-from-token-5.67.0.tgz +0 -0
  57. package/components/tryghost-mw-update-user-last-seen-5.67.0.tgz +0 -0
  58. package/components/tryghost-mw-version-match-5.67.0.tgz +0 -0
  59. package/components/tryghost-mw-vhost-5.67.0.tgz +0 -0
  60. package/components/tryghost-nql-filter-expansions-5.67.0.tgz +0 -0
  61. package/components/tryghost-oembed-service-5.67.0.tgz +0 -0
  62. package/components/tryghost-package-json-5.67.0.tgz +0 -0
  63. package/components/{tryghost-post-events-5.66.1.tgz → tryghost-post-events-5.67.0.tgz} +0 -0
  64. package/components/tryghost-post-revisions-5.67.0.tgz +0 -0
  65. package/components/tryghost-posts-service-5.67.0.tgz +0 -0
  66. package/components/tryghost-recommendations-5.67.0.tgz +0 -0
  67. package/components/tryghost-referrers-5.67.0.tgz +0 -0
  68. package/components/{tryghost-security-5.66.1.tgz → tryghost-security-5.67.0.tgz} +0 -0
  69. package/components/tryghost-session-service-5.67.0.tgz +0 -0
  70. package/components/{tryghost-settings-path-manager-5.66.1.tgz → tryghost-settings-path-manager-5.67.0.tgz} +0 -0
  71. package/components/tryghost-slack-notifications-5.67.0.tgz +0 -0
  72. package/components/tryghost-staff-service-5.67.0.tgz +0 -0
  73. package/components/tryghost-stats-service-5.67.0.tgz +0 -0
  74. package/components/tryghost-tiers-5.67.0.tgz +0 -0
  75. package/components/{tryghost-update-check-service-5.66.1.tgz → tryghost-update-check-service-5.67.0.tgz} +0 -0
  76. package/components/tryghost-verification-trigger-5.67.0.tgz +0 -0
  77. package/components/tryghost-version-notifications-data-service-5.67.0.tgz +0 -0
  78. package/components/tryghost-webmentions-5.67.0.tgz +0 -0
  79. package/content/themes/casper/assets/css/screen.css +0 -4
  80. package/content/themes/source/LICENSE +22 -0
  81. package/content/themes/source/README.md +65 -0
  82. package/content/themes/source/assets/built/screen.css +2 -0
  83. package/content/themes/source/assets/built/screen.css.map +1 -0
  84. package/content/themes/source/assets/built/source.js +2 -0
  85. package/content/themes/source/assets/built/source.js.map +1 -0
  86. package/content/themes/source/assets/css/screen.css +3206 -0
  87. package/content/themes/source/assets/fonts/eb-garamond-italic.woff2 +0 -0
  88. package/content/themes/source/assets/fonts/eb-garamond-roman.woff2 +0 -0
  89. package/content/themes/source/assets/fonts/inter-roman.woff2 +0 -0
  90. package/content/themes/source/assets/fonts/jetbrains-mono-italic.woff2 +0 -0
  91. package/content/themes/source/assets/fonts/jetbrains-mono-roman.woff2 +0 -0
  92. package/content/themes/source/assets/images/default-skin.png +0 -0
  93. package/content/themes/source/assets/images/default-skin.svg +1 -0
  94. package/content/themes/source/assets/images/preloader.gif +0 -0
  95. package/content/themes/source/assets/js/casper.js +46 -0
  96. package/content/themes/source/assets/js/dropdown.js +86 -0
  97. package/content/themes/source/assets/js/lib/imagesloaded.pkgd.min.js +7 -0
  98. package/content/themes/source/assets/js/lib/photoswipe-ui-default.min.js +4 -0
  99. package/content/themes/source/assets/js/lib/photoswipe.min.js +4 -0
  100. package/content/themes/source/assets/js/lib/reframe.min.js +1 -0
  101. package/content/themes/source/assets/js/lightbox.js +103 -0
  102. package/content/themes/source/assets/js/pagination.js +95 -0
  103. package/content/themes/source/author.hbs +43 -0
  104. package/content/themes/source/default.hbs +65 -0
  105. package/content/themes/source/gulpfile.js +174 -0
  106. package/content/themes/source/home.hbs +12 -0
  107. package/content/themes/source/index.hbs +6 -0
  108. package/content/themes/source/package.json +202 -0
  109. package/content/themes/source/page.hbs +26 -0
  110. package/content/themes/source/partials/components/cta.hbs +25 -0
  111. package/content/themes/source/partials/components/featured.hbs +14 -0
  112. package/content/themes/source/partials/components/footer.hbs +35 -0
  113. package/content/themes/source/partials/components/header-content.hbs +81 -0
  114. package/content/themes/source/partials/components/header.hbs +19 -0
  115. package/content/themes/source/partials/components/navigation.hbs +53 -0
  116. package/content/themes/source/partials/components/post-list.hbs +114 -0
  117. package/content/themes/source/partials/email-subscription.hbs +8 -0
  118. package/content/themes/source/partials/feature-image.hbs +16 -0
  119. package/content/themes/source/partials/icons/arrow.hbs +1 -0
  120. package/content/themes/source/partials/icons/avatar.hbs +1 -0
  121. package/content/themes/source/partials/icons/burger.hbs +1 -0
  122. package/content/themes/source/partials/icons/checkmark.hbs +24 -0
  123. package/content/themes/source/partials/icons/close.hbs +1 -0
  124. package/content/themes/source/partials/icons/facebook.hbs +1 -0
  125. package/content/themes/source/partials/icons/fire.hbs +3 -0
  126. package/content/themes/source/partials/icons/loader.hbs +17 -0
  127. package/content/themes/source/partials/icons/lock.hbs +5 -0
  128. package/content/themes/source/partials/icons/rss.hbs +1 -0
  129. package/content/themes/source/partials/icons/search.hbs +1 -0
  130. package/content/themes/source/partials/icons/twitter.hbs +1 -0
  131. package/content/themes/source/partials/lightbox.hbs +41 -0
  132. package/content/themes/source/partials/post-card.hbs +37 -0
  133. package/content/themes/source/partials/search-toggle.hbs +3 -0
  134. package/content/themes/source/post.hbs +76 -0
  135. package/content/themes/source/tag.hbs +22 -0
  136. package/core/built/admin/assets/admin-x-settings/{CodeEditorView-b1c6a306.mjs → CodeEditorView-1643e910.mjs} +2 -2
  137. package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +2 -2
  138. package/core/built/admin/assets/admin-x-settings/{index-02567620.mjs → index-b4c2ef5b.mjs} +2248 -2187
  139. package/core/built/admin/assets/admin-x-settings/{limit-service-bf02ec54.mjs → limit-service-c343d244.mjs} +2 -2
  140. package/core/built/admin/assets/admin-x-settings/modals-8b0aeacd.mjs +23887 -0
  141. package/core/built/admin/assets/{chunk.143.6ae91642f45fce60949c.js → chunk.143.da2301d9edb6ad0b5496.js} +5 -5
  142. package/core/built/admin/assets/{chunk.178.4842a4a973bb574d843b.js → chunk.178.efec05ab07e1e216d657.js} +4 -4
  143. package/core/built/admin/assets/{chunk.555.ba02d5a0095b4c4a7700.js → chunk.940.b09a2c2049ed9c373dd0.js} +55 -62
  144. package/core/built/admin/assets/{ghost-b24dd6efffe76ca031de95be6e91b543.js → ghost-193c98abe66483968da753e54917e87a.js} +114 -107
  145. package/core/built/admin/assets/ghost-9e454659c8c0896ed10336b640d1b1eb.css +1 -0
  146. package/core/built/admin/assets/ghost-dark-1d24186396fe74946c926faa9faa247b.css +1 -0
  147. package/core/built/admin/assets/img/themes/Source-Magazine-176385eb99561485ce6385598f7599b0.png +0 -0
  148. package/core/built/admin/assets/img/themes/Source-Newsletter-bb1a8611a326edb78f9ecb8bc1838c81.png +0 -0
  149. package/core/built/admin/assets/img/themes/Source-f29c6d6abe774ea7d5940a7431069fce.png +0 -0
  150. package/core/built/admin/assets/{vendor-5aa07b661eeb443bf7dd2c1de3b3f387.js → vendor-71d23939faaa5d1478ead73d917111b9.js} +48 -40
  151. package/core/built/admin/index.html +6 -6
  152. package/core/server/api/endpoints/recommendations.js +2 -1
  153. package/core/server/data/migrations/versions/5.67/2023-10-03-00-32-32-rollback-source-theme.js +40 -0
  154. package/core/server/data/schema/default-settings/default-settings.json +1 -1
  155. package/core/server/services/auth/setup.js +3 -3
  156. package/core/server/services/recommendations/RecommendationServiceWrapper.js +5 -4
  157. package/core/server/services/themes/storage.js +7 -7
  158. package/package.json +154 -154
  159. package/yarn.lock +221 -255
  160. package/components/tryghost-adapter-cache-memory-ttl-5.66.1.tgz +0 -0
  161. package/components/tryghost-adapter-manager-5.66.1.tgz +0 -0
  162. package/components/tryghost-announcement-bar-settings-5.66.1.tgz +0 -0
  163. package/components/tryghost-api-framework-5.66.1.tgz +0 -0
  164. package/components/tryghost-api-version-compatibility-service-5.66.1.tgz +0 -0
  165. package/components/tryghost-audience-feedback-5.66.1.tgz +0 -0
  166. package/components/tryghost-bookshelf-repository-5.66.1.tgz +0 -0
  167. package/components/tryghost-collections-5.66.1.tgz +0 -0
  168. package/components/tryghost-constants-5.66.1.tgz +0 -0
  169. package/components/tryghost-domain-events-5.66.1.tgz +0 -0
  170. package/components/tryghost-donations-5.66.1.tgz +0 -0
  171. package/components/tryghost-dynamic-routing-events-5.66.1.tgz +0 -0
  172. package/components/tryghost-email-analytics-provider-mailgun-5.66.1.tgz +0 -0
  173. package/components/tryghost-email-content-generator-5.66.1.tgz +0 -0
  174. package/components/tryghost-email-events-5.66.1.tgz +0 -0
  175. package/components/tryghost-email-suppression-list-5.66.1.tgz +0 -0
  176. package/components/tryghost-event-aware-cache-wrapper-5.66.1.tgz +0 -0
  177. package/components/tryghost-express-dynamic-redirects-5.66.1.tgz +0 -0
  178. package/components/tryghost-external-media-inliner-5.66.1.tgz +0 -0
  179. package/components/tryghost-extract-api-key-5.66.1.tgz +0 -0
  180. package/components/tryghost-i18n-5.66.1.tgz +0 -0
  181. package/components/tryghost-importer-handler-content-files-5.66.1.tgz +0 -0
  182. package/components/tryghost-importer-revue-5.66.1.tgz +0 -0
  183. package/components/tryghost-link-replacer-5.66.1.tgz +0 -0
  184. package/components/tryghost-magic-link-5.66.1.tgz +0 -0
  185. package/components/tryghost-member-events-5.66.1.tgz +0 -0
  186. package/components/tryghost-members-importer-5.66.1.tgz +0 -0
  187. package/components/tryghost-members-payments-5.66.1.tgz +0 -0
  188. package/components/tryghost-members-ssr-5.66.1.tgz +0 -0
  189. package/components/tryghost-mentions-email-report-5.66.1.tgz +0 -0
  190. package/components/tryghost-milestones-5.66.1.tgz +0 -0
  191. package/components/tryghost-minifier-5.66.1.tgz +0 -0
  192. package/components/tryghost-model-to-domain-event-interceptor-5.66.1.tgz +0 -0
  193. package/components/tryghost-mw-api-version-mismatch-5.66.1.tgz +0 -0
  194. package/components/tryghost-mw-cache-control-5.66.1.tgz +0 -0
  195. package/components/tryghost-mw-session-from-token-5.66.1.tgz +0 -0
  196. package/components/tryghost-mw-update-user-last-seen-5.66.1.tgz +0 -0
  197. package/components/tryghost-mw-version-match-5.66.1.tgz +0 -0
  198. package/components/tryghost-mw-vhost-5.66.1.tgz +0 -0
  199. package/components/tryghost-nql-filter-expansions-5.66.1.tgz +0 -0
  200. package/components/tryghost-oembed-service-5.66.1.tgz +0 -0
  201. package/components/tryghost-package-json-5.66.1.tgz +0 -0
  202. package/components/tryghost-post-revisions-5.66.1.tgz +0 -0
  203. package/components/tryghost-posts-service-5.66.1.tgz +0 -0
  204. package/components/tryghost-recommendations-5.66.1.tgz +0 -0
  205. package/components/tryghost-referrers-5.66.1.tgz +0 -0
  206. package/components/tryghost-session-service-5.66.1.tgz +0 -0
  207. package/components/tryghost-slack-notifications-5.66.1.tgz +0 -0
  208. package/components/tryghost-staff-service-5.66.1.tgz +0 -0
  209. package/components/tryghost-stats-service-5.66.1.tgz +0 -0
  210. package/components/tryghost-tiers-5.66.1.tgz +0 -0
  211. package/components/tryghost-verification-trigger-5.66.1.tgz +0 -0
  212. package/components/tryghost-version-notifications-data-service-5.66.1.tgz +0 -0
  213. package/components/tryghost-webmentions-5.66.1.tgz +0 -0
  214. package/core/built/admin/assets/admin-x-settings/modals-d2fd552b.mjs +0 -11622
  215. package/core/built/admin/assets/ghost-dark-54c925ac8f527d36132c18af7bef116e.css +0 -1
  216. package/core/built/admin/assets/ghost-f1a535bfec933b08a7a45f607cc245b1.css +0 -1
  217. /package/core/built/admin/assets/{chunk.555.ba02d5a0095b4c4a7700.js.LICENSE.txt → chunk.940.b09a2c2049ed9c373dd0.js.LICENSE.txt} +0 -0
@@ -0,0 +1,114 @@
1
+ {{!--
2
+ Parameters:
3
+ * feed (index, home, archive, recent)
4
+ * postFeedStyle (list, grid)
5
+ * showTitle (true, false)
6
+ * showSidebar (true, false)
7
+ --}}
8
+
9
+ <section class="gh-container is-{{#match postFeedStyle "List"}}list{{else}}grid{{/match}}{{#if showSidebar}} has-sidebar{{/if}}{{#unless @custom.show_images_in_feed}} no-image{{/unless}} gh-outer">
10
+ <div class="gh-container-inner gh-inner">
11
+
12
+ {{#if showTitle}}
13
+ <h2 class="gh-container-title">
14
+ {{#unless title}}Latest{{else}}{{title}}{{/unless}}
15
+ </h2>
16
+ {{/if}}
17
+
18
+ <main class="gh-main">
19
+ <div class="gh-feed">
20
+
21
+ {{!-- Homepage --}}
22
+ {{#match feed "home"}}
23
+ {{#match @custom.header_style "Highlight"}}
24
+ {{#if @custom.show_featured_posts}}
25
+ {{#match posts.length ">=" 4}}
26
+ {{#get "posts" include="authors" limit="16"}}
27
+ {{#foreach posts from="5" limit="12"}}
28
+ {{> "post-card" lazyLoad=true}}
29
+ {{/foreach}}
30
+ {{/get}}
31
+ {{/match}}
32
+ {{else}}
33
+ {{#match posts.length ">=" 10}}
34
+ {{#get "posts" include="authors" limit="22"}}
35
+ {{#foreach posts from="11" limit="12"}}
36
+ {{> "post-card" lazyLoad=true}}
37
+ {{/foreach}}
38
+ {{/get}}
39
+ {{/match}}
40
+ {{/if}}
41
+ {{else match @custom.header_style "Magazine"}}
42
+ {{#match posts.length ">=" 7}}
43
+ {{#get "posts" include="authors" limit="19"}}
44
+ {{#foreach posts from="8" limit="12"}}
45
+ {{> "post-card" lazyLoad=true}}
46
+ {{/foreach}}
47
+ {{/get}}
48
+ {{/match}}
49
+ {{else}}
50
+ {{#get "posts" include="authors" limit="12"}}
51
+ {{#foreach posts}}
52
+ {{> "post-card" lazyLoad=true}}
53
+ {{/foreach}}
54
+ {{/get}}
55
+ {{/match}}
56
+ {{/match}}
57
+
58
+ {{!-- All posts --}}
59
+ {{#match feed "index"}}
60
+ {{#match pagination.page 2}}
61
+ {{#get "posts" include="authors" limit=@config.posts_per_page as |recent|}}
62
+ {{#foreach recent}}
63
+ {{> "post-card"}}
64
+ {{/foreach}}
65
+ {{/get}}
66
+ {{/match}}
67
+ {{#foreach posts}}
68
+ {{> "post-card" lazyLoad=true}}
69
+ {{/foreach}}
70
+ {{/match}}
71
+
72
+ {{!-- Tag and author pages --}}
73
+ {{#match feed "archive"}}
74
+ {{#foreach posts}}
75
+ {{> "post-card" lazyLoad=true}}
76
+ {{/foreach}}
77
+ {{/match}}
78
+
79
+ </div>
80
+ </main>
81
+
82
+ {{#if showSidebar}}
83
+ <aside class="gh-sidebar">
84
+ <section class="gh-about">
85
+ {{#if @site.icon}}
86
+ <img class="gh-about-icon" src="{{@site.icon}}" alt="{{@site.title}}" loading="lazy">
87
+ {{/if}}
88
+ <h3 class="gh-about-title is-title">{{@site.title}}</h3>
89
+ {{#if @site.description}}
90
+ <p class="gh-about-description is-body">{{@site.description}}</p>
91
+ {{/if}}
92
+ {{#if @site.members_enabled}}
93
+ {{#unless @member}}
94
+ <button class="gh-button" data-portal="signup">Subscribe</button>
95
+ {{else}}
96
+ {{#if @site.paid_members_enabled}}
97
+ {{#unless @member.paid}}
98
+ <button class="gh-button" data-portal="upgrade">Upgrade</button>
99
+ {{/unless}}
100
+ {{/if}}
101
+ {{/unless}}
102
+ {{/if}}
103
+ </section>
104
+ </aside>
105
+ {{/if}}
106
+
107
+ {{#match pagination.pages ">" 1}}
108
+ <div class="gh-more is-title">
109
+ <a href="/page/2">See all {{> "icons/arrow"}}</a>
110
+ </div>
111
+ {{/match}}
112
+
113
+ </div>
114
+ </section>
@@ -0,0 +1,8 @@
1
+ <form class="gh-form" data-members-form>
2
+ <input class="gh-form-input" type="email" placeholder="jamie@example.com" required data-members-email>
3
+ <button class="gh-button" type="submit">
4
+ <span><span>Subscribe</span> {{> "icons/arrow"}}</span>
5
+ {{> "icons/loader"}}
6
+ {{> "icons/checkmark"}}
7
+ </button>
8
+ </form>
@@ -0,0 +1,16 @@
1
+ {{#if feature_image}}
2
+ <figure class="gh-article-image">
3
+ <img
4
+ srcset="{{img_url feature_image size="s"}} 320w,
5
+ {{img_url feature_image size="m"}} 600w,
6
+ {{img_url feature_image size="l"}} 960w,
7
+ {{img_url feature_image size="xl"}} 1200w,
8
+ {{img_url feature_image size="xxl"}} 2000w"
9
+ src="{{img_url feature_image size="xl"}}"
10
+ alt="{{title}}"
11
+ >
12
+ {{#if feature_image_caption}}
13
+ <figcaption>{{feature_image_caption}}</figcaption>
14
+ {{/if}}
15
+ </figure>
16
+ {{/if}}
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="currentColor" viewBox="0 0 256 256"><path d="M224.49,136.49l-72,72a12,12,0,0,1-17-17L187,140H40a12,12,0,0,1,0-24H187L135.51,64.48a12,12,0,0,1,17-17l72,72A12,12,0,0,1,224.49,136.49Z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="M3.513 18.998C4.749 15.504 8.082 13 12 13s7.251 2.504 8.487 5.998C18.47 21.442 15.417 23 12 23s-6.47-1.558-8.487-4.002zM12 12c2.21 0 4-2.79 4-5s-1.79-4-4-4-4 1.79-4 4 1.79 5 4 5z" fill="#FFF"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" viewBox="0 0 256 256"><path d="M224,128a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM40,72H216a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16ZM216,184H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"></path></svg>
@@ -0,0 +1,24 @@
1
+ <svg class="checkmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52">
2
+ <path class="checkmark__check" fill="none" d="M14.1 27.2l7.1 7.2 16.7-16.8"/>
3
+ <style>
4
+ .checkmark {
5
+ width: 40px;
6
+ height: 40px;
7
+ display: block;
8
+ stroke-width: 2.5;
9
+ stroke: currentColor;
10
+ stroke-miterlimit: 10;
11
+ }
12
+
13
+ .checkmark__check {
14
+ transform-origin: 50% 50%;
15
+ stroke-dasharray: 48;
16
+ stroke-dashoffset: 48;
17
+ animation: stroke .3s cubic-bezier(0.650, 0.000, 0.450, 1.000) forwards;
18
+ }
19
+
20
+ @keyframes stroke {
21
+ 100% { stroke-dashoffset: 0; }
22
+ }
23
+ </style>
24
+ </svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" viewBox="0 0 256 256"><path d="M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor"><path d="M23.9981 11.9991C23.9981 5.37216 18.626 0 11.9991 0C5.37216 0 0 5.37216 0 11.9991C0 17.9882 4.38789 22.9522 10.1242 23.8524V15.4676H7.07758V11.9991H10.1242V9.35553C10.1242 6.34826 11.9156 4.68714 14.6564 4.68714C15.9692 4.68714 17.3424 4.92149 17.3424 4.92149V7.87439H15.8294C14.3388 7.87439 13.8739 8.79933 13.8739 9.74824V11.9991H17.2018L16.6698 15.4676H13.8739V23.8524C19.6103 22.9522 23.9981 17.9882 23.9981 11.9991Z"/></svg>
@@ -0,0 +1,3 @@
1
+ <svg width="16" height="17" viewBox="0 0 16 17" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M4.49365 4.58752C3.53115 6.03752 2.74365 7.70002 2.74365 9.25002C2.74365 10.6424 3.29678 11.9778 4.28134 12.9623C5.26591 13.9469 6.60127 14.5 7.99365 14.5C9.38604 14.5 10.7214 13.9469 11.706 12.9623C12.6905 11.9778 13.2437 10.6424 13.2437 9.25002C13.2437 6.00002 10.9937 3.50002 9.16865 1.68127L6.99365 6.25002L4.49365 4.58752Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
3
+ </svg>
@@ -0,0 +1,17 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24">
2
+ <g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
3
+ <g class="nc-loop-dots-4-24-icon-o">
4
+ <circle cx="4" cy="12" r="3"></circle>
5
+ <circle cx="12" cy="12" r="3"></circle>
6
+ <circle cx="20" cy="12" r="3"></circle>
7
+ </g>
8
+ <style data-cap="butt">
9
+ .nc-loop-dots-4-24-icon-o{--animation-duration:0.8s}
10
+ .nc-loop-dots-4-24-icon-o *{opacity:.4;transform:scale(.75);animation:nc-loop-dots-4-anim var(--animation-duration) infinite}
11
+ .nc-loop-dots-4-24-icon-o :nth-child(1){transform-origin:4px 12px;animation-delay:-.3s;animation-delay:calc(var(--animation-duration)/-2.666)}
12
+ .nc-loop-dots-4-24-icon-o :nth-child(2){transform-origin:12px 12px;animation-delay:-.15s;animation-delay:calc(var(--animation-duration)/-5.333)}
13
+ .nc-loop-dots-4-24-icon-o :nth-child(3){transform-origin:20px 12px}
14
+ @keyframes nc-loop-dots-4-anim{0%,100%{opacity:.4;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
15
+ </style>
16
+ </g>
17
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M16.25 6.875H3.75C3.40482 6.875 3.125 7.15482 3.125 7.5V16.25C3.125 16.5952 3.40482 16.875 3.75 16.875H16.25C16.5952 16.875 16.875 16.5952 16.875 16.25V7.5C16.875 7.15482 16.5952 6.875 16.25 6.875Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
3
+ <path d="M7.1875 6.875V4.0625C7.1875 3.31658 7.48382 2.60121 8.01126 2.07376C8.53871 1.54632 9.25408 1.25 10 1.25C10.7459 1.25 11.4613 1.54632 11.9887 2.07376C12.5162 2.60121 12.8125 3.31658 12.8125 4.0625V6.875" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
4
+ <path d="M10 13.125C10.6904 13.125 11.25 12.5654 11.25 11.875C11.25 11.1846 10.6904 10.625 10 10.625C9.30964 10.625 8.75 11.1846 8.75 11.875C8.75 12.5654 9.30964 13.125 10 13.125Z" fill="currentColor"></path>
5
+ </svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><circle cx="6.18" cy="17.82" r="2.18"/><path d="M4 4.44v2.83c7.03 0 12.73 5.7 12.73 12.73h2.83c0-8.59-6.97-15.56-15.56-15.56zm0 5.66v2.83c3.9 0 7.07 3.17 7.07 7.07h2.83c0-5.47-4.43-9.9-9.9-9.9z"/></svg>
@@ -0,0 +1 @@
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>
@@ -0,0 +1 @@
1
+ <svg viewBox="0 0 24 24" fill="currentColor"><g><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"></path></g></svg>
@@ -0,0 +1,41 @@
1
+ <div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
2
+ <div class="pswp__bg"></div>
3
+
4
+ <div class="pswp__scroll-wrap">
5
+ <div class="pswp__container">
6
+ <div class="pswp__item"></div>
7
+ <div class="pswp__item"></div>
8
+ <div class="pswp__item"></div>
9
+ </div>
10
+
11
+ <div class="pswp__ui pswp__ui--hidden">
12
+ <div class="pswp__top-bar">
13
+ <div class="pswp__counter"></div>
14
+
15
+ <button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
16
+ <button class="pswp__button pswp__button--share" title="Share"></button>
17
+ <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>
18
+ <button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
19
+
20
+ <div class="pswp__preloader">
21
+ <div class="pswp__preloader__icn">
22
+ <div class="pswp__preloader__cut">
23
+ <div class="pswp__preloader__donut"></div>
24
+ </div>
25
+ </div>
26
+ </div>
27
+ </div>
28
+
29
+ <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
30
+ <div class="pswp__share-tooltip"></div>
31
+ </div>
32
+
33
+ <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)"></button>
34
+ <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)"></button>
35
+
36
+ <div class="pswp__caption">
37
+ <div class="pswp__caption__center"></div>
38
+ </div>
39
+ </div>
40
+ </div>
41
+ </div>
@@ -0,0 +1,37 @@
1
+ <article class="gh-card {{post_class}}{{#unless @custom.show_images_in_feed}} no-image{{/unless}}">
2
+ <a class="gh-card-link" href="{{url}}">
3
+ {{#if feature_image}}
4
+ <figure class="gh-card-image">
5
+ <img
6
+ srcset="{{img_url feature_image size="xs" format="webp"}} 160w,
7
+ {{img_url feature_image size="s" format="webp"}} 320w,
8
+ {{img_url feature_image size="m" format="webp"}} 600w,
9
+ {{img_url feature_image size="l" format="webp"}} 960w,
10
+ {{img_url feature_image size="xl" format="webp"}} 1200w,
11
+ {{img_url feature_image size="xxl" format="webp"}} 2000w"
12
+ sizes="{{#if imageSizes}}{{imageSizes}}{{else}}320px{{/if}}"
13
+ src="{{img_url feature_image size="m"}}"
14
+ alt="{{#if feature_image_alt}}{{feature_image_alt}}{{else}}{{title}}{{/if}}"
15
+ {{#if lazyLoad}}loading="lazy"{{/if}}
16
+ >
17
+ </figure>
18
+ {{/if}}
19
+ <div class="gh-card-wrapper">
20
+ {{#if primary_tag}}
21
+ <p class="gh-card-tag">{{primary_tag.name}}</p>
22
+ {{/if}}
23
+ <h3 class="gh-card-title is-title">{{title}}</h3>
24
+ {{#if excerpt}}
25
+ <p class="gh-card-excerpt is-body">{{excerpt}}</p>
26
+ {{/if}}
27
+ <footer class="gh-card-meta"><!--
28
+ -->{{#if @custom.show_author}}
29
+ <span class="gh-card-author">By {{#foreach authors}}{{#if @first}}{{name}}{{else}}, {{name}}{{/if}}{{/foreach}}</span>
30
+ {{/if}}
31
+ {{#if @custom.show_publish_date}}
32
+ <time class="gh-card-date" datetime="{{date format="YYYY-MM-DD"}}">{{date}}</time>
33
+ {{/if}}<!--
34
+ --></footer>
35
+ </div>
36
+ </a>
37
+ </article>
@@ -0,0 +1,3 @@
1
+ <button class="gh-search gh-icon-button" aria-label="Search this site" data-ghost-search>
2
+ {{> "icons/search"}}
3
+ </button>
@@ -0,0 +1,76 @@
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
+
8
+ <article class="gh-article {{post_class}}">
9
+
10
+ <header class="gh-article-header gh-canvas">
11
+
12
+ {{#if primary_tag}}
13
+ <a class="gh-article-tag" href="{{primary_tag.url}}">{{primary_tag.name}}</a>
14
+ {{/if}}
15
+ <h1 class="gh-article-title is-title">{{title}}</h1>
16
+ {{#if custom_excerpt}}
17
+ <p class="gh-article-excerpt is-body">{{custom_excerpt}}</p>
18
+ {{/if}}
19
+
20
+ <div class="gh-article-meta">
21
+ <div class="gh-article-author-image">
22
+ {{#foreach authors}}
23
+ {{#if profile_image}}
24
+ <a href="{{url}}">
25
+ <img class="author-profile-image" src="{{img_url profile_image size="xs"}}" alt="{{name}}" />
26
+ </a>
27
+ {{else}}
28
+ <a href="{{url}}">{{> "icons/avatar"}}</a>
29
+ {{/if}}
30
+ {{/foreach}}
31
+ </div>
32
+ <div class="gh-article-meta-wrapper">
33
+ <h4 class="gh-article-author-name">{{authors}}</h4>
34
+ <div class="gh-article-meta-content">
35
+ <time class="gh-article-meta-date" datetime="{{date format="YYYY-MM-DD"}}">{{date}}</time>
36
+ {{#if reading_time}}
37
+ <span class="gh-article-meta-length"><span class="bull">—</span> {{reading_time}}</span>
38
+ {{/if}}
39
+ </div>
40
+ </div>
41
+ </div>
42
+
43
+ {{> "feature-image"}}
44
+
45
+ </header>
46
+
47
+ <section class="gh-content gh-canvas is-body">
48
+ {{content}}
49
+ </section>
50
+
51
+ </article>
52
+
53
+ {{#if comments}}
54
+ <div class="gh-comments gh-canvas">
55
+ {{comments}}
56
+ </div>
57
+ {{/if}}
58
+
59
+ </main>
60
+
61
+ {{/post}}
62
+
63
+ {{#get "posts" include="authors" filter="id:-{{post.id}}" limit="4" as |next|}}
64
+ {{#if next}}
65
+ <section class="gh-container is-grid gh-outer">
66
+ <div class="gh-container-inner gh-inner">
67
+ <h2 class="gh-container-title">Read more</h2>
68
+ <div class="gh-feed">
69
+ {{#foreach next}}
70
+ {{> "post-card" lazyLoad=true}}
71
+ {{/foreach}}
72
+ </div>
73
+ </div>
74
+ </section>
75
+ {{/if}}
76
+ {{/get}}
@@ -0,0 +1,22 @@
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 gh-outer">
5
+
6
+ {{#tag}}
7
+ <section class="gh-archive{{#if feature_image}} has-image{{/if}}{{#if @custom.show_publication_info_sidebar}} has-sidebar{{/if}} gh-inner">
8
+ <div class="gh-archive-inner">
9
+ <header class="gh-archive-wrapper">
10
+ <h1 class="gh-article-title is-title">{{name}}</h1>
11
+ {{#if description}}
12
+ <p class="gh-article-excerpt">{{description}}</p>
13
+ {{/if}}
14
+ </header>
15
+ {{> "feature-image"}}
16
+ </div>
17
+ </section>
18
+ {{/tag}}
19
+
20
+ {{> "components/post-list" feed="archive" postFeedStyle=@custom.post_feed_style showTitle=false showSidebar=@custom.show_publication_info_sidebar}}
21
+
22
+ </main>
@@ -1,4 +1,4 @@
1
- import { b as ke, d as W, aP as wt, bp as qn, C as Rt, bq as Hn, j as P, br as Vn, E as zn, y as Un, P as $n, J as Gn, H as Kn, G as Jn } from "./index-02567620.mjs";
1
+ import { b as ke, d as W, a_ as wt, bA as qn, C as Rt, bB as Hn, j as P, bC as Vn, E as zn, y as Un, P as $n, J as Gn, H as Kn, G as Jn } from "./index-b4c2ef5b.mjs";
2
2
  import { E as p, F as ue, v as Ee, S as we, o as d, w as qe, C as _n, x as jn, y as Tt, z as Ot, A as Se, B as It, G as Pt, H as Wt, J as $e, K as Xe, M as w, O as Z, g as et, b as Ge, Q as Qn, R as ee, V as Ft, U as y, W as Yn, X as Zn, Y as ae, Z as M, _ as Xn, $ as er, a0 as tt, a1 as ce, a2 as tr, a3 as nr, a4 as rr, a5 as or, a6 as ir, a7 as sr, a8 as lr, a9 as ar, aa as cr, ab as hr, ac as ur, ad as fr, ae as dr, af as mr, ag as Nt, ah as gr, ai as pr, aj as yr, ak as xr, al as kr, am as br, an as qt, ao as Sr, ap as Cr, t as f, aq as vr } from "./index-9cc1df42.mjs";
3
3
  const Ar = (t) => {
4
4
  let { state: e } = t, r = e.doc.lineAt(e.selection.main.from), n = rt(t.state, r.from);
@@ -2350,4 +2350,4 @@ const Ni = p.theme({
2350
2350
  export {
2351
2351
  Vi as default
2352
2352
  };
2353
- //# sourceMappingURL=CodeEditorView-b1c6a306.mjs.map
2353
+ //# sourceMappingURL=CodeEditorView-1643e910.mjs.map