Compare commits

...

726 Commits

Author SHA1 Message Date
ViViDboarder e1cf969048 Use latest ubuntu runner 2023-07-11 13:54:09 -07:00
ViViDboarder 416a1194c6 Replace @blog with @site 2023-07-11 12:12:56 -07:00
ViViDboarder 5fcdb152eb Merge remote-tracking branch 'upstream/main' 2023-07-11 12:12:28 -07:00
Sanne de Vries d3483498d4
Added support for hidden title and feature image on pages (#943)
* Added support for hidden title and feature image on pages

Refs https://github.com/TryGhost/Product/issues/3568

* Switched from match to if helper for show_title_and_feature_image

Refs https://github.com/TryGhost/Product/issues/3568
2023-07-10 12:19:00 +02:00
Sodbileg Gansukh 4ae190c1a6 v5.5.3 2023-07-06 09:46:25 +08:00
Sodbileg Gansukh 22c83f9128 Fixed tag and author description character limit 2023-07-06 09:46:03 +08:00
Sodbileg Gansukh 10fd2f3a1c v5.5.2 2023-07-03 18:52:41 +08:00
Sodbileg Gansukh b1a10873ff Fixed nested list spacing 2023-07-03 18:03:47 +08:00
Sodbileg Gansukh 0e76b5abef Removed unnecessary JS hack for nested list 2023-07-03 17:37:39 +08:00
Sodbileg Gansukh d75ffc78ac Added nested list support 2023-06-28 18:25:13 +08:00
Sodbileg Gansukh fa76f77006 Consistent syntax 2023-06-27 13:01:12 +08:00
Rafael Corrêa Gomes dda827ded3 Head > Adding preload 2023-06-27 12:59:56 +08:00
Sanne de Vries bdf150658e v5.5.1 2023-06-22 21:19:57 +02:00
Sanne de Vries 2fafe722d1 Added grid to full width cards with wide content
Refs https://github.com/TryGhost/Team/issues/3459
2023-06-22 21:17:03 +02:00
Sodbileg Gansukh 0721600075 v5.5.0 2023-06-22 17:17:43 +08:00
Sodbileg Gansukh a18367200f Updated post content grid for additional widths 2023-06-22 16:37:59 +08:00
Sodbileg Gansukh 294b1e30e5 v5.4.12 2023-06-20 12:09:25 +08:00
Sodbileg Gansukh aa8ca0794b Fixed main nav background color in dark mode
closes https://github.com/TryGhost/Casper/issues/942
2023-06-20 12:09:08 +08:00
Sodbileg Gansukh ba0b3d08cc v5.4.11 2023-05-09 13:30:12 +08:00
Sodbileg Gansukh 50d5727f77 Fixed mobile menu background in dark mode
no issues

- when there's no publication cover and the color scheme is in dark mode, the mobile menu had white background
- this fixes the issue by adding explicit dark mode rules to the styles
2023-05-09 13:27:37 +08:00
Sodbileg Gansukh 23f7c30365 v5.4.10 2023-04-21 09:49:57 +01:00
Sodbileg Gansukh 8ff3c6fcf1 Fixed main nav to make it work with the announcement bar 2023-04-21 09:49:37 +01:00
Sodbileg Gansukh 5c7fb39df9 v5.4.9 2023-04-10 13:42:17 +08:00
Sodbileg Gansukh 4851606d9d Rebuilt assets 2023-04-10 13:41:59 +08:00
Rob Leslie afca9cb27e Fix problem showing dropdown after window resize
When the browser window is resized, a new click event listener is added
to the window but the old one is not removed. The old one ends up
preventing the newly-made dropdown from opening.

Fix this by remembering the click event listener function added to the
window, and remove it before making the new dropdown after a window
resize.
2023-04-10 13:40:33 +08:00
Sodbileg Gansukh b56bec2cb8 Fixed header action background color for smaller screens
closes #934

- the accent color is used for the header background, so we don't need to add explicit dark mode color to the action on mobile screens
2023-04-10 13:24:11 +08:00
Sodbileg Gansukh 0c4164c5bd v5.4.8 2023-03-28 16:01:50 +08:00
Sodbileg Gansukh e6326eadf9 Added a class name to the powered by text
no issues

- our other themes have this class, and this makes it consistent across over all offcial themes
2023-03-28 16:01:24 +08:00
renovate[bot] 3ed94d68fa Update dependency gscan to v4.36.1 2023-03-07 09:25:32 +01:00
Sodbileg Gansukh 505503a63b v5.4.7 2023-03-01 13:54:29 +08:00
Sodbileg Gansukh bd3fc7c2af Fixed textarea color in dark mode 2023-03-01 13:53:58 +08:00
Sodbileg Gansukh 5e0f765852 v5.4.6 2023-02-28 13:57:36 +08:00
Sodbileg Gansukh 4293dab0a7 Fixed burger menu icon visibility on dark mode
refs #925
2023-02-28 13:57:05 +08:00
Cory f00918589f Update comment grammar 2023-02-27 17:13:31 +08:00
Nicholas Fasching 0200889148 Fix Table of Contents Numbering in screen.css 2023-02-27 15:39:25 +08:00
Mark Stosberg 248c122f86 re-add aria-label to search button for screen readers
This was added by https://github.com/TryGhost/Casper/pull/896 

but then appears to have been accidentally reverted in the merge of https://github.com/TryGhost/Casper/pull/906
2023-02-27 15:10:09 +08:00
Daniel Lockyer a007415d89
v5.4.5 2023-01-20 09:50:01 +01:00
Peter Zimon 31188ce3c0 Fixed author's cover image not showing up
no refs.

The author's cover image didn't show up on the theme because the author template used `feature_image` instead of `cover_image`.
2023-01-19 09:51:08 +01:00
Sodbileg Gansukh e1967f8546 v5.4.4 2022-12-16 12:35:19 +08:00
Sodbileg Gansukh 5259d551f5 Fixed mobile navbar height 2022-12-16 12:33:11 +08:00
Sodbileg Gansukh 115d1d820c Fixed sign in link placement on mobile screen
fixes #913
2022-12-16 12:12:22 +08:00
Sodbileg Gansukh 81e4dfd52d Minor spacing adjustment 2022-12-16 12:02:08 +08:00
Sodbileg Gansukh cc4d828575 Fixed logo visibility when the header is hidden 2022-12-16 11:57:59 +08:00
Sodbileg Gansukh ebb2538215 v5.4.3 2022-12-15 10:12:38 +08:00
Sodbileg Gansukh 3767e3d994 Adjusted the pagination to dark mode 2022-12-15 10:00:58 +08:00
Sodbileg Gansukh 6d290485dc Fixed account button background 2022-12-15 09:55:41 +08:00
Sodbileg Gansukh 7da41d344f Added sign in link to the navbar 2022-12-14 16:42:46 +08:00
Sodbileg Gansukh 55a90a9252 v5.4.2 2022-12-12 14:55:31 +08:00
Sodbileg Gansukh b20dceae22 Rebuilt assets 2022-12-12 14:55:02 +08:00
Sodbileg Gansukh 88ca182a58 Added regular pagination option
Casper comes with infinite scrolling by default. This update makes it possible to go with the default pagination style when the <html> element has a class no-infinite-scroll.
2022-12-08 12:50:24 +08:00
Sodbileg Gansukh 140632b885 fixes #910
When the publication cover is turned off and the header style is set to hidden, the header section shouldn't be taking much space like it does regularly.
2022-12-07 15:29:23 +08:00
Sodbileg Gansukh 8f2b806673 v5.4.1 2022-11-14 11:05:28 +08:00
Sodbileg Gansukh 4af198a19f Fixed dropdown menu width 2022-11-14 10:42:10 +08:00
Sodbileg Gansukh f846ceb7ed Fixed minor spacing issues on the header 2022-11-14 10:37:50 +08:00
tmlmt 7390c17a26 Fix for intended location of search icon 2022-11-14 10:31:51 +08:00
Sodbileg Gansukh 55d5345800 v5.4.0 2022-11-11 11:31:39 +08:00
Sodbileg Gansukh cf30adacce
Added navbar options (#906) 2022-11-11 11:30:32 +08:00
Lucas 38426cd9e6
Added aria-label to search button (#896) 2022-10-31 16:01:42 +08:00
Sodbileg Gansukh c7713df88f v5.3.2 2022-10-04 14:43:34 +08:00
Sodbileg Gansukh e6fdb4bfa3 Excluded GitHub Gist table from being styled
fixes #895
2022-10-04 14:31:38 +08:00
Jérôme Gamez 657bb8f986 Add `me` relation to social links 2022-09-12 12:57:24 +08:00
Sodbileg Gansukh 005211ff8f Remove ununsed file 2022-09-01 11:36:01 +08:00
Sodbileg Gansukh e2096ee731 v5.3.1 2022-08-16 10:54:22 +08:00
Sodbileg Gansukh 20ced95885 Fix search icon placement
fixes #894
2022-08-16 10:54:04 +08:00
Sodbileg Gansukh 2aaf7441af v5.3.0 2022-08-12 21:32:28 +08:00
Sodbileg Gansukh d687d0f099
Add comments support (#893)
* Added comments to theme

* Cleanup

* Updated spacing and typography

* Removed bottom border

* Added comment counter

* Updated theme name and post template

* Added search support

* Compiled css for search

* Removed the border and brackets for comment count

* Moved the comments helper into the content block so it gets the same paddings at narrow viewports

* Package version bump

* Updated comments helper in post template

* Final tweaks for the comments support

* Revert the package info

* Update {{comment_count}} helper usage

The helper now outputs a span wrapper by default, so we won't have to add a wrapper in the theme

Co-authored-by: Peter Zimon <peter.zimon@gmail.com>
Co-authored-by: Sanne de Vries <sannedv@protonmail.com>
Co-authored-by: James Morris <moreofmorris@users.noreply.github.com>
2022-08-12 21:30:06 +08:00
renovate[bot] 96f69f8c07
Update dependency gscan to v4.34.0 (#884)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-08-08 16:31:53 +08:00
renovate[bot] 4808700c0f
Update dependency @tryghost/release-utils to v0.8.1 (#886)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-08-08 16:30:45 +08:00
Sodbileg Gansukh 6459992d9a Update screenshot 2022-08-08 10:57:04 +08:00
Sodbileg Gansukh b28258d0c8 v5.2.3 2022-08-02 14:23:57 +08:00
Sodbileg Gansukh f3c0526ea5 Increase the width of header on author and tag page
The width used to be equal to one post card width and it wasn't enough for longer author name and description.
2022-07-28 12:37:32 +08:00
Sodbileg Gansukh 129a578751 Fix author profile social link hover color on dark mode 2022-07-28 12:35:23 +08:00
Sodbileg Gansukh 1b3541ef2a v5.2.2 2022-07-26 10:23:06 +08:00
Sodbileg Gansukh 664afdb158 Rebuild assets 2022-07-26 10:22:49 +08:00
Sodbileg Gansukh d386ab090f Update Ghost version compatibility default value 2022-07-20 12:18:01 +08:00
renovate[bot] c6411dbf41
Update dependency gscan to v4.31.2 (#851)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-07-19 16:14:22 +08:00
renovate[bot] 7eb472ab81
Update dependency gulp-postcss to v9.0.1 (#815)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-07-19 16:13:15 +08:00
renovate[bot] ae7b6e1022
Update dependency inquirer to v8.2.4 (#806)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-07-19 16:12:28 +08:00
renovate[bot] b74032835f
Update dependency postcss to v8.2.13 [SECURITY] (#805)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-07-19 16:10:33 +08:00
renovate[bot] eab9e1ae0f
Update dependency autoprefixer to v10.4.7 (#796)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-07-19 16:09:58 +08:00
renovate[bot] 873566a24c
Update dependency @tryghost/release-utils to v0.8.0 (#793)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-07-19 16:02:59 +08:00
renovate[bot] 1ade4c8816
Update CSS preprocessors (#797)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-07-19 16:01:28 +08:00
Sodbileg Gansukh 245969800d Rebuild assets 2022-07-19 15:54:01 +08:00
snake db37f3caa8
Fix author profile location is dark color in dark mode (#874) 2022-07-19 15:52:59 +08:00
Sodbileg Gansukh a15e9bda40 v5.2.1 2022-07-14 15:17:44 +08:00
Sodbileg Gansukh ffcbc42d13 Fix search icon spacing 2022-07-14 15:16:32 +08:00
Sodbileg Gansukh d373d926fa v5.2.0 2022-07-12 19:15:38 +08:00
Sodbileg Gansukh 8699a22019 Add search attribute 2022-07-12 19:14:29 +08:00
Sodbileg Gansukh eff8d360ba Add search support 2022-07-12 19:14:29 +08:00
Sodbileg Gansukh 3e7ca9cb36 v5.1.5 2022-07-04 19:02:25 +08:00
Sodbileg Gansukh b5297f16d7 Rebuild assets 2022-07-04 19:02:07 +08:00
Jérôme Gamez ccf82ec6c1 Let social links inherit their color 2022-07-04 15:12:36 +08:00
Sodbileg Gansukh d9d70e7010 v5.1.4 2022-06-03 17:07:58 +08:00
Sodbileg Gansukh 52663e9be7 Fix unexpected cropping in grid layout 2022-06-03 17:07:38 +08:00
Sodbileg Gansukh d1b1d383f5 v5.1.3 2022-06-01 19:43:57 +08:00
Sodbileg Gansukh cf50364c6d Fix members only post indicator visibility when logged in 2022-06-01 19:43:34 +08:00
Sodbileg Gansukh 22e3f69aed v5.1.2 2022-05-31 16:18:53 +08:00
Sodbileg Gansukh d1ac1b8c2c Distinguish members and paid-members only post indicators 2022-05-31 13:50:54 +08:00
Sodbileg Gansukh 45bc14f08d v5.1.1 2022-05-27 18:19:39 +08:00
Sodbileg Gansukh e27ea96779 Fix blurry tag image 2022-05-27 18:19:14 +08:00
Sodbileg Gansukh e51c1aff42 v5.1.0 2022-05-27 15:13:32 +08:00
Sodbileg Gansukh d00647009c Fix post access indicator background 2022-05-27 15:10:47 +08:00
Sodbileg Gansukh c75b67cf5d Fix author avatar in dark mode 2022-05-27 15:01:51 +08:00
Sodbileg Gansukh 9ebb26559a Auto dark mode 2022-05-27 14:46:30 +08:00
Sodbileg Gansukh 0e78d9ed40 Fix recent posts alignment 2022-05-26 17:41:59 +08:00
Sodbileg Gansukh 08b3054ada Hover effect 2022-05-26 16:25:05 +08:00
Sodbileg Gansukh f5cb9a73d0 Fix featured post indicator layout shifting 2022-05-26 16:19:59 +08:00
Sodbileg Gansukh e27f2190d6 Add conditions to check if members feature is enabled 2022-05-26 16:08:10 +08:00
Sodbileg Gansukh c205947374 Fix table element selector 2022-05-26 15:55:16 +08:00
Sodbileg Gansukh 628a32ba96 Rename has-cover-image body class 2022-05-26 14:33:06 +08:00
Sodbileg Gansukh 0bf84b2b80 Post access indicator 2022-05-26 14:31:14 +08:00
Sodbileg Gansukh 7a86c6fd92 Show the reading time separate only if it exists 2022-05-26 13:56:10 +08:00
Sodbileg Gansukh cfd767be88 Social links 2022-05-26 13:44:38 +08:00
Sodbileg Gansukh 4461d5e2f8 Featured post indicator 2022-05-26 13:31:16 +08:00
Sodbileg Gansukh 9efff7d6fa v5.0.0 2022-05-20 21:51:00 +08:00
Sodbileg Gansukh 358f3d6d35 Archive template spacing 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh 4e30aff168 Minor dark mode fix 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh 362a4995a2 Page template specific fixes 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh b0dfa11ff0 Polishing 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh 508bbf1fb0 Spacing, spacing and spacing 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh a0cedfe23e Rename @custom.site_logo_in_main_navigation 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh 1076078f8b Update ghost version 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh fe257987ce More spacing issue fixes 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh 83669da41c Minor thing 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh be6943780d Remove auto dark mode 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh 1f7cd51245 Minor detail adjustments 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh 082cadf640 Rename recent posts setting 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh c74be0e346 Post image style setting 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh 5fc101fb2c Layout settings cleanup 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh 6439992db2 Fix wrong conditions for @custom.site_logo_in_main_navigation 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh 21c6f59a61 Header settings cleanup 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh 5424c465fb Settings cleanup 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh 994a2287a2 List layout 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh 6236067373 Minor adjustments 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh 68c6224a92 Mobile screen refinement 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh 838120323a More theme settings cleanup 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh 98f7f53119 Post template 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh d9f92dfe89 Author and tag templates 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh b811b72333 Post layouts 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh 6c922fca35 Cleanup header style 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh 4c8ccde081 Header option 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh 5672c0b6c8 Post card 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh f74e9241bb Header 2022-05-20 21:49:12 +08:00
Sodbileg Gansukh ff4e4226c0 v4.7.5 2022-05-02 17:44:06 +08:00
Sodbileg Gansukh 9a09ff41c3 Add a class name to site description 2022-05-02 17:43:02 +08:00
Sodbileg Gansukh f41761e0ad v4.7.4 2022-04-08 18:05:35 +08:00
Sodbileg Gansukh 11b52ed0cf Fix paginated posts of the list layout 2022-04-08 18:04:54 +08:00
Sodbileg Gansukh c3fa4f6b24 Remove deprecated ghost-api property 2022-03-28 15:48:20 +08:00
Sodbileg Gansukh 19d5b6c297 Remove unused csscomb files 2022-03-23 11:15:07 +08:00
Sodbileg Gansukh 76f0037467 v4.7.3 2022-03-01 11:44:07 +08:00
Sodbileg Gansukh 37a09189c3 Make editor and markdown blockquote styles consistent 2022-03-01 11:43:00 +08:00
Sodbileg Gansukh 13458e0d2d Add a class to card meta author 2022-01-26 13:10:55 +08:00
Sodbileg Gansukh eb007cb1c1 Show read more wrapper when only there are other recent posts 2022-01-25 14:28:22 +08:00
renovate[bot] 55f5ba65c6
Update dependency gscan to v4.22.0 (#827)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-01-14 10:39:46 +00:00
John O'Nolan 5cdcda15ee
2022 2022-01-05 12:43:26 +00:00
Maegan Wilson 18f6d85da5 Updating spelling fixes #834 2022-01-04 11:57:24 +08:00
Sodbileg Gansukh 1f3418708c Add <kbd> style
fixes #822
2022-01-03 12:08:16 +08:00
Sodbileg Gansukh 05d0b0c7db v4.7.2 2021-12-17 18:16:43 +08:00
Sodbileg Gansukh 08f480ff78 Update dark style header card background color 2021-12-17 18:16:21 +08:00
Sodbileg Gansukh 56ec2e9a90 v4.7.1 2021-12-17 16:30:15 +08:00
Sodbileg Gansukh c4f2d74d80 Apply custom heading color only to light header style 2021-12-17 16:24:24 +08:00
Sodbileg Gansukh c378e9a9c9 v4.7.0 2021-12-17 15:58:13 +08:00
Sodbileg Gansukh db98015d41 Header card tweaks 2021-12-17 15:06:34 +08:00
Daniel Lockyer 7e9cf5c478
v4.6.1 2021-12-16 09:46:13 +01:00
Sodbileg Gansukh 0f9a3c79c1 Fix list layout style on medium screen size 2021-12-16 12:53:45 +08:00
Peter Zimon 8ff91f709e Updated callout emoji line-height 2021-12-15 15:00:52 +01:00
Sam Lord feb2de765c v4.6.0 2021-12-15 13:02:03 +00:00
Peter Zimon 9b45ff3418
Card css specificity update (#832)
The default CSS styles of new Koenig cards that have been released in the past couple of weeks was updated for better usability in themes in general (read commit message for reasons and more reference).

This commit contains CSS cleanup and updates in theme styles that aligns Casper to this change.
2021-12-15 13:06:42 +01:00
Peter Zimon 827f37255c Updated styles for file upload card 2021-12-14 14:38:49 +01:00
Daniel Lockyer ffdf853323
v4.5.0 2021-12-13 17:47:11 +01:00
Thibaut Patel e4543555fa Fixed a rule so that it doesn't overrides the product card css
refs https://github.com/TryGhost/Team/issues/1245

- Followed the same pattern as the callout, ntf and bookmark cards.
2021-12-13 17:23:49 +01:00
Rafael Corrêa Gomes 67e7291c2b Footer > Adding Lazy loading in the profile image 2021-12-13 16:09:13 +08:00
Sodbileg Gansukh c880856a32 Revert dark mode style of product card rating 2021-12-10 09:55:52 +08:00
Daniel Lockyer b06bcd6534
v4.4.0 2021-12-08 15:00:14 +00:00
Sodbileg Gansukh 49f99d956f Add dark mode support to product card star rating 2021-12-08 17:17:47 +08:00
Sodbileg Gansukh cdb03b65fb Add alternate blockquote styles 2021-12-07 19:05:00 +08:00
Sodbileg Gansukh e80f22c2a5 v4.3.1 2021-12-06 18:52:26 +08:00
Peter Zimon b6474446f8 Updated toggle styles 2021-12-04 08:14:00 -04:00
Peter Zimon 462770968a Updated callout styles 2021-12-04 08:06:09 -04:00
Daniel Lockyer 017a2829b6
v4.3.0 2021-12-01 12:56:41 +00:00
Daniel Lockyer 198f12b725
Updated `yarn.lock`
no issue

- this needed updating after we bumped gscan
2021-12-01 12:55:55 +00:00
Sodbileg Gansukh 48260130fe Update toggle card heading selector 2021-11-29 13:33:59 +08:00
Sodbileg Gansukh 8b392ec6dd Add typography option to toggle card heading 2021-11-25 18:42:19 +08:00
Sodbileg Gansukh 4ea98431b3 Card responsive style refinements 2021-11-25 10:44:09 +08:00
Sodbileg Gansukh 6bc9b021b5 Add toggle content flow spacing 2021-11-25 10:31:36 +08:00
Sodbileg Gansukh c1006ec649 Use data attribute for Portal links 2021-11-24 10:50:46 +08:00
Sodbileg Gansukh cad48b230c Add missing styles for toggle card content 2021-11-23 11:32:24 +08:00
Sodbileg Gansukh b3f6b8a82c Include lists inside toggle card to content styling 2021-11-23 11:28:35 +08:00
Sodbileg Gansukh 2d940d8f59 Exclude default CTA links from link styling 2021-11-23 11:22:56 +08:00
Sodbileg Gansukh b7ea0cbff7 Upgrade gscan 2021-11-22 21:37:28 +08:00
Sodbileg Gansukh a8150f7c30 Include toggle text in content styling 2021-11-22 21:35:48 +08:00
Peter Zimon b5b1ea001e Updated NFT card styles 2021-11-19 12:02:09 +01:00
Sodbileg Gansukh 370b9ec74e Include .kg-callout-text to content styling 2021-11-19 16:07:09 +08:00
Sodbileg Gansukh 3cbe9b2c97 Remove bookmark card related CSS 2021-11-17 18:22:47 +08:00
Sodbileg Gansukh d652252699 Remove gallery card related CSS and JS 2021-11-17 17:02:16 +08:00
Sodbileg Gansukh 6107a411a1 Exclude cards from default link styling
refs https://github.com/TryGhost/Team/issues/1227
2021-11-17 15:40:32 +08:00
Sodbileg Gansukh 8feb988375 Update heading selector on dark mode 2021-11-15 13:22:03 +08:00
Sodbileg Gansukh e898d56f0b v4.2.0 2021-11-05 20:58:43 +08:00
Sodbileg Gansukh b8319c5bb9 Update gscan 2021-11-05 20:17:41 +08:00
Sodbileg Gansukh ceaa887371 Add custom settings 2021-11-05 20:14:53 +08:00
Sodbileg Gansukh c63a07e8df v4.1.1 2021-09-22 15:28:46 +08:00
Sodbileg Gansukh 0e0898d7e9 Fix W3C warning about section lacks heading 2021-09-22 15:26:39 +08:00
Sodbileg Gansukh 2234b14bbd Fix nested main element issue 2021-09-22 15:24:17 +08:00
Sodbileg Gansukh 046d53e885 v4.1.0 2021-07-07 12:16:03 +08:00
Sodbileg Gansukh e49664eca4
Add alt and caption support to feature images (#812)
* Add alt and caption support to feature images

* Add feature image alt support to post card

* Remove three-curlies
2021-07-05 10:59:21 +08:00
Sodbileg Gansukh 21bdffbd8a Fix header element inside header 2021-06-10 13:32:41 +08:00
Leedan ea33b00c0a
Author page: remove span stray end tag (#808) 2021-06-03 10:15:25 +08:00
Sodbileg Gansukh 17c9fe6c55 v4.0.5 2021-05-10 14:21:53 +08:00
Sodbileg Gansukh 5adeaa458b Make the footer stick to bottom
Currently, the footer doesn't stick to the bottom of the viewport when the page content is small. This fixes the issue by making the <main> element fill the remaining space
2021-05-10 14:20:40 +08:00
Sodbileg Gansukh 5013c91f1a Revert "Pin beeper to v2"
This reverts commit f43f6c567f.
2021-05-06 15:48:36 +08:00
Sodbileg Gansukh f43f6c567f Pin beeper to v2
Beeper started requiring ESM syntax from v3, and it caused an error when running development workflow
Error [ERR_REQUIRE_ESM]: Must use import to load ES Module
2021-05-06 12:28:54 +08:00
Sodbileg Gansukh 69feef6c46 Exclude development files from zipped theme 2021-05-05 07:53:10 +08:00
ViViDboarder 01192b7030 Update github action deploy 2021-04-07 10:00:54 -07:00
ViViDboarder 4f8ad3f804 Merge remote-tracking branch 'upstream/main' 2021-04-07 10:00:37 -07:00
ViViDboarder 7b3cda6ea0 Merge upstream master 2021-04-07 09:49:47 -07:00
Sodbileg Gansukh 4708987c39 Update signup button Portal link
fixes #791
2021-04-02 14:45:33 +08:00
Sodbileg Gansukh a4eb58f8e7 v4.0.4 2021-04-01 16:18:12 +08:00
Sodbileg Gansukh 5ad96f7c12 Fix post featured image width 2021-04-01 13:20:50 +08:00
Sodbileg Gansukh 6ac55407b3 Break long words
Fixes #788
2021-04-01 13:01:09 +08:00
Sodbileg Gansukh b0e21fe0f7 Improve code block styling 2021-04-01 12:58:41 +08:00
Sodbileg Gansukh 85cd131cf1 v4.0.3 2021-03-29 11:57:50 +08:00
Sodbileg Gansukh 53ff37cf10 Add background color to default profile image
Fixes #785
2021-03-29 11:43:45 +08:00
Sodbileg Gansukh 816e1f608e Make image block element by default
By doing that, any possible future image alignment issues in post content can be prevented
refs #786
2021-03-29 11:34:53 +08:00
Sodbileg Gansukh 0d49da97a2 Fix list item spacing issue
List items had both top and bottom margin, and it caused some inconsistent spacing for lists inside post content. This updates fixes the issue by only assigning top margin on list items except the first one.
refs: #787
2021-03-29 10:52:15 +08:00
Sodbileg Gansukh e34e2e3e0a Fix mobile menu overlapping Portal popup
fixes #784
2021-03-22 11:38:03 +08:00
iron 18ceb822dd
Update screen.css (#778) 2021-03-19 07:19:03 -04:00
Sodbileg Gansukh 08c1e38ae1 v4.0.2 2021-03-19 16:47:30 +08:00
Sodbileg Gansukh d9e9e097cd Fix headings and card caption color on dark mode
refs #780
2021-03-19 14:15:52 +08:00
Daniel Lockyer 96aac80081
v4.0.1 2021-03-18 17:35:03 +00:00
Sodbileg Gansukh 3fa7f25147 Add Facebook link to the header
Fixes #776
2021-03-18 14:31:56 +08:00
Daniel Lockyer b16671d8a7
v4.0.0 2021-03-15 23:33:48 +00:00
Daniel Lockyer 3d6a3dc68f
v4.0.0-rc.2 2021-03-12 20:27:07 +00:00
Paul Davis 48d06196c2
Fix horizontal scrolling caused by scaling on the subscribe CTA h2 (#765) 2021-03-12 09:53:43 -05:00
Paul Davis 573e384381
Add space between gallery/image cards with caption (#766)
Co-authored-by: John O'Nolan <john@ghost.org>
2021-03-12 08:29:53 -05:00
Paul Davis 5f127c395b
Fix traditional Instagram embeds (#767)
Highly specific styles for traditional Instagram embeds

Co-authored-by: John O'Nolan <john@ghost.org>
2021-03-12 08:27:58 -05:00
Sodbileg Gansukh 3cc9cb0988
Fix headings typography scale (#771) 2021-03-12 08:25:37 -05:00
Paul Davis ca36c4fe91
Only use post-card-large variation if feature_image exists (#764) 2021-03-11 13:44:10 -05:00
Paul Davis 260d5ec4e6
Fix horizontal alignment of smaller post images (#759)
Co-authored-by: John O'Nolan <john@ghost.org>
2021-03-11 13:37:58 -05:00
Paul Davis 410ec1a9d5
Fix logo size in header on small screens (#760)
Co-authored-by: John O'Nolan <john@ghost.org>
2021-03-11 13:37:00 -05:00
Paul Davis e72f4236be
Fix long links causing horizontal scrolling on small screens (#761)
Co-authored-by: John O'Nolan <john@ghost.org>
2021-03-11 13:36:13 -05:00
Paul Davis c0d5a3d999
Fix broken card layout caused by long strings (#762) 2021-03-11 13:33:25 -05:00
Paul Davis b927cf62ed
Adjust infinite scroll selector to target article.post-card (#763)
The tag archive header shares the same classes as post cards, but have different elements.

This changes the selector to target article.post-card, which ignores header.post-card
2021-03-11 13:32:57 -05:00
Daniel Lockyer 91ced578c5
Updated tagName in release script
no issue

- as of 4.0, we're shipping tags with the preceding `v`, but this script
  ignored that and so the release was incorrect
- this commit updates the tagName to have the preceding `v`
2021-03-10 21:11:23 +00:00
Daniel Lockyer 87772282c8
v4.0.0-rc.1 2021-03-10 21:08:10 +00:00
Renovate Bot bcfeb9be74 Update dependency gscan to v4 2021-03-10 21:04:49 +00:00
Daniel Lockyer 5b310a00f4
Merged 4.0 into main
no issue

- Casper is now ready for 4.0 so this commit merges the branch in to try
  and keep the Git history as clean as possible
2021-03-10 21:03:13 +00:00
Daniel Lockyer a6a5d1eba1
3.1.3 2021-03-10 21:00:57 +00:00
Renovate Bot fa8cc4cf2e
Update dependency gulp-zip to v5.1.0 2021-03-10 09:48:00 +00:00
John O'Nolan 3a5fda7009 Spacing fix on author profile 2021-03-09 22:23:47 -05:00
John O'Nolan 4f2fe7eb43 Update page template style 2021-03-09 22:02:35 -05:00
John O'Nolan be0600a603 Update end of post CTA bg color 2021-03-09 21:33:13 -05:00
Renovate Bot e4faa3141a
Update dependency postcss to v8.2.8 2021-03-09 22:41:13 +00:00
John O'Nolan a78784decf Fix codeblock specificity, props @pauladamdavis 2021-03-09 09:27:47 -05:00
John O'Nolan a516282b73 Correct logo height in navbar 2021-03-09 09:04:50 -05:00
John O'Nolan ea6942a7fe Fix bug with :not unfixing previous fix of ::not which it turns out is not a thing 2021-03-09 09:03:54 -05:00
John O'Nolan b5c2869ff6 Fix bug where incorrect styles were applied if codeblocks have captions 2021-03-08 16:08:47 -05:00
John O'Nolan b7faac9eda Dark codeblocks by default 2021-03-08 15:59:11 -05:00
John O'Nolan 372dca859b Reinstate a class which as it turns out was not unused after all 2021-03-08 11:46:41 -05:00
John O'Nolan 30cd8d97e0 Remove unused old script from homepage 2021-03-08 11:30:16 -05:00
John O'Nolan 0584a58c6c Remove overlays from cover image, these only worked when CSS bg image, not img tag 2021-03-08 11:28:11 -05:00
John O'Nolan 2231274b07 Remove unused old class 2021-03-08 11:25:46 -05:00
John O'Nolan 715f95d209 Typography fixes 2021-03-06 21:54:43 -05:00
Renovate Bot 1e0e813931
Update dependency autoprefixer to v10.2.5 2021-03-05 15:52:56 +00:00
John O'Nolan 2c356f1cc4 Update dates to be locale-friendly, props @levee223 2021-03-05 10:13:14 -05:00
Daniel Lockyer 140666ee44
v4.0.0-rc.0 2021-03-05 14:07:06 +00:00
Daniel Lockyer 70f71e9839
Updated built JS assets
no issue

- these weren't rebuilt when changing the code
2021-03-05 14:05:57 +00:00
Daniel Lockyer bd1dbd51c7
Updated default Ghost compatibility in release script
no issue

- not important, but it saves manually entering it during the release
  process
- Casper is only compatible with Ghost 4.0 moving forwards
2021-03-05 13:28:15 +00:00
John O'Nolan f590fb029a Tag archive 2021-03-04 18:31:29 -05:00
John O'Nolan 7617c7baf2 Author profile 2021-03-04 17:22:45 -05:00
John O'Nolan b5d0589222 And so the lord said unto Moses, let us obliterate this CSS 2021-03-04 08:05:28 -05:00
Naz e95293cc22 Updated deprecated @site.lang to @site.locale
refs https://github.com/TryGhost/Team/issues/509
refs b0f80be408

- @site.lang property is being deprecated with Ghsot 4.0 and @site.locale is advised to be used instead
2021-03-04 19:48:58 +13:00
Sodbileg Gansukh 2d27e13f14 Remove visibility parameter 2021-03-04 12:20:10 +08:00
Renovate Bot 0d1cf89cc0
Update dependency postcss to v8.2.7 2021-03-04 00:43:23 +00:00
Daniel Lockyer a43c6b3cbc
Fixed logic for checking GitHub token
no issue 

- the check needs to be inverted to ensure we're being passed a token
2021-03-04 00:29:56 +00:00
John O'Nolan 1365eab4ae Cleanup 2021-03-03 15:44:30 -05:00
Daniel Lockyer cf24eccdf2
Added Renovate to package.json
no issue

- the renovate.json file was removed to clean up the repository files,
  but we still want Renovate to update dependencies
- Renovate allows us to configure the config in the package.json, so
  this commit moves the previous contents there
2021-03-03 13:24:16 +00:00
Daniel Lockyer f12ce05454
Removed the need for config.json when releasing
no issue

- we previously needed a config.json to provide the GitHub token for
  publishing new Casper releases
- this commit removes the need for this file by pulling the token from
  the environment variable, which everyone in the Core team has set up
2021-03-03 13:20:58 +00:00
John O'Nolan 44e33120cb Cleanup 2021-03-03 08:11:16 -05:00
John O'Nolan 6c7cf02111 Style refresh 2021-03-02 21:48:32 -05:00
Sodbileg Gansukh 609507d22d Keep bookmark author and publisher classes for GScan 2021-03-02 16:53:53 +08:00
Sodbileg Gansukh fd89c6575c Remove specific selectors from bookmark metadata 2021-03-02 13:59:05 +08:00
John O'Nolan c680f4efcd Style refresh 2021-03-01 20:34:12 -05:00
Naz b59893091c Removed conditions which used @labs.members helper
refs https://github.com/TryGhost/Team/issues/332
refs 870a09b109

- The {{@labs.members}} always evaluates to "true" starting with Ghost 4.0 and will be "null" coercing to "false" starting Ghost 5.0
- Enabled all conditionals be default to pass the build in main Ghost repository. These changes should be reviewed - special attentio to the left out RSS feed which was surrounded with {{unless @labs.members}} condition
2021-03-01 19:44:07 +13:00
John O'Nolan 5fd447b815 Style refresh 2021-02-28 20:10:09 -05:00
Renovate Bot 9ac38156da
Update dependency inquirer to v8 2021-02-26 00:59:59 +00:00
Sodbileg Gansukh f9d9b1fab5 Disable dark mode by default
Dark mode is disabled by default, but can be enabled by adding a class dark-mode to html element.
2021-02-25 21:58:09 +08:00
Naz 1ea3ad649b Updated ghost-engine to v4
refs https://github.com/TryGhost/Team/issues/221
26e20d223d

- The default engine for Casper shipping with Ghost v4 has to match up.
This way it uses all the correct APIs
2021-02-25 03:17:07 +13:00
Renovate Bot fc8cf0b2f4
Update dependency @tryghost/release-utils to v0.6.12 2021-02-22 08:14:53 +00:00
Sodbileg Gansukh 676b73172f Increase contrast of excerpts 2021-02-18 15:16:42 +08:00
Sodbileg Gansukh 2505089a41 Use old font size for primary tags 2021-02-18 15:09:33 +08:00
Sodbileg Gansukh 957d3049aa Fix link hover effect 2021-02-18 14:50:59 +08:00
Sodbileg Gansukh 8f81522907 Remove focus state from buttons 2021-02-18 14:48:24 +08:00
Sodbileg Gansukh 28d63e1cd2 Accent color for subscribe overlay button 2021-02-18 14:36:49 +08:00
Sodbileg Gansukh b374b88126 Dark grey as subscribe form border 2021-02-18 12:17:40 +08:00
Sodbileg Gansukh 0449bf5537 Use grey for blockquotes 2021-02-18 12:16:27 +08:00
Sodbileg Gansukh e985805958 Try a new default accent color 2021-02-18 12:05:56 +08:00
Sodbileg Gansukh c1fcece376 Use accent color as header background when there is no cover image 2021-02-18 11:40:20 +08:00
Sodbileg Gansukh 306f7b2d9b Accent color usage and subscribe form design update 2021-02-18 11:32:40 +08:00
Renovate Bot 7e3e891338
Update dependency postcss to v8.2.6 2021-02-10 19:29:09 +00:00
Renovate Bot 69f5108a39
Update dependency @tryghost/release-utils to v0.6.11 2021-02-09 12:07:09 +00:00
Renovate Bot 44fa55be19
Update dependency postcss to v8.2.5 2021-02-08 01:10:50 +00:00
Sodbileg Gansukh df4bfbffb2 Disable dark mode with code injection
It's now possible to disable the dark mode with code injection instead of removing the CSS and rebuilding it, by simply adding a class no-dark to html element.
2021-02-01 12:06:56 +08:00
Renovate Bot bcfbc21b8e
Lock file maintenance 2021-02-01 00:51:05 +00:00
Renovate Bot 41330614cd
Update dependency autoprefixer to v10.2.4 2021-01-29 18:49:55 +00:00
Sodbileg Gansukh 069280eea2 Apply scroll-margin-top to all elements with id attribute instead of only headings 2021-01-27 17:06:11 +08:00
Sodbileg Gansukh 52f763859a Replace subscribe link with account link for logged in users
refs: #751
2021-01-27 16:44:24 +08:00
John O'Nolan e3fd4d707e 2021 2021-01-25 15:58:47 +00:00
Sodbileg Gansukh 854880747d Fix text fragment scrolling which behind the floating top bar
refs: #749
2021-01-22 10:02:51 +08:00
Sodbileg Gansukh 6b9df8bb51 Rebuild assets 2021-01-22 09:52:32 +08:00
Renovate Bot 1360ed83bd
Update dependency autoprefixer to v10.2.3 2021-01-19 19:59:47 +00:00
Aileen Nowak adfb47009e Updated links to ghost.org sites
no issue

Follow-up task of the updated Ghost Docs structure. Updated links reflecting the new structure to prevent unnecessary 404s and redirects
2021-01-19 13:30:21 +13:00
Renovate Bot 4752bf03c9
Update dependency @tryghost/release-utils to v0.6.10 2021-01-12 17:05:11 +00:00
Renovate Bot a17155a3b6
Update dependency postcss to v8.2.4 2021-01-11 00:05:06 +00:00
Renovate Bot a1bf3f3823
Update dependency autoprefixer to v10.2.1 2021-01-08 02:05:45 +00:00
Renovate Bot d063fb2806
Update dependency postcss to v8.2.3 2021-01-07 14:05:36 +00:00
Daniel Lockyer 4a6dfa8e04
Added main as a deploy branch for theme uploading
no issue

- we will be switching to main soon, and want to update this workflow to show how it should be used
2021-01-07 13:50:49 +00:00
Renovate Bot e4a5e96d06
Update dependency autoprefixer to v10.2.0 2021-01-06 03:05:42 +00:00
Sodbileg Gansukh 35e68f6d3f Show members-only posts in the post loop by default 2021-01-05 15:47:56 +08:00
Renovate Bot f631f874f7
Update dependency beeper to v2.1.0 2021-01-04 00:07:18 +00:00
Renovate Bot 74d787831e
Lock file maintenance 2021-01-01 00:04:53 +00:00
Renovate Bot 739deb3e4d
Update dependency postcss to v8.2.2 2020-12-29 22:05:17 +00:00
Renovate Bot bc3e072d31
Update dependency @tryghost/release-utils to v0.6.9 2020-12-14 04:56:45 +00:00
Renovate Bot 838c4ecca2
Update dependency gscan to v3.6.1 2020-12-11 10:41:29 +00:00
Renovate Bot 7a61bf55ed
Update dependency postcss to v8.2.1 2020-12-09 13:06:09 +00:00
Renovate Bot 9baffdd03f
Update CSS preprocessors 2020-12-08 07:49:27 +00:00
Renovate Bot 30ccbca28a
Update dependency postcss to v8.1.14 2020-12-04 00:26:02 +00:00
Renovate Bot def78b102b
Update dependency postcss to v8.1.13 2020-12-03 03:20:22 +00:00
Renovate Bot dfb6444b25
Update dependency postcss to v8.1.11 2020-12-03 01:49:56 +00:00
Renovate Bot 4c298b97cf
Lock file maintenance 2020-12-01 00:05:39 +00:00
Renovate Bot 6c8a048bad
Update dependency autoprefixer to v10.0.4 2020-11-27 21:39:19 +00:00
Renovate Bot fd02a6c722
Update dependency autoprefixer to v10.0.3 2020-11-26 22:06:52 +00:00
Sodbileg Gansukh 493da38cff Update jQuery version to 3.5.1 2020-11-24 12:01:31 +08:00
Renovate Bot 19cf4adb74
Update dependency postcss to v8.1.10 2020-11-23 22:25:18 +00:00
Renovate Bot daa69cbd31
Update dependency postcss to v8.1.9 2020-11-23 00:05:38 +00:00
Renovate Bot 267fd00802
Update dependency postcss to v8.1.8 2020-11-19 16:00:59 +00:00
Daniel Lockyer 8fefeca41b 3.1.2 2020-11-17 12:32:25 +00:00
Renovate Bot 45f5c83118
Update dependency postcss to v8.1.7 2020-11-10 18:06:13 +00:00
Sanne de Vries c3cb51711a Changed bookmark card metadata styling to be consistent with the editor
Classes for author and publisher are temporarily swapped to make sure the changes are backwards compatible until Ghost 4.0
2020-11-10 18:17:11 +01:00
Renovate Bot 3d189760a8
Update dependency autoprefixer to v10.0.2 2020-11-10 15:05:07 +00:00
Renovate Bot 8087366537
Update dependency postcss to v8.1.6 2020-11-05 17:05:11 +00:00
Renovate Bot 7748f8c781
Update dependency postcss to v8.1.5 2020-11-05 15:54:45 +00:00
Renovate Bot 8783bd4ee8
Update dependency @tryghost/release-utils to v0.6.8 2020-11-05 04:41:15 +00:00
Renovate Bot 006b056adc
Lock file maintenance 2020-11-01 00:04:25 +00:00
Renovate Bot fe690d4048
Update dependency postcss to v8.1.4 2020-10-26 00:06:23 +00:00
Renovate Bot c3c0374ca6
Update dependency postcss to v8.1.3 2020-10-23 02:25:21 +00:00
Renovate Bot 0429f85774
Update dependency gscan to v3.6.0 2020-10-21 10:22:37 +00:00
Renovate Bot 1f8df12a7c
Update actions/checkout action to v2 2020-10-20 16:04:56 +00:00
Renovate Bot 75e68ce5b7
Update TryGhost/action-deploy-theme action to v1.4.1 2020-10-20 14:07:13 +00:00
Renovate Bot fa15a48192
Update dependency postcss to v8.1.2 2020-10-19 01:06:17 +00:00
Daniel Lockyer 0c36dc5235 3.1.1 2020-10-16 09:19:06 +01:00
Daniel Lockyer aa3c83ec35 Updated built assets 2020-10-16 09:18:36 +01:00
Sodbileg Gansukh 38481aac9a Fixed post content input color issue on dark mode
Fixes #718
2020-10-08 11:36:41 +08:00
Sodbileg Gansukh 0052c2ddc3 Added subscribe failure notification
Fixes #738
2020-10-08 10:22:49 +08:00
Yannick Reekmans 9d12bc32f0
Update screen.css (#735)
Fix instance of color() to color-mod()
2020-10-03 11:17:29 +07:00
Renovate Bot cb674ab56c
Lock file maintenance 2020-10-01 00:16:07 +00:00
Renovate Bot c86ee63b86
Pin dependency postcss to 8.1.1 2020-09-30 12:49:12 +00:00
Sam Lord b92f18e55a Added postcss as a dev dependency (required by gulp-postcss) 2020-09-30 13:48:11 +01:00
Renovate Bot 827940c836
Update dependency autoprefixer to v10.0.1 2020-09-28 00:05:40 +00:00
Renovate Bot db0af7f759
Update dependency gulp-postcss to v9 2020-09-23 19:04:44 +00:00
Renovate Bot af87b9b3b0
Update dependency @tryghost/release-utils to v0.6.7 2020-09-22 03:39:15 +00:00
Renovate Bot ec03acff02
Update dependency autoprefixer to v10 2020-09-15 19:04:52 +00:00
Daniel Lockyer fa48995326 Updated action-deploy-theme to v1.3.1
- hopefully fixes a bug with `theme-name` not being passed through
2020-09-10 13:15:53 +01:00
Sodbileg Gansukh 6350790798 Fix close button in the subscribe success message 2020-09-10 12:28:44 +08:00
Renovate Bot ab521da23a
Update dependency gscan to v3.5.7 2020-09-07 16:28:49 +00:00
Renovate Bot 91185016eb
Lock file maintenance 2020-09-01 00:05:19 +00:00
Renovate Bot 0af8d2d8bc
Update dependency @tryghost/release-utils to v0.6.6 2020-08-11 17:42:19 +00:00
Renovate Bot f50f663ef7
Update dependency @tryghost/release-utils to v0.6.5 2020-08-11 11:52:54 +00:00
Renovate Bot a467e31457
Update dependency gscan to v3.5.6 2020-08-10 15:09:56 +00:00
Allan Stromfeldt Christensen 807018ca97
Fix background color of slash of darkmode <hr> (#733) 2020-08-09 00:34:53 +07:00
Renovate Bot ce9918de2f
Update dependency @tryghost/release-utils to v0.6.4 2020-08-07 15:08:43 +00:00
Daniel Lockyer df2d20caab 3.1.0 2020-08-04 10:59:14 +01:00
Renovate Bot c6cb667fea
Lock file maintenance 2020-08-01 00:29:35 +00:00
Renovate Bot a1d9eae840
Update dependency autoprefixer to v9.8.6 2020-07-30 20:40:44 +00:00
Hannah Wolfe 59eefa3659
Updated call to actions/checkout to use v2
refs https://github.com/TryGhost/action-deploy-theme/issues/30

- actions/checkout has changed their default branch name from master to main, which shows warnings.
2020-07-28 12:53:07 +01:00
John O'Nolan 78bde5f3dc
Fix broken link 2020-07-28 00:59:13 +07:00
John O'Nolan e637d809f6 Upgraded to color-mod, native CSS vars
Dropping final support for IE11 and moving to newer color-mod package to replace the old deprecated one
2020-07-28 00:52:31 +07:00
Renovate Bot e4793cc743
Update dependency gscan to v3.5.5 2020-07-24 10:15:20 +00:00
Renovate Bot cd7016493e
Update dependency inquirer to v7.3.3 2020-07-23 02:35:30 +00:00
Daniel Lockyer 7421cff4fe 3.0.13 2020-07-21 13:41:23 +01:00
Daniel Lockyer c465d95e14 Added new build assets
no issue
2020-07-21 13:40:03 +01:00
Renovate Bot c1c6fed941
Update dependency inquirer to v7.3.2 2020-07-13 17:15:27 +00:00
Renovate Bot 5664f81564
Update dependency autoprefixer to v9.8.5 2020-07-13 00:04:56 +00:00
Renovate Bot 8838afe43f Lock file maintenance 2020-07-10 19:01:32 +01:00
Renovate Bot f53b6b3435
Update dependency inquirer to v7.3.1 2020-07-10 15:46:29 +00:00
Renovate Bot be77dad00e Update dependency inquirer to v7.3.0 2020-07-02 05:04:53 +00:00
Renovate Bot 408cf0cc1e
Update dependency gulp-zip to v5.0.2 2020-06-29 00:27:17 +00:00
Renovate Bot cfdc8a3b85
Update dependency autoprefixer to v9.8.4 2020-06-24 03:40:53 +00:00
Renovate Bot e6a24de5c4
Update dependency autoprefixer to v9.8.3 2020-06-23 14:43:53 +00:00
Renovate Bot 6d0a3a8899
Update dependency autoprefixer to v9.8.2 2020-06-22 00:21:02 +00:00
Renovate Bot b54c3debd4
Update dependency autoprefixer to v9.8.1 2020-06-19 21:33:26 +00:00
Jakub Maciej Chmielewski 0e0589cb04
Disabled yarn-error.log file export to zip (#725) 2020-06-17 19:07:34 +01:00
Renovate Bot 5bfc82bf0c Update dependency inquirer to v7.2.0 2020-06-15 02:35:55 +00:00
Renovate Bot d3ffc71b34
Update dependency @tryghost/release-utils to v0.6.3 2020-05-26 16:22:16 +00:00
Renovate Bot 871fc4075f Update dependency autoprefixer to v9.8.0 2020-05-18 01:14:52 +00:00
Renovate Bot 6f37e5a148
Update dependency @tryghost/release-utils to v0.6.2 2020-05-08 16:13:01 +00:00
Renovate Bot adc055495c
Update dependency gscan to v3.5.4 2020-05-01 09:41:56 +00:00
renovate[bot] 2ed7ea8f13
Lock file maintenance (#709)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-05-01 15:16:09 +07:00
Renovate Bot 4ddbaae803
Update dependency gscan to v3.5.3 2020-04-22 17:12:58 +00:00
Ícaro Harry 7e0e45c643
Change border-left on blockquote to use color variables (#705) 2020-04-22 18:44:54 +07:00
Renovate Bot e0771bfc7e Update dependency gscan to v3.5.2 2020-04-20 19:15:57 +00:00
Renovate Bot 8f1a15296a
Update dependency @tryghost/release-utils to v0.6.1 2020-04-16 13:44:16 +00:00
Renovate Bot 2bd82a30e8 Update dependency @tryghost/release-utils to v0.6.0 2020-04-07 12:16:10 +00:00
Daniel Lockyer feb7f3aac6 3.0.12 2020-04-07 09:15:05 +01:00
Renovate Bot eed15fd9a5
Update dependency autoprefixer to v9.7.6 2020-04-06 21:22:19 +00:00
Renovate Bot 201b1924cf
Update dependency gscan to v3.4.1 2020-04-06 17:10:14 +00:00
Daniel Lockyer 387a2aa3f0
Switch testing to built-in Nodejs
no issue
2020-04-06 13:49:51 +01:00
Daniel Lockyer 690ca22fb7 Removed test addition 2020-04-03 16:17:14 +01:00
Daniel Lockyer 31d43860ac Updated release script
no issue
2020-04-03 16:16:26 +01:00
Daniel Lockyer 14f7cc4e31 Updated built files
no issue
2020-04-03 16:04:41 +01:00
Daniel Lockyer 7646f90556
Updated theme name in deploy GitHub Actions
no issue

- the theme name cannot be the same as the default
2020-04-03 09:53:48 +01:00
Dodi Sabaruddin 8e17cdc1fb
update sdeploy theme (#692) 2020-04-03 14:39:02 +07:00
renovate[bot] 2da322d93b
Lock file maintenance (#699)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-04-03 14:36:14 +07:00
Rafael Corrêa Gomes 709c7196b9
Post cards > Lazyload (#701)
Co-authored-by: Rafael Gomes <rgomes@lesite.ca>
2020-04-03 14:35:58 +07:00
Renovate Bot c97b847002 Update dependency @tryghost/release-utils to v0.5.0 2020-04-01 12:17:28 +00:00
Renovate Bot 7d37adb3cd
Update dependency autoprefixer to v9.7.5 2020-03-31 17:33:06 +00:00
Renovate Bot 4fe7010f4e
Update dependency @tryghost/release-utils to v0.4.2 2020-03-31 15:11:06 +00:00
Daniel Lockyer 6bf34a5a70 Moved Casper release code into gulpfile
no issue
2020-03-31 16:10:30 +01:00
Daniel Lockyer c9a54e25ab
Enabled CI for Renovate branches
no issue
2020-03-31 15:54:56 +01:00
Renovate Bot 3281f75945 Update dependency gscan to v3.4.0 2020-03-31 15:53:14 +01:00
Daniel Lockyer c8abe3a7c4 3.0.11 2020-03-26 14:29:11 +00:00
Daniel Lockyer 150b698b1c
Updated Renovate config with new structure
no issue
2020-03-26 10:56:13 +00:00
Daniel Lockyer 9ff3aa7858 3.0.10 2020-03-23 12:23:44 +00:00
Peter Zimon 8886056719 Fixed navigation scrollbar bug
no refs.
- fixed issue that made top navigation scrollbar appear for sites with secondary navigation and members turned off
2020-03-11 13:46:20 +01:00
Daniel Lockyer 93628dc7f0 3.0.9 2020-03-09 10:49:09 +00:00
Peter Zimon 702b2cbf1f Refined width of image captions
no refs.
- updated max width of image caption text
2020-03-04 15:34:15 +01:00
Peter Zimon e5969f93da Improved author and tag header styles
no refs.

- added default avatar for authors template
- fixed typography inconsistencies, alignment and spacing issues for author and tags headers
- applied CSSComb
2020-03-04 14:34:03 +01:00
Peter Zimon 9e29e145fc 🐛 Subscribe overlay fixes
refs. https://github.com/TryGhost/Casper/issues/630

- added a dedicated close button element for the subscribe overlay which sits on top of all elements to ensure the modal is always closable
- fixed alignment and spacing of "Subscribe" button for mobile sizes
2020-03-04 11:26:27 +01:00
Peter Zimon 74ae3d5140 🐛 Fixed image alignment for small images
refs. https://github.com/TryGhost/Casper/issues/517

- updated styles to center align small images with long caption text
2020-03-03 17:29:34 +01:00
Daniel Lockyer 1ec7a12d43 Bumped dependency versions
no issue
2020-03-02 18:36:18 +00:00
Daniel Lockyer 9ec0f08a48 3.0.8 2020-03-02 12:02:24 +00:00
Renovate Bot b09e846fd2 Update dependency postcss-custom-properties to v9.1.1 2020-03-01 02:18:49 +00:00
Renovate Bot 92d9174b24 Update dependency @tryghost/release-utils to v0.4.1 2020-03-01 01:18:39 +00:00
Daniel Lockyer c27fc17844 3.0.7 2020-02-05 11:42:31 +00:00
Renovate Bot d9cf22a0f7 Update dependency gscan to v3.3.0 2020-02-01 01:18:20 +00:00
ViViDboarder 17077c96e6 Merge remote-tracking branch 'upstream/master' 2020-01-23 11:27:12 -08:00
Ian 23bb7d93a1
Update github actions to deploy 2020-01-23 11:12:55 -08:00
Fabien O'Carroll 7c87383bc6 3.0.6 2020-01-13 14:08:24 +02:00
Peter Zimon 09d701c4bc 🐛 Removed non-existent variable
Refs. https://github.com/TryGhost/Casper/issues/676

- removed corresponding CSS declaration as the variable `--white` doesn't exist
2020-01-10 15:29:50 +01:00
John O'Nolan aec67d8b5f 2020 2020-01-07 18:35:56 +00:00
Renovate Bot f55e2b0266 Update dependency gscan to v3.2.1 2020-01-01 01:16:54 +00:00
Nazar Gargol fee94ba192 3.0.5 2019-12-04 20:39:08 +07:00
Peter Zimon bf4b8d7f15 Added secondary navigation (#664)
refs https://github.com/TryGhost/Ghost/pull/11409

- Adds secondary navigation to the main menu
- Updated secondary nav mobile styles
- Updated cover for the scrollable main navigation
2019-12-04 17:41:50 +07:00
Kevin Ansfield 98543dd068 3.0.4 2019-11-27 14:11:18 +00:00
Casper Bøgeskov Hansen 5063d40a32 Remove backdrop filter from subscribe overlay 2019-11-23 19:06:13 -08:00
renovate[bot] 7c8cba7fab Pin dependency gulp-concat to 2.6.1 (#647) 2019-11-11 21:15:08 +07:00
renovate[bot] e253954051 Lock file maintenance (#650) 2019-11-11 21:14:53 +07:00
Nazar Gargol 4c7fced3aa 3.0.3 2019-11-11 18:55:36 +07:00
ViViDboarder 5fe2afe0d1 Rename package again 2019-11-09 13:08:52 -08:00
ViViDboarder bdd2f33aef Merge remote-tracking branch 'upstream/master' 2019-11-09 13:08:14 -08:00
Daniel Lockyer fb9f0e6804
Remove Travis from Renovate config 2019-11-08 16:35:58 +07:00
Daniel Lockyer 88e3db9d3b Switched to gscan testing via GitHub Actions
no issue
2019-11-08 16:35:06 +07:00
Renovate Bot 7733f0db63 Update dependency gscan to v3.1.1 2019-11-01 04:27:02 +00:00
Renovate Bot 1c5db5c027 Update dependency autoprefixer to v9.7.1 2019-11-01 03:25:25 +00:00
Renovate Bot e4afcc233f
Update dependency @tryghost/release-utils to v0.3.3 2019-11-01 00:26:39 +00:00
Peter Zimon a66beb4e10 🐛 Fixed page style in dark mode
closes https://github.com/TryGhost/Casper/issues/643

- fixes background color for pages in dark mode
2019-10-30 13:43:47 +01:00
Kevin Ansfield c82e1cb035 3.0.2 2019-10-30 11:07:59 +00:00
Peter Zimon 065849105b Author meta and bookmark style refinements
refs. https://github.com/TryGhost/Casper/pull/631
- refined colors of links and separator dots for various cases (light/dark mode/with and without header background image)
- fixed bookmark card hover style
- ran CSSComb
2019-10-30 11:35:29 +01:00
Amgaa a1fc6090d2 Very small fix on author meta links color 2019-10-30 11:35:29 +01:00
Peter Zimon 68b0270ed5
Dark mode table style fix (#641)
refs. https://github.com/TryGhost/Casper/issues/637

- fixed styles for tables in dark mode
2019-10-29 16:27:40 +01:00
Kevin Ansfield 6d56e5866e 3.0.1 2019-10-29 14:20:08 +00:00
Peter Zimon 8993409296
Error page improvements (#639)
refs. https://github.com/TryGhost/Casper/issues/632

Error page fixes and improvements
- uses default template (i.e. standard header and footer) on 404 error page
- fixed not displaying authors and primary tags on recommended posts on 404 error page
- fixed background for navigation bar on generic error page
- refined error code and message styles
2019-10-28 16:28:25 +01:00
Kevin Ansfield 307c334cd5
🐛 Fixed images on infinite scroll index pages being stretched in Safari (#636)
closes #634, closes #635

- use `document.importNode` to create a clone of post card elements when pulling them in from infinite scroll pages
- cloning the element means the element's owner document matches the viewed document and ensures images in the inserted post card elements are sized according to the viewed document
2019-10-24 17:15:34 +01:00
Fabien O'Carroll 17ba4add5c 3.0.0 2019-10-21 22:41:48 +07:00
Hannah Wolfe e37e444e9a
Update deploy-theme.yml
- bump action version
- add a custom theme name
2019-10-21 12:49:04 +01:00
Fabien O'Carroll 57cee0c680 3.0.0-beta.8 2019-10-21 18:34:45 +07:00
Kevin Ansfield ff51925567
Fixed sticky title and author hover JS (#629)
no issue

- replaces author hover JS that was lost during merge
- replaces `floating-header.js` with `sticky-nav-title.js` containing the relevant JS that was lost during merge with a cleanup for unused variables and unnecessary event listeners
- removes reference to non-existent `{{> floating-header}}` partial
2019-10-21 10:02:05 +01:00
Kevin Ansfield 3e910e954e
Updated built CSS (#627)
no issue

- ran `gulp` to rebuild the CSS after the v3 merge
2019-10-21 09:53:28 +01:00
Kevin Ansfield 50437fd72e
Fixed duplicate browserslist config (#628)
no issue

- removes duplicate `browserslist` key from `package.json`
2019-10-21 09:52:45 +01:00
Fabien O'Carroll 1915a91c5b 3.0.0-beta.7 2019-10-21 13:05:33 +07:00
Fabien O'Carroll b51dd8ce22
V3 (#626)
* Changed {{code}} to {{statusCode}}

refs 2ebd9feeee

- {{code}} use has been deprecated in canary rule set of gscan

* V3 Update

* Update package and readme for 3.0

* Improve install instructions

* Update to support browserlist

* Upgrade dependencies

* Fix misnamed property

* V3 darkmode (#619)

Added dark mode styles

* Casper final  refinements batch 1

* Casper final  refinements batch 2

* Fixed bookmark card hover bug

* Fixed header social links

* Updated screenshots

* Updated readme

no issue

- refreshed screenshot

* Udpate screenshot in readme

no issue

* 3.0.0-beta.2

* Fixed cut header for post cards

no issue

* 3.0.0-beta.3

* 3.0.0-beta.4

* Updated current version and previous version logic (#554)

no issue

- Use current version from `package.json` instead of `npm_package_version` env variable
- Use `release.tag_name` instead of `release.name` for previous version

* Updated jQuery to 3.4.1 to avoid known vulnerabilities (#590)

no issue

https://snyk.io/vuln/npm:jquery?lh=3.2.1&utm_source=lighthouse&utm_medium=ref&utm_campaign=audit

* Fixed code cards with long lines from being too wide

no issue

Credits - https://github.com/TryGhost/Casper/pull/602

* Bumped gscan version to v3.0.0 (#621)

* Bumped gscan to v3.0.0

- This also fixes failing CI builds because the default rules that are being checked were for v2

* Added explicit version check for gscan command

* Added member subscription support (#623)

* Added member subscription support

no issue

* Added member subscription success message

no issue

* Added member subscription overlay

* Refined members subscription overlay

* Deleted unused website icon

* Ran CSSComb

* Updated built assets

* 3.0.0-beta.5

* Updated built assets for v3

no issue

* 3.0.0-beta.6

* Remove unused partial

* V3 cleanup (#625)

* Removed unused infinity icon

* Removed unused location icon

* Removed unused 'point' icon

* Removed unused Ghost logo icon

* Removed unused author partials

* Cleaned up index log

* Fixed responsive feature image sizes for page template
2019-10-21 12:43:34 +07:00
Kevin Ansfield 7ad20d1325 Fixed deprecated autoprefixer config warning when running build tasks
no issue

Passing browser options directly into `autoprefixer()` has been deprecated in favour of general browserslist configuration in `package.json` or a `.browserslistrc` config file

- moved autoprefixer browsers list into `browserslist` config in `package.json`
- updated `autoprefixer` version
2019-10-20 16:05:37 +02:00
Kevin Ansfield 978ffe0eb6
Concatenated all JS into a single file (#624)
no issue

- moved large inline JS from templates into separate JS files
  - floating header
  - gallery card support
- use `gulp-concat` to concatenate all JS files into a single `built/casper.js` file
- reduces external JS file requests from 3 (jquery, infinite-scroll.js, jquery.fitvids.js) down to 2 (jquery, casper.js) and reduces page size by removing repeated inline code
2019-10-20 15:55:06 +02:00
renovate[bot] 53ad2d8096 Updated Build Tools (#571) 2019-10-20 13:47:06 +05:30
renovate[bot] f7e4cabc58 Update dependency postcss-custom-properties to v9 (#592) 2019-10-20 13:41:11 +05:30
Naz Gargol 392626f3b2 Bumped Gscan and made rule check explicit to v2 set (#622)
* Bumped gscan to v3.0.0

* Added explicit v2 version check for gscan command
2019-10-20 12:21:27 +05:30
Rish 8bb4508ff2 Fixed code cards with long lines from being too wide
no issue

Credit to https://github.com/mvasilkov for the fix -  https://github.com/TryGhost/Casper/pull/602
2019-10-20 12:14:21 +05:30
Tiago Rodrigues e5e62f1eed Updated jQuery to 3.4.1 to avoid known vulnerabilities (#590)
no issue

https://snyk.io/vuln/npm:jquery?lh=3.2.1&utm_source=lighthouse&utm_medium=ref&utm_campaign=audit
2019-10-20 12:09:36 +05:30
Rishabh Garg 2eaeba8ba8
Updated current version and previous version logic (#554)
no issue

- Use current version from `package.json` instead of `npm_package_version` env variable
- Use `release.tag_name` instead of `release.name` for previous version
2019-10-20 12:05:13 +05:30
Hannah Wolfe 728392e51e
Automatically deploy theme on master only
- switch from all branches to master only
2019-10-18 17:14:36 +01:00
Hannah Wolfe 7161dca4ca Added deploy ghost theme github action
- see https://github.com/marketplace/actions/deploy-ghost-theme
- use the new deploy theme github action to automatically deploy master to a test site
2019-10-18 14:20:28 +01:00
Kevin Ansfield 215d837848 2.11.2 2019-10-07 23:11:17 +01:00
Renovate Bot d2ec8d1c31
Update dependency gulp-livereload to v4.0.2 2019-10-01 01:30:15 +00:00
Renovate Bot 4a4f66a710 Update dependency gscan to v2.9.0 2019-10-01 01:29:48 +00:00
Kevin Ansfield 8729af090f 2.11.1 2019-08-27 19:44:35 +01:00
Peter Zimon c40627256a Added max length for bookmark card publisher field (#608)
no issue

- fixed style for bookmark cards with too long publisher field
2019-08-27 19:29:48 +01:00
Rish 32d3538f6b 2.11.0 2019-08-27 21:01:30 +05:30
Rishabh Garg f5b2a2f209
Added bookmark card CSS (#607)
refs 9bfd340885 and c2aa62083c

Adds css for styling new bookmark card which generates following html -
  ```html
  <figure class="kg-card kg-bookmark-card">
    <a href="[URL]" class="kg-bookmark-container">
      <div class="kg-bookmark-content">
        <div class="kg-bookmark-title">[TITLE]</div>
        <div class="kg-bookmark-description">[DESCRIPTION]</div>
        <div class="kg-bookmark-metadata">
          <img src="[ICON]" class="kg-bookmark-icon">
          <span class="kg-bookmark-author">[AUTHOR]</span>
          <span class="kg-bookmark-publisher">[PUBLISHER]</span>
        </div>
      </div>
      <div class="kg-bookmark-thumbnail">
        <img src="[THUMBNAIL]">
      </div>
    </a>
  </figure>
  ```
2019-08-27 20:56:42 +05:30
Rish 29426e1483 2.10.7 2019-08-22 07:31:34 +05:30
ViViDboarder 7289a3cc3d Bump version number 2019-08-21 10:34:14 -07:00
ViViDboarder 98fccb0a5a Fix max width of author card content to prevent distortion of author photo 2019-08-21 10:32:58 -07:00
ViViDboarder 17dfd8d049 Build post merge from upstream 2019-08-21 10:23:52 -07:00
John O'Nolan f5bba69235
Remove unused conditional
Closes #593
2019-08-21 13:53:47 +08:00
Pedro Almeida 788ee59fd4 Improve gulp globbing (#598) 2019-08-21 13:51:43 +08:00
ViViDboarder 0b466c85de Merge remote-tracking branch 'upstream/master' 2019-08-20 18:45:30 -07:00
Fabien O'Carroll a6ce913546 2.10.6 2019-08-06 17:34:38 +08:00
Renovate Bot 8ad3b82f58 Update dependency gscan to v2.7.0 2019-08-01 03:27:54 +00:00
Renovate Bot c66d64dd79
Update CSS preprocessors 2019-08-01 00:48:07 +00:00
Rish 095d7f85c6 2.10.5 2019-07-30 20:24:26 +05:30
David Darnes 812b9ba657
Merge pull request #599 from mvasilkov/pre-selection-color-patch
Better contrast for selected text inside `pre code` blocks
2019-07-30 12:26:16 +01:00
Mark Vasilkov 56d1ff2337 Better contrast for selected text inside `pre code` blocks 2019-07-30 14:08:45 +03:00
Aileen Nowak dc74e24d0c 🔗 Updated docs link to be version-less 2019-07-25 14:56:04 +08:00
Kevin Ansfield e4e97aefa9 2.10.4 2019-07-23 12:01:47 +01:00
Aileen Nowak df7c2321c6 Updated links to docs site 2019-07-22 18:25:22 +08:00
Fabien O'Carroll 6886798b60 2.10.3 2019-07-01 13:31:22 +07:00
Renovate Bot 42c26629bf Update dependency autoprefixer to v9.6.0 2019-07-01 03:31:32 +00:00
Renovate Bot 89a12765be
Update dependency gscan to v2.6.2 2019-07-01 00:31:51 +00:00
Nazar Gargol fa54c4713f 2.10.2 2019-06-04 13:01:40 +02:00
Renovate Bot 0494b48ad0
Update dependency gulp to v4.0.2 2019-06-01 01:29:25 +00:00
Renovate Bot e6cb772b2d Update dependency gscan to v2.6.0 2019-06-01 01:28:55 +00:00
Fabien O'Carroll 2dad5af417 2.10.1 2019-05-14 11:16:04 +02:00
Nazar Gargol 43b8f3d11a Substituted deprecated {{each}} helper with recommended {{foreach}}
refs https://github.com/TryGhost/gscan/issues/123

- As documentation says (https://docs.ghost.org/api/handlebars-themes/helpers/foreach/)  {{foreach}} should always be used instead of native {{each}} helper
- Deprecation warning was implemented in gscan and  will prompt when uploading the theme
2019-05-07 15:37:14 +02:00
Nazar Gargol 21d097d530 2.10.0 2019-05-07 12:37:29 +02:00
Kevin Ansfield ec296edfa0
Added support for code cards with captions (#575)
refs https://github.com/TryGhost/Ghost/pull/10719

- adds styling for `.kg-code-card` so that code blocks are styled the same no matter if they are top-level or inside of a `<figure>` element
2019-05-01 17:12:18 +02:00
renovate[bot] ff43de1c63 Lock file maintenance (#572) 2019-05-01 10:38:23 +02:00
Kevin Ansfield 0b17a6ac06
Re-build CSS using latest dependencies (#573)
no issue

- CSS preprocessor dependencies have been updated, this re-builds the CSS to match the latest processed output
  - the primary change is the addition of the `::-moz-selection` vendor prefix
2019-05-01 10:28:34 +02:00
Renovate Bot 64fdc798d9
Update dependency gulp to v4.0.1 2019-05-01 01:26:49 +00:00
Renovate Bot 88552e5d18 Update dependency gscan to v2.5.1 2019-05-01 01:26:28 +00:00
Fabien O'Carroll 93c4ea58ed 2.9.11 2019-04-23 11:34:46 +02:00
Hannah Wolfe 87abdc2c31 Updated travis.yml file 2019-04-18 14:10:35 +01:00
Hannah Wolfe dc05ff2f49 Update Renovate Configuration
- Use the new shared configuration
- This is a special config for themes which is scheduled monthly, not weekly.
2019-04-17 21:38:32 +01:00
Hannah Wolfe 50c53f4263 Updated .travis.yml file
- most up-to-date version of our config
2019-04-17 21:26:56 +01:00
Rish 2a5aac2719 2.9.10 2019-04-16 16:42:31 +05:30
Aileen Nowak b4d0219d4e Added livereload for .hbs files 2019-04-15 12:55:37 +08:00
Renovate Bot 85fed4f083 Lock file maintenance 2019-04-15 02:34:36 +00:00
Renovate Bot aac62daaca Update dependency gscan to v2.4.1 2019-04-15 01:28:38 +00:00
Nazar Gargol fef2307d6d 2.9.9 2019-04-09 19:30:37 +08:00
Renovate Bot de8b83738e Lock file maintenance 2019-04-08 04:37:12 +00:00
Renovate Bot 4a2e9c9b20 Update dependency @tryghost/release-utils to v0.3.2 2019-04-08 03:26:03 +00:00
Renovate Bot 070bed3f40 Update dependency gscan to v2.4.0 2019-04-08 02:29:24 +00:00
Renovate Bot 7f8990c0d8 Update css processors 2019-04-08 01:29:23 +00:00
Kevin Ansfield 23bd9cc1d5 2.9.8 2019-04-04 14:58:47 +01:00
Hannah Wolfe 8e5c1b22dd Updated .travis.yml file
- ran slimer fix travis to get latest settings
2019-04-03 19:38:58 +01:00
Hannah Wolfe c4fb156508 Added SECURITY.md file
- Consistent with other public repos
- Points at our docs on how to report security issues
2019-04-03 19:38:16 +01:00
Hannah Wolfe 91ffa335de Update Renovate Configuration
Updates the base configuration to include:
- node support policy
- lockfile maintenance
- optimistic automerging
2019-04-02 17:54:50 +01:00
Kevin Ansfield 0d8f4471d9 2.9.7 2019-04-02 10:02:13 +01:00
Nazar Gargol 4464d5809b Fixed deprecated {{lang}} helper usage
no issue

- {{lang}} helper was deprecated in favor of {{@site.lang}} with 73e008270d
2019-04-02 12:39:00 +08:00
Rish 37c0f22b09 2.9.6 2019-03-19 16:41:50 +05:30
Renovate Bot 7706045616 Update dependency @tryghost/release-utils to v0.3.1 2019-03-19 14:38:30 +05:30
renovate[bot] 51b93e389c Update dependency autoprefixer to v9.5.0 (#553) 2019-03-18 14:29:41 +00:00
kirrg001 b1ce464ea3 Added .yarnrc
no issue

- Casper uses `%s` tag naming
- Let's keep this, otherwise release order is broken
- Ghost & Ghost-Admin use this notation too
- It will tell `yarn version` to use `%s` instead of `v%s`
2019-03-15 14:38:26 +01:00
kirrg001 8729dafcf5 Extended `yarn ship`: more automation
no issue

- added gulp task to extend casper release automation
- will draft the release for you
- will get the user facing commits from changelog
- runs after `yarn ship` (postship)
- full automation with env variables is possible
2019-03-15 14:38:26 +01:00
kirrg001 406ef78109 Gulpfile ES6
no issue

- ES6
2019-03-15 14:38:26 +01:00
Kevin Ansfield 2bf64cbffc v2.9.5 2019-03-12 18:38:14 +00:00
Kevin Ansfield a212518827 🐛 Fixed incorrect/missing colours for various elements
closes https://github.com/TryGhost/Casper/issues/548
- the recent postcss upgrade resulted in real CSS variables being output with a fallback mechanism, unfortunately this broke a number of colors throughout the theme
- disabled the fallback mechanism to revert back to the previous behaviour
2019-03-12 18:14:48 +00:00
Nazar Gargol 2da714ef2e Upgrading Casper to 2.9.4 2019-03-12 20:23:45 +08:00
Hannah Wolfe 66def0d7c0 Update Renovate Configuration
- schedule renovate for early monday mornings
2019-03-10 17:50:24 +00:00
Hannah Wolfe 6640701aeb Regenerate yarn.lock
- results in clean lodash versions
- needed due to lodash security vuln
2019-03-10 17:44:44 +00:00
Renovate Bot 7fec21f7d9 Update dependency gscan to v2.3.0 2019-03-10 17:39:42 +00:00
Hannah Wolfe 018423738e 🛠 Always build before test, test before ship
- Make sure we update our build files before running tests
- This also ensures they get updated before shipping
2019-03-10 17:30:20 +00:00
Hannah Wolfe 371ad586d3 Updated all built assets
- many dependencies have changed, need to rebuild
2019-03-10 17:30:20 +00:00
Hannah Wolfe 06c8020c16 Re-written gulpfile for gulp 4
- use the new, simpler format
- sourcemap and watch support is built in, so these plugins can be removed
- remove js filter - not sure what that did :/
- simplified task structure
2019-03-10 17:30:20 +00:00
Renovate Bot 3a40332515 Update gulp 2019-03-10 17:30:20 +00:00
Renovate Bot 56c9795306 Update css processors 2019-03-10 16:09:25 +00:00
Renovate Bot dd19a0a65b Update css processors 2019-03-10 16:07:35 +00:00
Renovate Bot 3b3a091069 Update gulp 2019-03-10 15:27:03 +00:00
Renovate Bot ff189b7c08 Update dependency gscan to v2.2.1 2019-03-10 15:21:18 +00:00
Hannah Wolfe 5bbaa68863
Update Renovate Configuration
- make PR names make more sense
2019-03-10 15:19:51 +00:00
Kevin Ansfield 10672c642e 🐛 Fixed author cover images not displaying
closes https://github.com/TryGhost/Casper/issues/542
- user model has `cover_image` property rather than `feature_image`
2019-03-08 08:47:58 +00:00
Hannah Wolfe 3e7a85a82e Update renovate.json
- group CSS dependencies together
2019-03-04 19:53:35 +00:00
Renovate Bot 8fa0aa1b64 Pin dependencies 2019-03-04 19:48:25 +00:00
Hannah Wolfe 18018d9edf Update renovate.json 2019-03-04 19:45:12 +00:00
Renovate Bot e0faae69ed Add renovate.json 2019-03-04 19:45:12 +00:00
Fabien O'Carroll bf89e8e5ab v2.9.3 2019-02-21 11:56:29 +01:00
John O'Nolan c8c63d170c Fix bug with embeds overflowing content width 2019-02-18 12:54:29 +07:00
Rish 40ae0e97f9 Upgrading Casper to 2.9.2 2019-02-12 16:17:57 +05:30
kirrg001 6541544026 Added "yarn ship" command
no issue

- @TODO: add the ability to draft a release when running `yarn ship`
2019-02-11 19:30:21 +01:00
kirrg001 d92b90db96 Updated .travis.yml to use Node v10
no issue

- see 99c3338ca9 (diff-354f30a63fb0907d4ad57269548329e3)
- see https://docs.ghost.org/faq/node-versions/
2019-02-11 16:42:11 +01:00
Kevin Ansfield 9ababa2886 Upgrading Casper to 2.9.1 2019-01-22 11:04:56 +00:00
gustawdaniel 047c7c0c9c Added missing closing brackets in partials/header.hbs styles (#521) 2019-01-22 11:04:03 +00:00
Fabien O'Carroll 273e987240 Updated gulp to handle errors for every stream (#500)
no-issue

Previously we only added an error handler to the first stream in each
pipeline, this meant that if another stream errors you would get
unhelpful error handlers.
2019-01-22 11:00:10 +00:00
Wes Cossick 0171b3e05b Use a larger logo size (#520) 2019-01-15 22:51:08 +07:00
Fabien O'Carroll 72a9416197 Upgrading Casper to 2.9.0 2019-01-15 14:01:40 +01:00
John O'Nolan f57f9ebc99 Update no-image classes
Closes https://github.com/TryGhost/Casper/pull/513
2019-01-15 15:06:19 +07:00
Nazar Gargol b2322157d5 Migrated from @blog -> @site
no issue

- This rename is due to new {{@site}} alias introduced in Ghost (dd1cf5ffc7) as {{@blog}} variable is deprecated now, and will be removed in v3
2019-01-08 17:37:14 +00:00
Naz Gargol 3b8f3f1eac
Bumped default Ghost API version to v2
no issue

- This change is due to Content API becoming stable https://github.com/TryGhost/Ghost/releases/tag/2.10.0
2019-01-08 14:30:22 +00:00
Nazar Gargol 7d080d564f Upgrading Casper to 2.8.1 2019-01-08 11:48:06 +00:00
John O'Nolan 3388283f02 2019 2019-01-01 14:18:28 +00:00
Kevin Ansfield 475c015fa2 Upgrading Casper to 2.8.0 2018-12-17 14:13:04 +00:00
John O'Nolan 79ebbd50a3
Responsive images (#505) 2018-12-17 12:25:57 +00:00
kirrg001 a22dda9694 Upgrading Casper to 2.7.1
no issue
2018-12-11 12:03:03 +01:00
汪磊 3c2347c7f9 🎨 Optimised infinite scroll (#503)
no issue
- removed jQuery usage
- use the `<link rel="next">` tag provided by Ghost to determine the next page to fetch
2018-12-05 12:38:11 +00:00
ViViDboarder 9fe76df799 Update package.json to give fork a new name 2018-11-28 18:00:52 -08:00
ViViDboarder 6be42f38cc Merge branch 'master' of github.com:TryGhost/Casper 2018-11-28 17:48:39 -08:00
Kevin Ansfield f695d69aeb Upgrading Casper to 2.7.0 2018-10-16 15:45:26 +01:00
Aileen Nowak d53b25bf5d
Remove double slash in link
no issue
2018-10-12 12:56:54 +07:00
Aileen Nowak bef56a2294 Minified js (#485)
no issue

- Added a `js` task to run on the gulp build process and minifies our js files
- Changed the required scripts in `default.hbs` to use the minified js files in `/built/`
- Moved existing `js` tasks from `zip` task
2018-10-12 12:41:06 +07:00
John O'Nolan 5ad6e1ed1f
Add titles to icon links 2018-10-12 12:01:05 +07:00
Nazar Gargol 36971db512 Upgrading Casper to 2.6.4 2018-10-09 16:06:07 +02:00
Péter Szabolcs Nagy bfcab7172f Minified javascript in zip(#476)
no issue

* Added js minification step to gulp zip script
2018-10-08 16:34:07 +05:30
John O'Nolan fce92d6cf1
Link to required dependencies
Refs https://github.com/TryGhost/Casper/pull/468
2018-10-08 11:45:06 +07:00
Oshawk d48178fde9 Remove css rule that stops syntax highlighting (#484)
* Remove suspect css rule

Removed the ".post-full-content pre code * { color: inherit }" rule which prevents highlight.js from working.

* Changed to just exclude span

Less disruptive to just remove span from color inheritance.

* Remove extra newline
2018-10-08 06:40:06 +02:00
Antonio 6f4fe840b3 [Fix] Inline <code> tag word-break inside a <p> tag (#483) 2018-10-08 06:38:28 +02:00
Fabien O'Carroll 8a9efb5ef1 Upgrading Casper to 2.6.3 2018-09-25 11:32:08 +07:00
Peter Zimon 04854967a8 Adjusting spaces for galleries and wide images in a sequence (#480) 2018-09-24 14:35:47 +02:00
Nazar Gargol fa18115aa6 Upgrading Casper to 2.6.2 2018-09-11 13:42:34 +02:00
Aileen Nowak ae192a9fff 🐛 Fixed word-wrap for extra long anchor links text (#478)
refs #466

Anchor links didn't break, when the text was too long. Using `word-break: break-all` specifically on a-tags in post-content fixes this without screwing up other tags and their breaks.
2018-09-07 14:45:18 +02:00
kirrg001 78993720fd Upgrading Casper to 2.6.1 2018-08-31 11:26:01 +01:00
Zimo 676e17bd13 Restructure spacings for generic figure element 2018-08-31 11:24:50 +01:00
kirrg001 67e595741c Upgrading Casper to 2.6.0 2018-08-30 17:45:43 +01:00
Kevin Ansfield 7a88c88ea2 Added Koenig gallery card support (#475)
no issue

- Update CSS and JS for new gallery card
- Updates CSS to support new gallery card
- Adds JS to support grid layout for gallery view
- Fix gallery breakout size
- Refining styles for gallery card
2018-08-30 17:44:55 +01:00
Kevin Ansfield a0e42e0599 Rebuild CSS 2018-08-30 14:56:38 +01:00
Kevin Ansfield dc3bb316c7 Fixed incorrect image aspect ratio when images have width/height attrs
no issue
- when large images have width/height attributes but the image is constrained to it's container or `max-width` style the aspect ratio would be broken because browsers use the `height` attribute value even though the width is smaller
2018-08-30 14:49:40 +01:00
kirrg001 7380ed0291 Upgrading Casper to 2.5.1 2018-08-22 14:31:02 +02:00
Kevin Ansfield ecaf3d921f 🐛 Fixed image positioning on pages
closes https://github.com/TryGhost/Casper/issues/473
- added missing `<div class="post-content">` wrapper around `{{content}}`
2018-08-21 17:47:42 +01:00
kirrg001 89ea6c5872 Upgrading Casper to 2.5.0 2018-08-16 13:59:03 +02:00
Hannah Wolfe 9d803067a4
🛠 Added .travis.yml and gscan tests (#470)
- Add gscan dependency & travis.yml file, so that we can run gscan as a test for this repo
- This check tells us whether or not the theme is valid & compatible with Ghost according to gscan
- We recommend that all themes do this!
2018-08-14 22:10:01 +01:00
Hannah Wolfe 0ea375643b
Added required "ghost-theme" keyword
- We're going to start showing this as a warning in gscan
- The purpose is to give us a way to detect if a package is a valid Ghost theme
2018-08-13 14:29:56 +01:00
kirrg001 f31957bd0d Replaced {{author}} by {{primary_author}} in byline-single.hbs
refs https://github.com/TryGhost/gscan/issues/99

- single author usages will be deprecated in Ghost 2.0
- make Casper 100% compatible with Ghost 2.0
2018-08-12 15:02:03 +02:00
John O'Nolan 36841d4624
Set minimum Ghost version to 2.0 2018-08-11 20:22:43 +01:00
Kevin Ansfield d41fcbbc8a Remove `.kg-card-markdown` styles
no issue
- `.kg-card-markdown` no longer exists in Ghost 2.x
2018-08-11 19:09:58 +01:00
kirrg001 5d318225f5 Upgrading Casper to 2.4.2 2018-08-08 17:08:21 +02:00
Nulla Wu 9b56779ca6 Use id attribute to query reading progress element (#467)
no issue
- using an `id` selector doesn't break if other `progress` elements are present on a page
2018-08-03 09:21:05 +01:00
Kevin Ansfield 1bf2cdb52a Upgrading Casper to 2.4.1 2018-07-31 11:31:35 +01:00
Peter Zimon f67caaba5c 🐛 Fixed content overflow on mobile
closes https://github.com/TryGhost/Casper/issues/464
- setting max-width of `kg-markdown-card` wrapper that is still used by non-Koenig posts
2018-07-30 12:21:17 +01:00
kirrg001 25d1e368d6 Upgrading Casper to 2.4.0 2018-07-24 15:13:30 +02:00
Kevin Ansfield 5c6cce1519
Ghost 1.25 Koenig updates (#463)
refs https://github.com/TryGhost/Ghost/pull/9741
- Ghost 1.25 has updated the HTML output of Koenig beta posts
  - the `<div class="kg-post">` wrapper around post content has been removed
  - for image cards the `.kg-image-wide` and `.kg-image-full` classes have been changed to `.kg-width-wide` and `.kg-width-full` and applied to the `<figure>` element rather than the `<img>` element
- this will be the default for *all* posts after upgrading to Ghost 2.0

Example output of the `{{content}}` helper for Koenig beta...

Before 1.25.0 (Ghost 1.23.0-1.24.9):
```html
<div class="kg-post">
    <figure class="kg-image-card">
        <img class="kg-image kg-image-wide" src="...">
        <figcaption>example wide image</figcaption>
    </figure>
</div>
```

After 1.25.0:
```html
<figure class="kg-image-card kg-width-wide">
    <img class="kg-image" src="...">
    <figcaption>example wide image</figcaption>
</figure>
```

For reference, in Ghost 1.x a non Koenig post with nothing but an image in the markdown (`![](...)`) would generate output like this:

```html
<div class="kg-card-markdown">
    <img src="...">
</div>
```
2018-07-23 12:20:46 +01:00
Kevin Ansfield 019842155a Upgrading Casper to 2.3.3 2018-06-14 17:00:26 +01:00
Peter Zimon 1860a8305b Koenig embed card (#460) 2018-06-13 18:34:59 +01:00
John O'Nolan 6417b4cf2a Fix rendering bug for non-square user images 2018-06-06 19:29:22 -07:00
Kevin Ansfield 1c61bc5f16 Upgrading Casper to 2.3.2 2018-05-29 16:10:07 +01:00
Kevin Ansfield 7a7f04c716 Update built files 2018-05-29 16:09:40 +01:00
Kevin Ansfield fd56128f9b Upgrading Casper to 2.3.1 2018-05-29 15:40:50 +01:00
malfusion cd3b470c18 Fix for missing default avatar and firefox footer misalignment (#458) 2018-05-29 10:38:27 +02:00
Kevin Ansfield f3b44a7411 Upgrading Casper to 2.3.0 2018-05-22 20:17:56 +01:00
Peter Zimon b83917060f Applying styles for Koenig content (#455)
refs https://github.com/TryGhost/Ghost/issues/9311
- move `.kg-card-markdown` styles and add deprecation notice
- add support for new `.kg-post` wrapper
- add support for `.kg-image` and `.kg-image-wide/full` image variants
- add support for image captions
2018-05-22 19:09:58 +01:00
Zimo 4aaedf69d2 Running CSSComb 2018-05-21 17:36:08 +02:00
Aileen Nowak 03ac0d91b8 Upgrading Casper to 2.2.1 2018-04-24 10:53:15 +08:00
John O'Nolan b55d5e2b32 Remove unnecessary role attributes from main element
Source: https://validator.w3.org/nu/#textarea
2018-04-17 22:19:05 +02:00
John O'Nolan 4fe2eac739 Additional comments 2018-04-12 10:05:53 +02:00
John O'Nolan 6e3399366d Small refactor of multi-authors 2018-04-12 10:05:40 +02:00
John O'Nolan 98e9c12018 Split out different byline templates into separate files 2018-04-11 11:05:25 +02:00
kirrg001 986a954f33 Upgrading Casper to 2.2.0
no issue
2018-04-10 23:27:53 +02:00
John O'Nolan 636882bce4 Fix mobile display bug on smaller screens 2018-04-10 20:34:35 +02:00
Peter Zimon 79e113226c Multiple authors in Casper (#448) 2018-04-10 20:19:29 +02:00
John O'Nolan 8e865b797b Maybe fix it properly this time instead of completely failing 2018-04-10 15:29:09 +02:00
John O'Nolan a655b59e69 Fix link target size 2018-04-10 15:27:01 +02:00
John O'Nolan b078dcb86e Updated hover animations 2018-04-10 15:21:25 +02:00
Aileen Nowak d5002f2c51 🐛 Fixed infinitescroll when a paged url is loaded directly (#447)
closes #445
- added an fn to sanitize the pathname, that might include a pagination url
- fixed an issue, where the request would still be made if the current page is bigger than max pages
- added comments
2018-04-10 10:04:43 +01:00
Kevin Ansfield 41bcbb7157 💨 Infinite scroll perf improvements
no issue
- swap jQuery HTML parsing and insertion for pure DOM
- remove fade animation
- increase buffer by 100px so next page request happens sooner
2018-04-09 11:03:48 +01:00
Aileen Nowak 452776939c Added yarn.lock and updated README for new yarn scripts
no issue
2018-04-09 16:19:05 +08:00
Santhosh veer 57c31ddacb Add HTML lang head tag (#429)
Refs #286
2018-04-06 20:49:42 +02:00
Hannah Wolfe 21088b1d38 Slack -> Forum
- replacing references to slack with forum
2018-04-02 16:35:21 +01:00
Aileen Nowak 16f283e675 Upgrading Casper to 2.1.10 2018-03-16 15:53:45 +07:00
Aileen Nowak 942054ba0d Revert "Upgrading Casper to 2.2.0"
This reverts commit 782aba3991.
2018-03-16 15:52:56 +07:00
Aileen Nowak 782aba3991 Upgrading Casper to 2.2.0 2018-03-16 09:50:09 +07:00
ViViDboarder 9c5dec3bc7 Merge branch 'syntax-highlighting' 2018-03-13 17:48:57 -07:00
ViViDboarder d13984d974 Add Prism for syntax highlighting 2018-03-13 17:48:40 -07:00
ViViDboarder 0a7f8e7e7f Merge branch 'blog-title-to-posts' 2018-03-13 13:03:52 -07:00
ViViDboarder f1bf99c4ba Append blog title to post titles to improve SEO 2018-03-13 13:03:11 -07:00
Aileen Nowak 9df85fbbe5 CSS built and comb
no issue
2018-02-27 11:48:17 +07:00
Paul Corbett 1e10549ee2 🐛Fixed render issue with code blocks in lists (#436)
Closes #415

* Add max-width to ul & ol tags
2018-02-27 11:43:39 +07:00
Paul Corbett a6eb6848de Removed obsolete gulp-nodemon (#435)
Closes #420

* Remove gulp-nodemon from dev dependencies
* Remove required dependency from gulpfile
2018-02-27 11:18:32 +07:00
Harry Kalantzis 6788302f62 🐛Removed unnecessary slash from Feedly URL (#437)
closes #434.
2018-02-27 11:11:29 +07:00
Kevin Ansfield 67e55abfed Upgrading Casper to 2.1.9 2018-01-23 16:19:58 +00:00
Jochen Kirstätter bfaae0f7ba 🐛 Fixed Feedly URL and protocol (#418)
no issue

* Changed Feedly URL to HTTPS protocol
* Updated Feedly URL pattern
2018-01-23 10:30:03 +07:00
Kevin Ansfield edfafffd32 Upgrading Casper to 2.1.8 2018-01-03 13:47:12 +00:00
John O'Nolan 7798bf115f 2018 2018-01-02 21:48:53 +00:00
Aileen Nowak 9395846fdf Upgrading Casper to 2.1.7 2017-11-21 21:26:49 +08:00
Joseph Frazer 99fad4cbc4 Fix colors in code blocks
Closes #407
The font color should be inherited to avoid "invisible" text.

* fix conflicts with upstream branch
2017-11-21 17:50:54 +08:00
Aileen Nowak 990f712209 💅 CSS comb and built
no issue
2017-11-20 13:42:32 +08:00
Joona Viertola 4ff4b4c7f8 Removed double semicolons (#400)
no issue
2017-11-20 13:38:20 +08:00
Aileen Nowak de05d90fe9 Upgrading Casper to 2.1.6 2017-10-26 19:03:21 +07:00
Kevin Ansfield 978e54403c 🐛 Do not exclude `assets/css` from built zips
no issue

https://github.com/TryGhost/Casper/pull/403 added optimisations for reducing size of zip files but unfortunately it also stripped out `assets/css` which means that it's no longer possible to download the theme from the admin panel and use it for development.

- remove `assets/css` from the ignored files in the `zip` task
2017-10-24 12:08:26 +01:00
Aileen Nowak 73bd9c630e Upgrading Casper to 2.1.5 2017-10-24 16:10:48 +07:00
Mattia Natali 9597a28320 🎨 Optimized gulp zip file generation (#403)
no issue

- Optimised the `gulp zip` task, so the zip file doesn't include the `assets/css` (`built` folder is used for CSS) and the `dist` folder (is used to output the zip file)
2017-10-23 16:52:52 +07:00
Aileen Nowak 461639886e Upgrading Casper to 2.1.4 2017-10-03 18:20:14 +07:00
Kevin Ansfield 7592ad182b 🔒 Added `rel="noopener"` to all `target="_blank"` links (#398)
closes #394
- closes potential phishing avenues by preventing external sites from changing the blogs url in the background after opening
- see https://mathiasbynens.github.io/rel-noopener/ for more info
2017-10-03 16:42:08 +07:00
Kevin Ansfield 97a522a037 Fix permissions on certain files 2017-10-02 13:29:23 +01:00
Chaotic Law 25f12d760b Fix typo in default.hbs (#393) 2017-09-29 08:23:39 -04:00
Kevin Ansfield 4f78d99112 Upgrading Casper to 2.1.3 2017-09-26 14:38:05 +01:00
Aileen Nowak f5b7b45f2e Remove `/dist/casper.zip`
no issue

With https://github.com/TryGhost/Casper/pull/384 the directory `/dist` was created and includes a `casper.zip` file. The PR, that got merged after that (https://github.com/TryGhost/Casper/pull/374) actually implemented the creation of this, but also added the directory to `.gitignore` so it wouldn't be pushed to the repo.
2017-09-19 12:01:17 +07:00
Yoran Brondsema d34ff1d32b Add a Gulp task to create the zip (#374) 2017-09-18 09:37:00 -07:00
Yoran Brondsema 73a1ab52da Add the same .editorconfig as from the Ghost repository (#384) 2017-09-18 09:35:53 -07:00
Aileen Nowak 5ec77dfb31 Upgrading Casper to 2.1.2 2017-09-12 18:34:23 +07:00
John O'Nolan 269d2b5787 Fix border radius bug on featured posts 2017-09-07 09:34:44 -07:00
kirrg001 d1d0bca2d8 Upgrading Casper to 2.1.1 2017-09-07 14:33:38 +02:00
Hannah Wolfe d92dda3523 Wrapped primary-tag get helper with if (#383)
closes #382

- If there is no primary tag, the filter will be invalid syntax
- This wraps the if helper and gets rid of errors in the logs
2017-09-07 14:31:42 +02:00
Kevin Ansfield ca325285bf Upgrading Casper to 2.1.0 2017-08-29 13:35:37 +01:00
John O'Nolan aee9f69bb0 Refactor headings, quotes and margins, mobile improvements
A few people commented how pull-quote styling is odd for blockquotes. I agree. This reverts casper to use more traditional blockquote styling, but maintains the special pullquote styling now over on the H5 element. So if you want nice/wide/centered blue text, use an H5.

- Closes https://github.com/TryGhost/Casper/issues/364
- Closes https://github.com/TryGhost/Casper/issues/368
2017-08-25 16:31:10 -04:00
Kevin Ansfield a7d5c885bd Upgrading Casper to 2.0.6 2017-08-22 12:38:02 +01:00
Kevin Ansfield 9bc5c92628 Fix z-index bug with header author profile image
no issue
- add z-index to `.site-header-content .author-profile-image` so it isn't covered by the header overlay
2017-08-22 12:05:09 +01:00
Niels 0f3651c23f 🎨 Do not stretch author profile image (#365)
- add `object-fit: cover` to `.author-profile-image` to prevent non-square images being stretched/squashed
2017-08-22 11:56:38 +01:00
Phoenix Eve Aspacio d739bb52a4 Fixed z-index bug with header social links on author page (#370)
no issue
- add z-index to `.author-bio` and `.author-meta` so they aren't covered by the header image overlay
2017-08-22 11:49:49 +01:00
Kevin Ansfield 8d17e9a452 Upgrading Casper to 2.0.5 2017-08-17 17:47:36 +01:00
Kevin Ansfield e4e6bb9c5a Fixed z-index bug with header title/description
closes #363
- add z-index to `.site-title` and `.site-description` so they aren't covered by the header overlay
2017-08-17 12:35:37 +01:00
John O'Nolan d2375a3917 Sticky footer
Closes https://github.com/TryGhost/Casper/issues/354, Closes https://github.com/TryGhost/Casper/issues/362
2017-08-16 11:57:39 +01:00
John Thile 577b92811c Add progress bar styling for Firefox (#360)
I alter this color to reddish for my own site, so it stood out much more easily than the Casper blue not matching the Firefox default. Autoprefixer isn't handling this one. Also, I tried adding this rule, comma separated, to the immediately above webkit rule... but it doesn't actually work when I do that, for some reason. Sorry for the redundancy!

https://developer.mozilla.org/en-US/docs/Web/CSS/::-moz-progress-bar
2017-08-16 11:43:58 +01:00
Kevin Ansfield 2f385ba5f1 Upgrading Casper to 2.0.4 2017-08-15 18:01:02 +01:00
John O'Nolan b024b544e4 Fixed janky webkit border-radius bug
Closes https://github.com/TryGhost/Casper/issues/352
2017-08-14 11:22:27 +01:00
John O'Nolan 9caeb2a2e7 Fixed wide blockquote bug when used first in post
Closes https://github.com/TryGhost/Casper/issues/355
2017-08-14 11:11:12 +01:00
John O'Nolan 12d139aa7d Fixed z-index bug on index post-feed
Closes https://github.com/TryGhost/Casper/issues/349, closes https://github.com/TryGhost/Casper/pull/350
2017-08-14 11:03:28 +01:00
Hannah Wolfe 690e1bad1f Added issue template 2017-08-12 13:17:42 -04:00
kirrg001 c63804006d Upgrading Casper to 2.0.3 2017-08-10 16:13:08 +02:00
kirrg001 65d0104224 ⬆️ Bump Ghost engine
no issue

- The minimum Ghost version is now 1.2.0
- In 1.2.0 we introduced the primary tag feature
- See https://dev.ghost.org/primary-tags
2017-08-10 16:10:55 +02:00
Hannah Wolfe ba10cb1516 🎨 Update to use Primary Tag syntax (#337)
refs TryGhost/Ghost#8668

- In Ghost 1.2.0 we introduce primary_tag as a calculated property
- Casper can be updated to use this for clarity
2017-08-10 16:10:17 +02:00
Hannah Wolfe d7ca6fd2f6 🎨 Added specific 404 template & simplified fallback (#348)
no issue

- The 404 Error template can have a little more fancy logic than other templates
- Therefore, we make the 404 template have the get helper
- The fallback general error template has no use of the get helper
- This helps ensure that errors can be rendered
2017-08-10 14:34:23 +01:00
John O'Nolan 10f11bb14f Update image caption margins 2017-08-09 14:10:28 +01:00
John O'Nolan 7d4f93bf23 Added support for basic image captions
See https://github.com/TryGhost/Ghost/issues/8859
2017-08-09 13:26:08 +01:00
John O'Nolan 11f61782ad Keep logo vertically centred when there's no navigation
Closes https://github.com/TryGhost/Casper/issues/338
2017-08-08 16:23:18 +01:00
John O'Nolan fd108b1b40 Corrected navigation z-index bug
Closes https://github.com/TryGhost/Casper/issues/345
2017-08-08 16:14:06 +01:00
John O'Nolan 33005666ca Set overflow auto on tables
Closes https://github.com/TryGhost/Casper/issues/328

This applies mobile styles everywhere, which is not really ideal tbh - but covers all cases.
2017-08-08 15:58:54 +01:00
John O'Nolan 1767ca59b8 Added CSScomb and combed 💇🏻 2017-08-02 12:41:14 +04:00
kirrg001 5cafa756ef Upgrading Casper to 2.0.2 2017-08-01 10:32:11 +04:00
Phoenix Eve Aspacio 08e5cbe021 Prevent floating navigation from blocking the text header in fragmented urls (#334)
Prevent floating header from covering the header when a fragment identifier enabled URL is opened.
2017-08-01 09:50:32 +04:00
John O'Nolan 615d8a9001 Fixed broken author links due to z-index issue
Closes https://github.com/TryGhost/Casper/issues/333
2017-07-31 19:44:07 +04:00
John O'Nolan f08f07fd7e Fixed Firefox responsive video bug
Closes https://github.com/TryGhost/Casper/issues/330

As usual Firefox is the bane of fucking everything and despite IE7 calling multiple times wanting its rendering back, here we are. Responsive video embeds insider a flexbox element do not work in Firefox and require an additional (very specific) wrapping div. I've adjusted the Fitvids.js script here to include that div in its injection along with the requisite styles. It's a horrible hack. Spent 2 hours trying to find another way but I cant.
2017-07-31 19:38:16 +04:00
John O'Nolan 2565c16916 Fix minor visual bug with clipped descenders in floating header 2017-07-31 17:14:00 +04:00
Hannah Wolfe 4b66223bb3 🐛 Only show related posts widget if there are posts available (#332)
no issue

- use a block param and if combo to add a guard to the get helper
- this ensures that the widget is only displayed if there is content available to display
2017-07-28 19:10:54 +04:00
John O'Nolan 35e91ecee9 Better support for iframes 2017-07-27 13:12:04 +04:00
kirrg001 2b2d6e6d14 Upgrading Casper to 2.0.1 2017-07-27 11:48:43 +04:00
John O'Nolan cd4e0e03f5 Better support for the video element 2017-07-27 11:15:19 +04:00
Hannah Wolfe 3993cbdcfa Update disqus embed to use `{{comment_id}}`
refs TryGhost/Ghost#8760

- disqus code must use `{{comment_id}}` instead of `{{id}}` from 1.0.0 onwards.
2017-07-26 23:01:14 +04:00
John O'Nolan 6c5d6af6d0 Fix post images overflowing viewport on mobile
See #322
2017-07-20 17:27:02 +04:00
David Wolfe 9aa6ff1716 Merge pull request #327 from AileenCGN/1.0.0/infinite-scroll-fix
🎣  Infinite scroll: no API request on last page
2017-07-11 09:26:21 +01:00
David Wolfe 551aeb3ca5 Merge pull request #326 from AileenCGN/1.0.0-dev/delete-unused-share-partial
🔥  Delete unused partial `share.hbs`
2017-07-11 09:01:16 +01:00
Aileen Nowak 8690450eae 🎣 Infinite scroll: no API request on last page
no issue

Brings back a little safety guard: when the current page is also the last page, don't make an API request to the server.
2017-07-11 12:32:58 +07:00
Aileen Nowak 2fdfc5285d 🔥 Delete unused partial `share.hbs`
no issue

Partial is not used in Casper!
2017-07-11 09:49:53 +07:00
Kevin Ansfield 0f9410fb3d 💄 refactor infinite scroll (#325)
closes #321, closes #323
- use `requestAnimationFrame` and related techniques to minimise scroll processing
- add an `isLoading` guard to ensure we don't try to process anything until the next page has been loaded+inserted
- check for a 404 as an indication we've loaded as many pages as possible at which point the scroll behaviour is removed
- sanitize `window.location.pathname` to remove hash params and any double-slashes that may result
- add a 100px buffer from the bottom of the screen so that it's not necessary to exactly hit the bottom before infinite loading is triggered
2017-07-10 19:53:42 +07:00
汪磊 d3a9af0666 Remove infinitescroll in single page (#319)
* Remove infinitescroll in single page

* Update infinitescroll.js
2017-06-27 18:03:51 +07:00
John O'Nolan 96ffcdceed 😒😒😒😒😒😒😒😒 2017-06-27 11:30:11 +02:00
John O'Nolan aa80667232 Fix small images in content + minor typography improvements
Closes #320
2017-06-27 11:28:36 +02:00
Aileen Nowak 0914d43a86 💄 Infinite scroll (#316)
* 💄  Infinite scroll

closes #314

Adds infinite scroll logic to Casper 2.0

* use jquery min and not slim
2017-06-21 13:10:09 +01:00
Aileen Nowak d6d9711b9d ⛓ Fix broken tag link on post.hbs (#315)
no issue

Top link for tag was missing a `/`.
2017-06-20 08:55:16 +01:00
John O'Nolan 2ca409032a Full responsive table styles
- This took 5 hours
- FUUUUUU
2017-06-19 23:03:56 +01:00
John O'Nolan 902b6dcdbc Clean up trailing slashes
See https://github.com/TryGhost/Ghost/issues/8569
2017-06-19 14:54:03 +01:00
John O'Nolan 6f441794e4 Fix readme typo 2017-06-19 14:38:07 +01:00
52 changed files with 9120 additions and 2270 deletions

17
.github/workflows/deploy-theme.yml vendored Normal file
View File

@ -0,0 +1,17 @@
---
name: Deploy Theme
on:
push:
branches:
- master
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: TryGhost/action-deploy-theme@v1.4.0
with:
api-url: ${{ secrets.GHOST_ADMIN_API_URL }}
api-key: ${{ secrets.GHOST_ADMIN_API_KEY }}
theme-name: "vivid-casper-master"

9
.gitignore vendored
View File

@ -13,9 +13,16 @@ results
npm-debug.log
node_modules
package-lock.json
.idea/*
*.iml
projectFilesBackup
.DS_Store
.DS_Store
dist/
config.json
changelog.md
changelog.md.bk

View File

@ -1,4 +1,4 @@
Copyright (c) 2013-2017 Ghost Foundation
Copyright (c) 2013-2022 Ghost Foundation
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation

View File

@ -1,10 +1,10 @@
# Casper
The default theme for [Ghost](http://github.com/tryghost/ghost/). This is the latest development version of Casper. If you're just looking to download the latest release, head over to the [releases](https://github.com/TryGhost/Casper/releases) page.
The default theme for [Ghost](http://github.com/tryghost/ghost/). This is the latest development version of Casper! If you're just looking to download the latest release, head over to the [releases](https://github.com/TryGhost/Casper/releases) page.
&nbsp;
![screenshot-desktop](https://user-images.githubusercontent.com/120485/27221326-1e31d326-5280-11e7-866d-82d550a7683b.jpg)
![screenshot-desktop](https://user-images.githubusercontent.com/1418797/183329195-8e8f2ee5-a473-4694-a813-a2575491209e.png)
&nbsp;
@ -12,40 +12,49 @@ The default theme for [Ghost](http://github.com/tryghost/ghost/). This is the la
Ghost uses a simple templating language called [Handlebars](http://handlebarsjs.com/) for its themes.
We've documented our default theme pretty heavily so that it should be fairly easy to work out what's going on just by reading the code and the comments. Once you feel comfortable with how everything works, we also have full [theme API documentation](https://themes.ghost.org) which explains every possible Handlebars helper and template.
This theme has lots of code comments to help explain what's going on just by reading the code. Once you feel comfortable with how everything works, we also have full [theme API documentation](https://ghost.org/docs/themes/) which explains every possible Handlebars helper and template.
**The main files are:**
- `default.hbs` - The main template file
- `index.hbs` - Used for the home page
- `post.hbs` - Used for individual posts
- `default.hbs` - The parent template file, which includes your global header/footer
- `index.hbs` - The main template to generate a list of posts, usually the home page
- `post.hbs` - The template used to render individual posts
- `page.hbs` - Used for individual pages
- `tag.hbs` - Used for tag archives
- `author.hbs` - Used for author archives
- `tag.hbs` - Used for tag archives, eg. "all posts tagged with `news`"
- `author.hbs` - Used for author archives, eg. "all posts written by Jamie"
One really neat trick is that you can also create custom one-off templates just by adding the slug of a page to a template file. For example:
One neat trick is that you can also create custom one-off templates by adding the slug of a page to a template file. For example:
- `page-about.hbs` - Custom template for the `/about/` page
- `page-about.hbs` - Custom template for an `/about/` page
- `tag-news.hbs` - Custom template for `/tag/news/` archive
- `author-ali.hbs` - Custom template for `/author/ali/` archive
# Development
Casper styles are compiled using Gulp/PostCSS to polyfill future CSS spec. You'll need Node and Gulp installed globally. After that, from the theme's root directory:
Casper styles are compiled using Gulp/PostCSS to polyfill future CSS spec. You'll need [Node](https://nodejs.org/), [Yarn](https://yarnpkg.com/) and [Gulp](https://gulpjs.com) installed globally. After that, from the theme's root directory:
`$ npm install`
```bash
# install dependencies
yarn install
`$ gulp`
# run development server
yarn dev
```
Now you can edit `/assets/css/` files, which will be compiled to `/assets/public/` automatically.
Now you can edit `/assets/css/` files, which will be compiled to `/assets/built/` automatically.
The `zip` Gulp task packages the theme files into `dist/<theme-name>.zip`, which you can then upload to your site.
```bash
# create .zip file
yarn zip
```
# PostCSS Features Used
- Autoprefixer - Don't worry about writing browser prefixes of any kind, it's all done automatically with support for the latest 2 major versions of every browser.
- Variables - Simple pure CSS variables
- [Color Function](https://github.com/postcss/postcss-color-function)
- [Color Mod](https://github.com/jonathantneal/postcss-color-mod-function)
# SVG Icons
@ -57,4 +66,4 @@ You can add your own SVG icons in the same manner.
# Copyright & License
Copyright (c) 2013-2017 Ghost Foundation - Released under the [MIT license](LICENSE).
Copyright (c) 2013-2022 Ghost Foundation - Released under the [MIT license](LICENSE).

2
assets/built/casper.js Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
a,abbr,acronym,address,applet,article,aside,audio,big,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,ul,var,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}img{max-width:100%}html{box-sizing:border-box;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:inherit}a{background-color:transparent}a:active,a:hover{outline:0}b,strong{font-weight:700}dfn,em,i{font-style:italic}h1{margin:.67em 0;font-size:2em}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}mark{background-color:#fdffb6}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;color:inherit;font:inherit}button{overflow:visible;border:none}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input:focus{outline:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{padding:0;border:0}textarea{overflow:auto}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}html{overflow-y:scroll;font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body,html{overflow-x:hidden}body{color:#3c484e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:1.5rem;line-height:1.6em;font-weight:400;font-style:normal;letter-spacing:0;text-rendering:optimizeLegibility;background:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-font-feature-settings:"liga" on}::-moz-selection{text-shadow:none;background:#cbeafb}::selection{text-shadow:none;background:#cbeafb}hr{position:relative;display:block;width:100%;margin:2.5em 0 3.5em;padding:0;height:1px;border:0;border-top:1px solid #e3e9ed}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{margin:0;padding:0;border:0}textarea{resize:vertical}blockquote,dl,ol,p,ul{margin:0 0 1.5em}ol,ul{padding-left:1em;padding-right:1.5em}ol ol,ol ul,ul ol,ul ul{margin:.5em 0 1em}ul{list-style:disc}ol{list-style:decimal}li{margin:.5em 0;padding-left:.5em;line-height:1.6em}dt{float:left;margin:0 20px 0 0;width:120px;color:#15171a;font-weight:500;text-align:right}dd{margin:0 0 5px;text-align:left}blockquote{margin:1.5em 0;padding:0 1.6em;border-left:.5em solid #e5eff5}blockquote p{margin:.8em 0;font-size:1.2em;font-weight:300}blockquote small{display:inline-block;margin:.8em 0 .8em 1.5em;font-size:.9em;opacity:.8}blockquote small:before{content:"\2014 \00A0"}blockquote cite{font-weight:700}blockquote cite a{font-weight:400}a{color:#26a8ed;text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4,h5,h6{margin-top:0;line-height:1.15;font-weight:700;text-rendering:optimizeLegibility}h1{margin:0 0 .5em;font-size:5rem;font-weight:700}@media (max-width:500px){h1{font-size:2.2rem}}h2{margin:1.5em 0 .5em;font-size:2rem}@media (max-width:500px){h2{font-size:1.8rem}}h3{margin:1.5em 0 .5em;font-size:1.8rem;font-weight:500}@media (max-width:500px){h3{font-size:1.7rem}}h4{margin:1.5em 0 .5em;font-size:1.6rem;font-weight:500}h5,h6{margin:1.5em 0 .5em;font-size:1.4rem;font-weight:500}
/*# sourceMappingURL=global.css.map */
a,abbr,acronym,address,applet,article,aside,audio,big,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,ul,var,video{border:0;font:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}body{line-height:1}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}img{display:block;height:auto;max-width:100%}html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;box-sizing:border-box;font-family:sans-serif}*,:after,:before{box-sizing:inherit}a{background-color:transparent}a:active,a:hover{outline:0}b,strong{font-weight:700}dfn,em,i{font-style:italic}h1{font-size:2em;margin:.67em 0}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}mark{background-color:#fdffb6}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}kbd{background:#f6f8fa;border:1px solid rgba(124,139,154,.25);border-radius:6px;box-shadow:inset 0 -1px 0 rgba(124,139,154,.25);font-family:var(--font-mono);font-size:1.5rem;padding:3px 5px}@media (max-width:600px){kbd{font-size:1.3rem}}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{border:none;overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input:focus{outline:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{border:0;padding:0}textarea{overflow:auto}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{-webkit-tap-highlight-color:rgba(0,0,0,0);font-size:62.5%}body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-font-feature-settings:"liga" on;background:#fff;color:var(--color-darkgrey);font-family:var(--font-sans);font-size:1.6rem;font-style:normal;font-weight:400;letter-spacing:0;line-height:1.6em}::-moz-selection{background:#daf2fd;text-shadow:none}::selection{background:#daf2fd;text-shadow:none}hr{border:0;border-top:1px solid #f0f0f0;display:block;height:1px;margin:2.5em 0 3.5em;padding:0;position:relative;width:100%}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}::not(.gh-content) blockquote,::not(.gh-content) dl,::not(.gh-content) ol,::not(.gh-content) p,::not(.gh-content) ul{margin:0 0 1.5em}ol,ul{padding-left:1.3em;padding-right:1.5em}ol ol,ol ul,ul ol,ul ul{margin:.5em 0}ol,ul{max-width:100%}li{line-height:1.6em;padding-left:.3em}li+li{margin-top:.5em}dt{color:#daf2fd;float:left;font-weight:500;margin:0 20px 0 0;text-align:right;width:120px}dd{margin:0 0 5px;text-align:left}blockquote{border-left:#daf2fd;margin:1.5em 0;padding:0 1.6em}blockquote small{display:inline-block;font-size:.9em;margin:.8em 0 .8em 1.5em;opacity:.8}blockquote small:before{content:"\2014 \00A0"}blockquote cite{font-weight:700}blockquote cite a{font-weight:400}a{color:#15171a;text-decoration:none}h1,h2,h3,h4,h5,h6{text-rendering:optimizeLegibility;font-weight:600;letter-spacing:-.01em;line-height:1.15;margin-top:0}h1{font-size:4.8rem;font-weight:700;letter-spacing:-.015em;margin:0 0 .5em}@media (max-width:600px){h1{font-size:2.8rem}}h2{font-size:2.8rem;font-weight:700;margin:1.5em 0 .5em}@media (max-width:600px){h2{font-size:2.3rem}}h3{font-size:2.4rem;font-weight:600;margin:1.5em 0 .5em}@media (max-width:600px){h3{font-size:1.7rem}}h4{font-size:2rem;margin:1.5em 0 .5em}@media (max-width:600px){h4{font-size:1.7rem}}h5{font-size:2rem}h5,h6{margin:1.5em 0 .5em}h6{font-size:1.8rem}
/*# sourceMappingURL=global.css.map */

File diff suppressed because one or more lines are too long

2
assets/built/prism.css Normal file
View File

@ -0,0 +1,2 @@
code[class*=language-],pre[class*=language-]{word-wrap:normal;background:none;color:#f8f8f2;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;-webkit-hyphens:none;hyphens:none;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;text-align:left;text-shadow:0 1px rgba(0,0,0,.3);white-space:pre;word-break:normal;word-spacing:normal}pre[class*=language-]{border-radius:.3em;margin:.5em 0;overflow:auto;padding:1em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#272822}:not(pre)>code[class*=language-]{border-radius:.3em;padding:.1em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#f8f8f2}.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#f92672}.token.boolean,.token.number{color:#ae81ff}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#a6e22e}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.function{color:#e6db74}.token.keyword{color:#66d9ef}.token.important,.token.regex{color:#fd971f}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}
/*# sourceMappingURL=prism.css.map */

View File

@ -0,0 +1 @@
{"version":3,"sources":["prism.css"],"names":[],"mappings":"AAQA,6CAUC,gBAAiB,CAPjB,eAAgB,CADhB,aAAc,CAGd,6DAAsE,CAYtE,oBAAqB,CAGrB,YAAa,CATb,eAAgB,CAEhB,eAAgB,CAChB,aAAc,CACd,UAAW,CATX,eAAgB,CAFhB,gCAAqC,CAGrC,eAAgB,CAEhB,iBAAkB,CADlB,mBAaD,CAGA,sBAIC,kBAAoB,CAFpB,aAAc,CACd,aAAc,CAFd,WAID,CAEA,uDAEC,kBACD,CAGA,iCAEC,kBAAmB,CADnB,YAAa,CAEb,kBACD,CAEA,yDAIC,aACD,CAEA,mBACC,aACD,CAEA,WACC,UACD,CAEA,wEAKC,aACD,CAEA,6BAEC,aACD,CAEA,0FAMC,aACD,CAEA,0GAMC,aACD,CAEA,gDAGC,aACD,CAEA,eACC,aACD,CAEA,8BAEC,aACD,CAEA,6BAEC,eACD,CACA,cACC,iBACD,CAEA,cACC,WACD","file":"prism.css","sourcesContent":["/* PrismJS 1.12.2\nhttp://prismjs.com/download.html#themes=prism-okaidia&languages=markup+clike+javascript+c+bash+cpp+csharp+ruby+docker+go+json+makefile+markdown+properties+python+vim+yaml */\n/**\n * okaidia theme for JavaScript, CSS and HTML\n * Loosely based on Monokai textmate theme by http://www.monokai.nl/\n * @author ocodia\n */\n\ncode[class*=\"language-\"],\npre[class*=\"language-\"] {\n\tcolor: #f8f8f2;\n\tbackground: none;\n\ttext-shadow: 0 1px rgba(0, 0, 0, 0.3);\n\tfont-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;\n\ttext-align: left;\n\twhite-space: pre;\n\tword-spacing: normal;\n\tword-break: normal;\n\tword-wrap: normal;\n\tline-height: 1.5;\n\n\t-moz-tab-size: 4;\n\t-o-tab-size: 4;\n\ttab-size: 4;\n\n\t-webkit-hyphens: none;\n\t-moz-hyphens: none;\n\t-ms-hyphens: none;\n\thyphens: none;\n}\n\n/* Code blocks */\npre[class*=\"language-\"] {\n\tpadding: 1em;\n\tmargin: .5em 0;\n\toverflow: auto;\n\tborder-radius: 0.3em;\n}\n\n:not(pre) > code[class*=\"language-\"],\npre[class*=\"language-\"] {\n\tbackground: #272822;\n}\n\n/* Inline code */\n:not(pre) > code[class*=\"language-\"] {\n\tpadding: .1em;\n\tborder-radius: .3em;\n\twhite-space: normal;\n}\n\n.token.comment,\n.token.prolog,\n.token.doctype,\n.token.cdata {\n\tcolor: slategray;\n}\n\n.token.punctuation {\n\tcolor: #f8f8f2;\n}\n\n.namespace {\n\topacity: .7;\n}\n\n.token.property,\n.token.tag,\n.token.constant,\n.token.symbol,\n.token.deleted {\n\tcolor: #f92672;\n}\n\n.token.boolean,\n.token.number {\n\tcolor: #ae81ff;\n}\n\n.token.selector,\n.token.attr-name,\n.token.string,\n.token.char,\n.token.builtin,\n.token.inserted {\n\tcolor: #a6e22e;\n}\n\n.token.operator,\n.token.entity,\n.token.url,\n.language-css .token.string,\n.style .token.string,\n.token.variable {\n\tcolor: #f8f8f2;\n}\n\n.token.atrule,\n.token.attr-value,\n.token.function {\n\tcolor: #e6db74;\n}\n\n.token.keyword {\n\tcolor: #66d9ef;\n}\n\n.token.regex,\n.token.important {\n\tcolor: #fd971f;\n}\n\n.token.important,\n.token.bold {\n\tfont-weight: bold;\n}\n.token.italic {\n\tfont-style: italic;\n}\n\n.token.entity {\n\tcursor: help;\n}\n\n"]}

2
assets/built/prism.js Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,237 +0,0 @@
{
"remove-empty-rulesets": true,
"always-semicolon": true,
"color-case": "lower",
"block-indent": " ",
"color-shorthand": true,
"element-case": "lower",
"eof-newline": true,
"leading-zero": true,
"quotes": "double",
"space-before-colon": "",
"space-after-colon": " ",
"space-before-combinator": " ",
"space-after-combinator": " ",
"space-between-declarations": "\n",
"space-before-opening-brace": " ",
"space-after-opening-brace": "\n",
"space-after-selector-delimiter": "\n",
"space-before-selector-delimiter": "",
"space-before-closing-brace": "\n",
"strip-spaces": true,
"tab-size": 4,
"unitless-zero": true,
"sort-order": [ [
"content",
"visibility",
"position",
"top",
"right",
"bottom",
"left",
"z-index",
"order",
"flex",
"flex-grow",
"flex-shrink",
"flex-basis",
"align-self",
"display",
"flex-flow",
"flex-direction",
"flex-wrap",
"justify-content",
"align-items",
"align-content",
"flex-order",
"flex-pack",
"flex-align",
"float",
"clear",
"overflow",
"overflow-x",
"overflow-y",
"-webkit-overflow-scrolling",
"clip",
"box-sizing",
"margin",
"margin-top",
"margin-right",
"margin-bottom",
"margin-left",
"padding",
"padding-top",
"padding-right",
"padding-bottom",
"padding-left",
"min-width",
"min-height",
"max-width",
"max-height",
"width",
"height",
"outline",
"outline-width",
"outline-style",
"outline-color",
"outline-offset",
"border",
"border-spacing",
"border-collapse",
"border-width",
"border-style",
"border-color",
"border-top",
"border-top-width",
"border-top-style",
"border-top-color",
"border-right",
"border-right-width",
"border-right-style",
"border-right-color",
"border-bottom",
"border-bottom-width",
"border-bottom-style",
"border-bottom-color",
"border-left",
"border-left-width",
"border-left-style",
"border-left-color",
"border-image",
"border-image-source",
"border-image-slice",
"border-image-width",
"border-image-outset",
"border-image-repeat",
"border-top-image",
"border-right-image",
"border-bottom-image",
"border-left-image",
"border-corner-image",
"border-top-left-image",
"border-top-right-image",
"border-bottom-right-image",
"border-bottom-left-image",
"color",
"font",
"font-family",
"font-size",
"line-height",
"font-weight",
"font-style",
"font-variant",
"font-size-adjust",
"font-stretch",
"font-feature-settings",
"letter-spacing",
"text-rendering",
"text-align",
"text-align-last",
"text-decoration",
"text-emphasis",
"text-emphasis-position",
"text-emphasis-style",
"text-emphasis-color",
"text-indent",
"text-justify",
"text-outline",
"text-transform",
"text-wrap",
"text-overflow",
"text-overflow-ellipsis",
"text-overflow-mode",
"text-shadow",
"white-space",
"word-spacing",
"word-wrap",
"word-break",
"tab-size",
"hyphens",
"user-select",
"fill",
"stroke",
"background",
"filter:progid:DXImageTransform.Microsoft.AlphaImageLoader",
"background-color",
"background-image",
"background-attachment",
"background-position",
"background-position-x",
"background-position-y",
"background-clip",
"background-origin",
"background-size",
"background-repeat",
"border-radius",
"border-top-left-radius",
"border-top-right-radius",
"border-bottom-right-radius",
"border-bottom-left-radius",
"box-decoration-break",
"box-shadow",
"table-layout",
"caption-side",
"empty-cells",
"list-style",
"list-style-position",
"list-style-type",
"list-style-image",
"quotes",
"counter-increment",
"counter-reset",
"vertical-align",
"src",
"opacity",
"filter:progid:DXImageTransform.Microsoft.Alpha(Opacity",
"filter",
"resize",
"cursor",
"nav-index",
"nav-up",
"nav-right",
"nav-down",
"nav-left",
"transition",
"transition-delay",
"transition-timing-function",
"transition-duration",
"transition-property",
"transform",
"transform-origin",
"animation",
"animation-name",
"animation-duration",
"animation-play-state",
"animation-timing-function",
"animation-delay",
"animation-iteration-count",
"animation-direction",
"animation-fill-mode",
"pointer-events",
"unicode-bidi",
"direction",
"columns",
"column-span",
"column-width",
"column-count",
"column-fill",
"column-gap",
"column-rule",
"column-rule-width",
"column-rule-style",
"column-rule-color",
"break-before",
"break-inside",
"break-after",
"page-break-before",
"page-break-inside",
"page-break-after",
"orphans",
"widows",
"zoom",
"max-zoom",
"min-zoom",
"user-zoom",
"orientation"
] ]
}

View File

@ -1,21 +1,3 @@
/* Variables
/* ---------------------------------------------------------- */
:root {
/* Colours */
--blue: #3eb0ef;
--green: #a4d037;
--purple: #ad26b4;
--yellow: #fecd35;
--red: #f05230;
--darkgrey: #15171A;
--midgrey: #738a94;
--lightgrey: #c5d2d9;
--whitegrey: #e5eff5;
--pink: #fa3a57;
--brown: #a3821a;
}
/* Reset
/* ---------------------------------------------------------- */
@ -106,10 +88,6 @@ video {
body {
line-height: 1;
}
ol,
ul {
list-style: none;
}
blockquote,
q {
quotes: none;
@ -126,7 +104,9 @@ table {
border-collapse: collapse;
}
img {
display: block;
max-width: 100%;
height: auto;
}
html {
box-sizing: border-box;
@ -192,6 +172,20 @@ samp {
font-family: monospace, monospace;
font-size: 1em;
}
kbd {
padding: 3px 5px;
font-family: var(--font-mono);
font-size: 1.5rem;
background: #f6f8fa;
border: 1px solid rgba(124, 139, 154, 0.25);
border-radius: 6px;
box-shadow: inset 0 -1px 0 rgba(124, 139, 154, 0.25);
}
@media (max-width: 600px) {
kbd {
font-size: 1.3rem;
}
}
button,
input,
optgroup,
@ -267,23 +261,19 @@ th {
padding: 0;
}
/* ==========================================================================
Base styles: opinionated defaults
========================================================================== */
html {
overflow-x: hidden;
overflow-y: scroll;
font-size: 62.5%;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
overflow-x: hidden;
color: color(var(--midgrey) l(-25%));
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 1.5rem;
color: var(--color-darkgrey);
font-family: var(--font-sans);
font-size: 1.6rem;
line-height: 1.6em;
font-weight: 400;
font-style: normal;
@ -298,7 +288,7 @@ body {
::selection {
text-shadow: none;
background: color(var(--blue) lightness(+30%));
background: #daf2fd;
}
hr {
@ -309,7 +299,7 @@ hr {
padding: 0;
height: 1px;
border: 0;
border-top: 1px solid color(var(--lightgrey) l(+10%));
border-top: 1px solid #f0f0f0;
}
audio,
@ -331,17 +321,17 @@ textarea {
resize: vertical;
}
p,
ul,
ol,
dl,
blockquote {
::not(.gh-content) p,
::not(.gh-content) ul,
::not(.gh-content) ol,
::not(.gh-content) dl,
::not(.gh-content) blockquote {
margin: 0 0 1.5em 0;
}
ol,
ul {
padding-left: 1em;
padding-left: 1.3em;
padding-right: 1.5em;
}
@ -349,28 +339,28 @@ ol ol,
ul ul,
ul ol,
ol ul {
margin: 0.5em 0 1em;
}
ul {
list-style: disc;
margin: 0.5em 0;
}
ul,
ol {
list-style: decimal;
max-width: 100%;
}
li {
margin: 0.5em 0;
padding-left: 0.5em;
padding-left: 0.3em;
line-height: 1.6em;
}
li + li {
margin-top: 0.5em;
}
dt {
float: left;
margin: 0 20px 0 0;
width: 120px;
color: var(--darkgrey);
color: #daf2fd;
font-weight: 500;
text-align: right;
}
@ -383,13 +373,7 @@ dd {
blockquote {
margin: 1.5em 0;
padding: 0 1.6em 0 1.6em;
border-left: var(--whitegrey) 0.5em solid;;
}
blockquote p {
margin: 0.8em 0;
font-size: 1.2em;
font-weight: 300;
border-left: #daf2fd;
}
blockquote small {
@ -411,14 +395,10 @@ blockquote cite a {
}
a {
color: color(var(--blue) l(-5%));
color: #15171A;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
h1,
h2,
h3,
@ -427,37 +407,40 @@ h5,
h6 {
margin-top: 0;
line-height: 1.15;
font-weight: 700;
font-weight: 600;
text-rendering: optimizeLegibility;
letter-spacing: -0.01em;
}
h1 {
margin: 0 0 0.5em 0;
font-size: 5rem;
font-size: 4.8rem;
font-weight: 700;
letter-spacing: -0.015em;
}
@media (max-width: 500px) {
@media (max-width: 600px) {
h1 {
font-size: 2.2rem;
font-size: 2.8rem;
}
}
h2 {
margin: 1.5em 0 0.5em 0;
font-size: 2rem;
font-size: 2.8rem;
font-weight: 700;
}
@media (max-width: 500px) {
@media (max-width: 600px) {
h2 {
font-size: 1.8rem;
font-size: 2.3rem;
}
}
h3 {
margin: 1.5em 0 0.5em 0;
font-size: 1.8rem;
font-weight: 500;
font-size: 2.4rem;
font-weight: 600;
}
@media (max-width: 500px) {
@media (max-width: 600px) {
h3 {
font-size: 1.7rem;
}
@ -465,18 +448,20 @@ h3 {
h4 {
margin: 1.5em 0 0.5em 0;
font-size: 1.6rem;
font-weight: 500;
font-size: 2rem;
}
@media (max-width: 600px) {
h4 {
font-size: 1.7rem;
}
}
h5 {
margin: 1.5em 0 0.5em 0;
font-size: 1.4rem;
font-weight: 500;
font-size: 2rem;
}
h6 {
margin: 1.5em 0 0.5em 0;
font-size: 1.4rem;
font-weight: 500;
font-size: 1.8rem;
}

124
assets/css/prism.css Normal file
View File

@ -0,0 +1,124 @@
/* PrismJS 1.12.2
http://prismjs.com/download.html#themes=prism-okaidia&languages=markup+clike+javascript+c+bash+cpp+csharp+ruby+docker+go+json+makefile+markdown+properties+python+vim+yaml */
/**
* okaidia theme for JavaScript, CSS and HTML
* Loosely based on Monokai textmate theme by http://www.monokai.nl/
* @author ocodia
*/
code[class*="language-"],
pre[class*="language-"] {
color: #f8f8f2;
background: none;
text-shadow: 0 1px rgba(0, 0, 0, 0.3);
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.5;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
/* Code blocks */
pre[class*="language-"] {
padding: 1em;
margin: .5em 0;
overflow: auto;
border-radius: 0.3em;
}
:not(pre) > code[class*="language-"],
pre[class*="language-"] {
background: #272822;
}
/* Inline code */
:not(pre) > code[class*="language-"] {
padding: .1em;
border-radius: .3em;
white-space: normal;
}
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: slategray;
}
.token.punctuation {
color: #f8f8f2;
}
.namespace {
opacity: .7;
}
.token.property,
.token.tag,
.token.constant,
.token.symbol,
.token.deleted {
color: #f92672;
}
.token.boolean,
.token.number {
color: #ae81ff;
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
color: #a6e22e;
}
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string,
.token.variable {
color: #f8f8f2;
}
.token.atrule,
.token.attr-value,
.token.function {
color: #e6db74;
}
.token.keyword {
color: #66d9ef;
}
.token.regex,
.token.important {
color: #fd971f;
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}

File diff suppressed because it is too large Load Diff

85
assets/js/dropdown.js Normal file
View File

@ -0,0 +1,85 @@
(function () {
const mediaQuery = window.matchMedia('(max-width: 767px)');
const head = document.querySelector('.gh-head');
const menu = head.querySelector('.gh-head-menu');
const nav = menu.querySelector('.nav');
if (!nav) return;
const logo = document.querySelector('.gh-head-logo');
const navHTML = nav.innerHTML;
if (mediaQuery.matches) {
const items = nav.querySelectorAll('li');
items.forEach(function (item, index) {
item.style.transitionDelay = 0.03 * (index + 1) + 's';
});
}
var windowClickListener;
const makeDropdown = function () {
if (mediaQuery.matches) return;
const submenuItems = [];
while ((nav.offsetWidth + 64) > menu.offsetWidth) {
if (nav.lastElementChild) {
submenuItems.unshift(nav.lastElementChild);
nav.lastElementChild.remove();
} else {
return;
}
}
if (!submenuItems.length) {
document.body.classList.add('is-dropdown-loaded');
return;
}
const toggle = document.createElement('button');
toggle.setAttribute('class', 'nav-more-toggle');
toggle.setAttribute('aria-label', 'More');
toggle.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="currentColor"><path d="M21.333 16c0-1.473 1.194-2.667 2.667-2.667v0c1.473 0 2.667 1.194 2.667 2.667v0c0 1.473-1.194 2.667-2.667 2.667v0c-1.473 0-2.667-1.194-2.667-2.667v0zM13.333 16c0-1.473 1.194-2.667 2.667-2.667v0c1.473 0 2.667 1.194 2.667 2.667v0c0 1.473-1.194 2.667-2.667 2.667v0c-1.473 0-2.667-1.194-2.667-2.667v0zM5.333 16c0-1.473 1.194-2.667 2.667-2.667v0c1.473 0 2.667 1.194 2.667 2.667v0c0 1.473-1.194 2.667-2.667 2.667v0c-1.473 0-2.667-1.194-2.667-2.667v0z"></path></svg>';
const wrapper = document.createElement('div');
wrapper.setAttribute('class', 'gh-dropdown');
if (submenuItems.length >= 10) {
document.body.classList.add('is-dropdown-mega');
wrapper.style.gridTemplateRows = 'repeat(' + Math.ceil(submenuItems.length / 2) + ', 1fr)';
} else {
document.body.classList.remove('is-dropdown-mega');
}
submenuItems.forEach(function (child) {
wrapper.appendChild(child);
});
toggle.appendChild(wrapper);
nav.appendChild(toggle);
document.body.classList.add('is-dropdown-loaded');
toggle.addEventListener('click', function () {
document.body.classList.toggle('is-dropdown-open');
});
windowClickListener = function (e) {
if (!toggle.contains(e.target) && document.body.classList.contains('is-dropdown-open')) {
document.body.classList.remove('is-dropdown-open');
}
};
window.addEventListener('click', windowClickListener);
}
imagesLoaded(head, function () {
makeDropdown();
});
window.addEventListener('resize', function () {
setTimeout(function () {
window.removeEventListener('click', windowClickListener);
nav.innerHTML = navHTML;
makeDropdown();
}, 1);
});
})();

View File

@ -0,0 +1,114 @@
/* eslint-env browser */
/**
* Infinite Scroll
* Used on all pages where there is a list of posts (homepage, tag index, etc).
*
* When the page is scrolled to 300px from the bottom, the next page of posts
* is fetched by following the the <link rel="next" href="..."> that is output
* by {{ghost_head}}.
*
* The individual post items are extracted from the fetched pages by looking for
* a wrapper element with the class "post-card". Any found elements are appended
* to the element with the class "post-feed" in the currently viewed page.
*/
(function (window, document) {
if (document.documentElement.classList.contains('no-infinite-scroll')) return;
// next link element
var nextElement = document.querySelector('link[rel=next]');
if (!nextElement) {
return;
}
// post feed element
var feedElement = document.querySelector('.post-feed');
if (!feedElement) {
return;
}
var buffer = 300;
var ticking = false;
var loading = false;
var lastScrollY = window.scrollY;
var lastWindowHeight = window.innerHeight;
var lastDocumentHeight = document.documentElement.scrollHeight;
function onPageLoad() {
if (this.status === 404) {
window.removeEventListener('scroll', onScroll);
window.removeEventListener('resize', onResize);
return;
}
// append contents
var postElements = this.response.querySelectorAll('article.post-card');
postElements.forEach(function (item) {
// document.importNode is important, without it the item's owner
// document will be different which can break resizing of
// `object-fit: cover` images in Safari
feedElement.appendChild(document.importNode(item, true));
});
// set next link
var resNextElement = this.response.querySelector('link[rel=next]');
if (resNextElement) {
nextElement.href = resNextElement.href;
} else {
window.removeEventListener('scroll', onScroll);
window.removeEventListener('resize', onResize);
}
// sync status
lastDocumentHeight = document.documentElement.scrollHeight;
ticking = false;
loading = false;
}
function onUpdate() {
// return if already loading
if (loading) {
return;
}
// return if not scroll to the bottom
if (lastScrollY + lastWindowHeight <= lastDocumentHeight - buffer) {
ticking = false;
return;
}
loading = true;
var xhr = new window.XMLHttpRequest();
xhr.responseType = 'document';
xhr.addEventListener('load', onPageLoad);
xhr.open('GET', nextElement.href);
xhr.send(null);
}
function requestTick() {
ticking || window.requestAnimationFrame(onUpdate);
ticking = true;
}
function onScroll() {
lastScrollY = window.scrollY;
requestTick();
}
function onResize() {
lastWindowHeight = window.innerHeight;
lastDocumentHeight = document.documentElement.scrollHeight;
requestTick();
}
window.addEventListener('scroll', onScroll, {passive: true});
window.addEventListener('resize', onResize);
requestTick();
})(window, document);

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,12 @@
/*jshint browser:true */
/*!
* FitVids 1.1
* FitVids 1.3
*
* Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com
*
* Copyright 2017, Chris Coyier + Dave Rupert + Ghost Foundation
* This is an unofficial release, ported by John O'Nolan
* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/
* Released under the WTFPL license - http://sam.zoy.org/wtfpl/
* Released under the MIT license
*
*/
@ -21,7 +23,7 @@
if(!document.getElementById('fit-vids-style')) {
// appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js
var head = document.head || document.getElementsByTagName('head')[0];
var css = '.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}';
var css = '.fluid-width-video-container{flex-grow: 1;width:100%;}.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}';
var div = document.createElement("div");
div.innerHTML = '<p>x</p><style id="fit-vids-style">' + css + '</style>';
head.appendChild(div.childNodes[1]);
@ -74,7 +76,7 @@
$this.attr('name', videoName);
$.fn.fitVids._count++;
}
$this.wrap('<div class="fluid-width-video-wrapper"></div>').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+'%');
$this.wrap('<div class="fluid-width-video-container"><div class="fluid-width-video-wrapper"></div></div>').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+'%');
$this.removeAttr('height').removeAttr('width');
});
});

20
assets/js/prism.js Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 60 KiB

View File

@ -1,54 +1,76 @@
{{!< default}}
{{!-- The tag above means - insert everything in this file into the {body} of the default.hbs template --}}
{{#author}}
{{!-- Everything inside the #author tags pulls data from the author --}}
<header class="site-header outer {{#if cover_image}}" style="background-image: url({{cover_image}}){{else}}no-cover{{/if}}">
<div class="inner">
{{> "site-nav"}}
<div class="site-header-content">
{{#if profile_image}}
<img class="author-profile-image" src="{{profile_image}}" alt="{{name}}" />
{{/if}}
<h1 class="site-title">{{name}}</h1>
{{#if bio}}
<h2 class="author-bio">{{bio}}</h2>
{{/if}}
<div class="author-meta">
{{#if location}}
<div class="author-location">{{location}} <span class="bull">&bull;</span></div>
{{/if}}
<div class="author-stats">
{{plural ../pagination.total empty='No posts' singular='% post' plural='% posts'}} <span class="bull">&bull;</span>
</div>
{{#if website}}
<a class="social-link social-link-wb" href="{{website}}" target="_blank">{{> "icons/website"}}</a>
{{/if}}
{{#if twitter}}
<a class="social-link social-link-tw" href="{{twitter_url}}" target="_blank">{{> "icons/twitter"}}</a>
{{/if}}
{{#if facebook}}
<a class="social-link social-link-fb" href="{{facebook_url}}" target="_blank">{{> "icons/facebook"}}</a>
{{/if}}
<a class="social-link social-link-rss" href="http://cloud.feedly.com/#subscription/feed/{{url absolute="true"}}rss/" target="_blank">{{> "icons/rss"}}</a>
<main id="site-main" class="site-main outer">
<div class="inner posts">
<div class="post-feed">
{{#author}}
<section class="post-card post-card-large">
{{#if cover_image}}
<div class="post-card-image-link">
{{!-- This is a responsive image, it loads different sizes depending on device
https://medium.freecodecamp.org/a-guide-to-responsive-images-with-ready-to-use-templates-c400bd65c433 --}}
<img class="post-card-image"
srcset="{{img_url cover_image size="s"}} 300w,
{{img_url cover_image size="m"}} 600w,
{{img_url cover_image size="l"}} 1000w,
{{img_url cover_image size="xl"}} 2000w"
sizes="(max-width: 1000px) 400px, 800px"
src="{{img_url cover_image size="m"}}"
alt="{{title}}"
/>
</div>
</div>
</div>
</header>
{{/author}}
{{/if}}
{{!-- The main content area --}}
<main id="site-main" class="site-main outer" role="main">
<div class="inner">
<div class="post-card-content">
<div class="post-card-content-link">
<div class="post-feed">
{{#foreach posts}}
{{#if profile_image}}
<img class="author-profile-pic" src="{{profile_image}}" alt="{{name}}" />
{{/if}}
{{!-- The tag below includes the markup for each post - partials/post-card.hbs --}}
{{> "post-card"}}
<header class="post-card-header">
<h2 class="post-card-title">{{name}}</h2>
</header>
{{/foreach}}
</div>
{{#if bio}}
<div class="post-card-excerpt">{{bio}}</div>
{{/if}}
<footer class="author-profile-footer">
{{#if location}}
<div class="author-profile-location">{{location}}</div>
{{/if}}
<div class="author-profile-meta">
{{#if website}}
<a class="author-profile-social-link" href="{{website}}" target="_blank" rel="noopener">{{website}}</a>
{{/if}}
{{#if twitter}}
<a class="author-profile-social-link" href="{{twitter_url}}" target="_blank" rel="noopener">{{> "icons/twitter"}}</a>
{{/if}}
{{#if facebook}}
<a class="author-profile-social-link" href="{{facebook_url}}" target="_blank" rel="noopener">{{> "icons/facebook"}}</a>
{{/if}}
</div>
</footer>
</div>
</div>
</section>
{{/author}}
{{#foreach posts}}
{{!-- The tag below includes the markup for each post - partials/post-card.hbs --}}
{{> "post-card"}}
{{/foreach}}
</div>
{{pagination}}
</div>
</main>

View File

@ -1,72 +1,127 @@
<!DOCTYPE html>
<html>
<html lang="{{@site.locale}}"{{#match @custom.color_scheme "Dark"}} class="dark-mode"{{else match @custom.color_scheme "Auto"}} class="auto-color"{{/match}}>
<head>
{{!-- Document Settings --}}
{{!-- Basic meta - advanced meta is output with {ghost_head} below --}}
<title>{{meta_title}}</title>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
{{!-- Base Meta --}}
<title>{{meta_title}}</title>
<title>
{{#is "post, page"}}
{{meta_title}} - {{@site.title}}
{{else}}
{{meta_title}}
{{/is}}
</title>
<meta name="HandheldFriendly" content="True" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
{{!-- Preload scripts --}}
<link rel="preload" as="style" href="{{asset "built/screen.css"}}" />
<link rel="preload" as="script" href="{{asset "built/casper.js"}}" />
{{!-- Styles'n'Scripts --}}
{{!-- Theme assets - use the {asset} helper to reference styles & scripts,
this will take care of caching and cache-busting automatically --}}
<link rel="stylesheet" type="text/css" href="{{asset "built/screen.css"}}" />
<link rel="stylesheet" type="text/css" href="{{asset "css/prism.css"}}" />
{{!-- This tag outputes SEO meta+structured data and other important settings --}}
{{!-- This tag outputs all your advanced SEO meta, structured data, and other important settings,
it should always be the last tag before the closing head tag --}}
{{ghost_head}}
</head>
<body class="{{body_class}}">
<body class="{{body_class}} is-head-{{#match @custom.navigation_layout "Logo on cover"}}left-logo{{else match @custom.navigation_layout "Logo in the middle"}}middle-logo{{else}}stacked{{/match}}{{#match @custom.title_font "=" "Elegant serif"}} has-serif-title{{/match}}{{#match @custom.body_font "=" "Modern sans-serif"}} has-sans-body{{/match}}{{#if @custom.show_publication_cover}} has-cover{{/if}}">
<div class="viewport">
<div class="site-wrapper">
{{!-- All the main content gets inserted here, index.hbs, post.hbs, etc --}}
{{{body}}}
{{!-- The footer at the very bottom of the screen --}}
<footer class="site-footer outer">
<div class="site-footer-content inner">
<section class="copyright"><a href="{{@blog.url}}">{{@blog.title}}</a> &copy; {{date format="YYYY"}}</section>
<nav class="site-footer-nav">
<a href="{{@blog.url}}">Latest Posts</a>
{{#if @blog.facebook}}<a href="{{facebook_url @blog.facebook}}" target="_blank">Facebook</a>{{/if}}
{{#if @blog.twitter}}<a href="{{twitter_url @blog.twitter}}" target="_blank">Twitter</a>{{/if}}
<a href="https://ghost.org" target="_blank">Ghost</a>
</nav>
<header id="gh-head" class="gh-head outer{{#match @custom.header_style "Hidden"}} is-header-hidden{{/match}}">
<div class="gh-head-inner inner">
<div class="gh-head-brand">
<a class="gh-head-logo{{#unless @site.logo}} no-image{{/unless}}" href="{{@site.url}}">
{{#if @site.logo}}
<img src="{{@site.logo}}" alt="{{@site.title}}">
{{else}}
{{@site.title}}
{{/if}}
</a>
<button class="gh-search gh-icon-btn" aria-label="Search this site" data-ghost-search>{{> "icons/search"}}</button>
<button class="gh-burger"></button>
</div>
</footer>
<nav class="gh-head-menu">
{{navigation}}
{{#unless @site.members_enabled}}
{{#match @custom.navigation_layout "Stacked"}}
<button class="gh-search gh-icon-btn" aria-label="Search this site" data-ghost-search>{{> "icons/search"}}</button>
{{/match}}
{{/unless}}
</nav>
</div>
{{!-- The big email subscribe modal content --}}
{{#if @labs.subscribers}}
<div id="subscribe" class="subscribe-overlay">
<a class="subscribe-overlay-close" href="#"></a>
<div class="subscribe-overlay-content">
{{#if @blog.logo}}
<img class="subscribe-overlay-logo" src="{{@blog.logo}}" alt="{{@blog.title}}" />
{{/if}}
<h1 class="subscribe-overlay-title">Subscribe to {{@blog.title}}</h1>
<p class="subscribe-overlay-description">Stay up to date! Get all the latest &amp; greatest posts delivered straight to your inbox</p>
{{subscribe_form placeholder="youremail@example.com"}}
<div class="gh-head-actions">
{{#unless @site.members_enabled}}
{{^match @custom.navigation_layout "Stacked"}}
<button class="gh-search gh-icon-btn" data-ghost-search>{{> "icons/search"}}</button>
{{/match}}
{{else}}
<button class="gh-search gh-icon-btn" data-ghost-search>{{> "icons/search"}}</button>
<div class="gh-head-members">
{{#unless @member}}
{{#unless @site.members_invite_only}}
<a class="gh-head-link" href="#/portal/signin" data-portal="signin">Sign in</a>
<a class="gh-head-button" href="#/portal/signup" data-portal="signup">Subscribe</a>
{{else}}
<a class="gh-head-button" href="#/portal/signin" data-portal="signin">Sign in</a>
{{/unless}}
{{else}}
<a class="gh-head-button" href="#/portal/account" data-portal="account">Account</a>
{{/unless}}
</div>
{{/unless}}
</div>
</div>
</header>
<div class="site-content">
{{!-- All other templates get inserted here, index.hbs, post.hbs, etc --}}
{{{body}}}
</div>
{{/if}}
{{!-- jQuery + Fitvids, which makes all video embeds responsive --}}
<script
src="//code.jquery.com/jquery-3.2.1.slim.min.js"
integrity="sha256-k2WSCIexGzOj3Euiig+TlR8gA0EmPjuc79OEeY5L45g="
crossorigin="anonymous"></script>
<script type="text/javascript" src="{{asset "js/jquery.fitvids.js"}}"></script>
{{!-- The global footer at the very bottom of the screen --}}
<footer class="site-footer outer">
<div class="inner">
<section class="copyright"><a href="{{@site.url}}">{{@site.title}}</a> &copy; {{date format="YYYY"}}</section>
<nav class="site-footer-nav">
{{navigation type="secondary"}}
</nav>
<div class="gh-powered-by"><a href="https://ghost.org/" target="_blank" rel="noopener">Powered by Ghost</a></div>
</div>
</footer>
{{!-- The #block helper will pull in data from the #contentFor other template files. In this case, there's some JavaScript which we only want to use in post.hbs, but it needs to be included down here, after jQuery has already loaded. --}}
{{{block "scripts"}}}
</div>
{{!-- /.viewport --}}
{{!-- Ghost outputs important scripts and data with this tag - it should always be the very last thing before the closing body tag --}}
{{ghost_foot}}
{{!-- Scripts - handle member signups, responsive videos, infinite scroll, floating headers, and galleries --}}
<script
src="https://code.jquery.com/jquery-3.5.1.min.js"
integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
crossorigin="anonymous">
</script>
<script src="{{asset "built/casper.js"}}"></script>
<script src="{{asset "js/prism.js"}}"></script>
<script>
$(document).ready(function () {
// Mobile Menu Trigger
$('.gh-burger').click(function () {
$('body').toggleClass('gh-head-open');
});
// FitVids - Makes video embeds responsive
$(".gh-content").fitVids();
});
</script>
{{!-- Ghost outputs required functional scripts with this tag - it should always be the last thing before the closing body tag --}}
{{ghost_foot}}
</body>
</html>

37
error-404.hbs Normal file
View File

@ -0,0 +1,37 @@
{{!< default}}
{{!--
There are two error files in this theme, one for 404s and one for all other errors.
This file is the former, and handles all 404 Page Not Found errors.
The 404 error is the most common error that a visitor might see, for example when
following a broken link
Keep this template as lightweight as you can!
--}}
<section class="outer error-content">
<div class="inner">
<section class="error-message">
<h1 class="error-code">{{statusCode}}</h1>
<p class="error-description">{{message}}</p>
<a class="error-link" href="{{@site.url}}">Go to the front page →</a>
</section>
</div>
</section>
{{!-- Given that people landing on this page didn't find what they
were looking for, let's give them some alternative stuff to read. --}}
<aside class="read-more-wrap outer">
<div class="read-more inner">
{{#get "posts" include="authors" limit="3" as |more_posts|}}
{{#if more_posts}}
{{#foreach more_posts}}
{{> "post-card"}}
{{/foreach}}
{{/if}}
{{/get}}
</div>
</aside>

View File

@ -1,5 +1,15 @@
{{!--
This error template is used for all 400/500 errors which might occur on your site. It's a good idea to keep this template as minimal as possible in terms of both file size and complexity. You'll notice that we *don't* use any JavsScript, or ghost_head / ghost_foot in this file.
There are two error files in this theme, one for 404s and one for all other errors.
This file is the latter, and handles all 400/500 errors that might occur.
Because 500 errors in particular usually happen when a server is struggling, this
template is as simple as possible. No template dependencies, no JS, no API calls.
This is to prevent rendering the error-page itself compounding the issue causing
the error in the first place.
Keep this template as lightweight as you can!
--}}
<!DOCTYPE html>
@ -12,63 +22,53 @@ This error template is used for all 400/500 errors which might occur on your sit
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" type="text/css" href="{{asset "built/screen.css"}}" />
</head>
<body class="error-template">
<body>
<div class="site-wrapper">
<header class="site-header outer {{#if feature_image}}" style="background-image: url({{feature_image}}){{else}}no-cover{{/if}}">
<div class="inner">
<nav class="site-nav-center">
{{#if @blog.logo}}
<a class="site-nav-logo" href="{{@blog.url}}"><img src="{{@blog.logo}}" alt="{{@blog.title}}" /></a>
{{else}}
<a class="site-nav-logo" href="{{@blog.url}}">{{@blog.title}}</a>
{{/if}}
</nav>
<header class="site-header no-image">
<div class="site-nav-main outer">
<div class="inner">
<nav class="site-nav-center">
{{#if @site.logo}}
<a class="site-nav-logo" href="{{@site.url}}"><img src="{{img_url @site.logo size="xs"}}"
alt="{{@site.title}}" /></a>
{{else}}
<a class="site-nav-logo" href="{{@site.url}}">{{@site.title}}</a>
{{/if}}
</nav>
</div>
</div>
</header>
<main id="site-main" class="site-main outer" role="main">
<main class="outer error-content">
<div class="inner">
<section class="error-message">
<h1 class="error-code">{{code}}</h1>
<h1 class="error-code">{{statusCode}}</h1>
<p class="error-description">{{message}}</p>
<a class="error-link" href="{{@blog.url}}">Go to the front page →</a>
<a class="error-link" href="{{@site.url}}">Go to the front page →</a>
</section>
{{#if errorDetails}}
<section class="error-stack">
<h3>Theme errors</h3>
<ul class="error-stack-list">
{{#each errorDetails}}
{{#foreach errorDetails}}
<li>
<em class="error-stack-function">{{{rule}}}</em>
{{#each failures}}
{{#foreach failures}}
<p><span class="error-stack-file">Ref: {{ref}}</span></p>
<p><span class="error-stack-file">Message: {{message}}</span></p>
{{/each}}
{{/foreach}}
</li>
{{/each}}
{{/foreach}}
</ul>
</section>
{{/if}}
</div>
</main>
{{#get "posts" limit="3"}}
<aside class="outer">
<div class="inner">
<div class="post-feed">
{{#foreach posts}}
{{> "post-card"}}
{{/foreach}}
</div>
</div>
</aside>
{{/get}}
</div>
</body>
</html>

View File

@ -1,54 +1,176 @@
var gulp = require('gulp');
const {series, watch, src, dest, parallel} = require('gulp');
const pump = require('pump');
const path = require('path');
const releaseUtils = require('@tryghost/release-utils');
const inquirer = require('inquirer');
// gulp plugins and utils
var gutil = require('gulp-util');
var livereload = require('gulp-livereload');
var nodemon = require('gulp-nodemon');
var postcss = require('gulp-postcss');
var sourcemaps = require('gulp-sourcemaps');
const livereload = require('gulp-livereload');
const postcss = require('gulp-postcss');
const zip = require('gulp-zip');
const concat = require('gulp-concat');
const uglify = require('gulp-uglify');
const beeper = require('beeper');
const fs = require('fs');
// postcss plugins
var autoprefixer = require('autoprefixer');
var colorFunction = require('postcss-color-function');
var cssnano = require('cssnano');
var customProperties = require('postcss-custom-properties');
var easyimport = require('postcss-easy-import');
const autoprefixer = require('autoprefixer');
const colorFunction = require('postcss-color-mod-function');
const cssnano = require('cssnano');
const easyimport = require('postcss-easy-import');
var swallowError = function swallowError(error) {
gutil.log(error.toString());
gutil.beep();
this.emit('end');
const REPO = 'TryGhost/Casper';
const REPO_READONLY = 'TryGhost/Casper';
const CHANGELOG_PATH = path.join(process.cwd(), '.', 'changelog.md');
function serve(done) {
livereload.listen();
done();
}
const handleError = (done) => {
return function (err) {
if (err) {
beeper();
}
return done(err);
};
};
var nodemonServerInit = function () {
livereload.listen(1234);
function hbs(done) {
pump([
src(['*.hbs', 'partials/**/*.hbs']),
livereload()
], handleError(done));
}
function css(done) {
pump([
src('assets/css/*.css', {sourcemaps: true}),
postcss([
easyimport,
colorFunction(),
autoprefixer(),
cssnano()
]),
dest('assets/built/', {sourcemaps: '.'}),
livereload()
], handleError(done));
}
function js(done) {
pump([
src([
// pull in lib files first so our own code can depend on it
'assets/js/lib/*.js',
'assets/js/*.js'
], {sourcemaps: true}),
concat('casper.js'),
uglify(),
dest('assets/built/', {sourcemaps: '.'}),
livereload()
], handleError(done));
}
function zipper(done) {
const filename = require('./package.json').name + '.zip';
pump([
src([
'**',
'!node_modules', '!node_modules/**',
'!dist', '!dist/**',
'!yarn-error.log',
'!yarn.lock',
'!gulpfile.js'
]),
zip(filename),
dest('dist/')
], handleError(done));
}
const cssWatcher = () => watch('assets/css/**', css);
const jsWatcher = () => watch('assets/js/**', js);
const hbsWatcher = () => watch(['*.hbs', 'partials/**/*.hbs'], hbs);
const watcher = parallel(cssWatcher, jsWatcher, hbsWatcher);
const build = series(css, js);
exports.build = build;
exports.zip = series(build, zipper);
exports.default = series(build, serve, watcher);
exports.release = async () => {
// @NOTE: https://yarnpkg.com/lang/en/docs/cli/version/
// require(./package.json) can run into caching issues, this re-reads from file everytime on release
let packageJSON = JSON.parse(fs.readFileSync('./package.json'));
const newVersion = packageJSON.version;
if (!newVersion || newVersion === '') {
console.log(`Invalid version: ${newVersion}`);
return;
}
console.log(`\nCreating release for ${newVersion}...`);
const githubToken = process.env.GST_TOKEN;
if (!githubToken) {
console.log('Please configure your environment with a GitHub token located in GST_TOKEN');
return;
}
try {
const result = await inquirer.prompt([{
type: 'input',
name: 'compatibleWithGhost',
message: 'Which version of Ghost is it compatible with?',
default: '5.0.0'
}]);
const compatibleWithGhost = result.compatibleWithGhost;
const releasesResponse = await releaseUtils.releases.get({
userAgent: 'Casper',
uri: `https://api.github.com/repos/${REPO_READONLY}/releases`
});
if (!releasesResponse || !releasesResponse) {
console.log('No releases found. Skipping...');
return;
}
let previousVersion = releasesResponse[0].tag_name || releasesResponse[0].name;
console.log(`Previous version: ${previousVersion}`);
const changelog = new releaseUtils.Changelog({
changelogPath: CHANGELOG_PATH,
folder: path.join(process.cwd(), '.')
});
changelog
.write({
githubRepoPath: `https://github.com/${REPO}`,
lastVersion: previousVersion
})
.sort()
.clean();
const newReleaseResponse = await releaseUtils.releases.create({
draft: true,
preRelease: false,
tagName: 'v' + newVersion,
releaseName: newVersion,
userAgent: 'Casper',
uri: `https://api.github.com/repos/${REPO}/releases`,
github: {
token: githubToken
},
content: [`**Compatible with Ghost ≥ ${compatibleWithGhost}**\n\n`],
changelogPath: CHANGELOG_PATH
});
console.log(`\nRelease draft generated: ${newReleaseResponse.releaseUrl}\n`);
} catch (err) {
console.error(err);
process.exit(1);
}
};
gulp.task('build', ['css'], function (/* cb */) {
return nodemonServerInit();
});
gulp.task('css', function () {
var processors = [
easyimport,
customProperties,
colorFunction(),
autoprefixer({browsers: ['last 2 versions']}),
cssnano()
];
gulp.src('assets/css/*.css')
.on('error', swallowError)
.pipe(sourcemaps.init())
.pipe(postcss(processors))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('assets/built/'))
.pipe(livereload());
});
gulp.task('watch', function () {
gulp.watch('assets/css/**', ['css']);
});
gulp.task('default', ['build'], function () {
gulp.start('watch');
});

View File

@ -2,35 +2,53 @@
{{!-- The tag above means: insert everything in this file
into the {body} of the default.hbs template --}}
{{!-- The big featured header, it uses blog cover image as a BG if available --}}
<header class="site-header outer {{#if @blog.cover_image}}" style="background-image: url({{@blog.cover_image}}){{else}}no-cover{{/if}}">
<div class="inner">
<div class="site-header-content">
<h1 class="site-title">
{{#if @blog.logo}}
<img class="site-logo" src="{{@blog.logo}}" alt="{{@blog.title}}" />
<div class="site-header-content outer{{#match @custom.header_style "Left aligned"}} left-aligned{{/match}}{{#unless @custom.show_publication_cover}}{{#match @custom.header_style "Hidden"}} no-content{{/match}}{{/unless}}">
{{#if @custom.show_publication_cover}}
{{#if @site.cover_image}}
{{!-- This is a responsive image, it loads different sizes depending on device
https://medium.freecodecamp.org/a-guide-to-responsive-images-with-ready-to-use-templates-c400bd65c433 --}}
<img class="site-header-cover"
srcset="{{img_url @site.cover_image size="s"}} 300w,
{{img_url @site.cover_image size="m"}} 600w,
{{img_url @site.cover_image size="l"}} 1000w,
{{img_url @site.cover_image size="xl"}} 2000w"
sizes="100vw"
src="{{img_url @site.cover_image size="xl"}}"
alt="{{@site.title}}"
/>
{{/if}}
{{/if}}
{{#match @custom.header_style "!=" "Hidden"}}
<div class="site-header-inner inner">
{{#match @custom.navigation_layout "Logo on cover"}}
{{#if @site.logo}}
<img class="site-logo" src="{{@site.logo}}" alt="{{@site.title}}">
{{else}}
{{@blog.title}}
<h1 class="site-title">{{@site.title}}</h1>
{{/if}}
</h1>
<h2 class="site-description">{{@blog.description}}</h2>
{{/match}}
{{#if @site.description}}
<p class="site-description">{{@site.description}}</p>
{{/if}}
</div>
{{> "site-nav"}}
</div>
</header>
{{/match}}
</div>
{{!-- The main content area --}}
<main id="site-main" class="site-main outer" role="main">
<div class="inner">
<div class="post-feed">
{{#foreach posts}}
{{!-- The tag below includes the markup for each post - partials/post-card.hbs --}}
{{> "post-card"}}
{{/foreach}}
</div>
<main id="site-main" class="site-main outer">
<div class="inner posts">
<div class="post-feed">
{{#foreach posts}}
{{!-- The tag below includes the markup for each post - partials/post-card.hbs --}}
{{> "post-card"}}
{{/foreach}}
</div>
{{pagination}}
</div>
</main>

View File

@ -1,19 +1,29 @@
{
"name": "casper",
"description": "The default personal blogging theme for Ghost. Beautiful, minimal and responsive.",
"name": "vivid-casper",
"description": "Minor tweaks from the default personal blogging theme for Ghost. Beautiful, minimal and responsive.",
"demo": "https://demo.ghost.io",
"version": "2.0.0",
"version": "5.5.3",
"engines": {
"ghost": ">=1.0.0"
"ghost": ">=5.0.0"
},
"license": "MIT",
"screenshots": {
"desktop": "assets/screenshot-desktop.jpg",
"mobile": "assets/screenshot-mobile.jpg"
},
"scripts": {
"dev": "gulp",
"zip": "gulp zip",
"test": "gscan .",
"test:ci": "gscan --fatal --verbose .",
"pretest": "gulp build",
"preship": "yarn test",
"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",
"postship": "git fetch && gulp release"
},
"author": {
"name": "Ghost Foundation",
"email": "hello@ghost.org",
"name": "ViViDboarder",
"email": "vividboarder@gmail.com",
"url": "https://ghost.org"
},
"gpm": {
@ -25,29 +35,145 @@
},
"keywords": [
"ghost",
"theme"
"theme",
"ghost-theme"
],
"repository": {
"type": "git",
"url": "https://github.com/TryGhost/Casper.git"
"url": "https://github.com/ViViDboarder/Casper.git"
},
"bugs": "https://github.com/TryGhost/Casper/issues",
"contributors": "https://github.com/TryGhost/Casper/graphs/contributors",
"bugs": "https://github.com/ViViDboarder/Casper/issues",
"contributors": "https://github.com/ViViDboarder/Casper/graphs/contributors",
"devDependencies": {
"autoprefixer": "6.3.6",
"cssnano": "3.7.1",
"gulp": "3.9.1",
"gulp-livereload": "3.8.1",
"gulp-nodemon": "2.1.0",
"gulp-postcss": "6.1.1",
"gulp-sourcemaps": "1.6.0",
"gulp-util": "3.0.7",
"gulp-watch": "4.3.8",
"postcss-color-function": "2.0.1",
"postcss-custom-properties": "5.0.1",
"postcss-easy-import": "1.0.1"
"@tryghost/release-utils": "0.8.1",
"autoprefixer": "10.4.7",
"beeper": "2.1.0",
"cssnano": "5.1.12",
"gscan": "4.36.1",
"gulp": "4.0.2",
"gulp-concat": "2.6.1",
"gulp-livereload": "4.0.2",
"gulp-postcss": "9.0.1",
"gulp-uglify": "3.0.2",
"gulp-zip": "5.1.0",
"inquirer": "8.2.4",
"postcss": "8.2.13",
"postcss-color-mod-function": "3.0.3",
"postcss-easy-import": "4.0.0",
"pump": "3.0.0"
},
"browserslist": [
"defaults"
],
"config": {
"posts_per_page": 25
"posts_per_page": 25,
"image_sizes": {
"xxs": {
"width": 30
},
"xs": {
"width": 100
},
"s": {
"width": 300
},
"m": {
"width": 600
},
"l": {
"width": 1000
},
"xl": {
"width": 2000
}
},
"card_assets": true,
"custom": {
"navigation_layout": {
"type": "select",
"options": [
"Logo on cover",
"Logo in the middle",
"Stacked"
],
"default": "Logo on cover"
},
"title_font": {
"type": "select",
"options": [
"Modern sans-serif",
"Elegant serif"
],
"default": "Modern sans-serif"
},
"body_font": {
"type": "select",
"options": [
"Modern sans-serif",
"Elegant serif"
],
"default": "Elegant serif"
},
"show_publication_cover": {
"type": "boolean",
"default": true,
"group": "homepage"
},
"header_style": {
"type": "select",
"options": [
"Center aligned",
"Left aligned",
"Hidden"
],
"default": "Center aligned",
"group": "homepage"
},
"feed_layout": {
"type": "select",
"options": [
"Classic",
"Grid",
"List"
],
"default": "Classic",
"group": "homepage"
},
"color_scheme": {
"type": "select",
"options": [
"Light",
"Dark",
"Auto"
],
"default": "Light"
},
"post_image_style": {
"type": "select",
"options": [
"Wide",
"Full",
"Small",
"Hidden"
],
"default": "Wide",
"group": "post"
},
"email_signup_text": {
"type": "text",
"default": "Sign up for more like this.",
"group": "post"
},
"show_recent_posts_footer": {
"type": "boolean",
"default": true,
"group": "post"
}
}
},
"renovate": {
"extends": [
"@tryghost:theme"
]
}
}

View File

@ -1,48 +1,47 @@
{{!< default}}
{{!-- The tag above means: insert everything in this file
into the {body} of the default.hbs template --}}
into the {body} tag of the default.hbs template --}}
{{!-- The big featured header, it uses blog cover image as a BG if available --}}
<header class="site-header outer">
<div class="inner">
{{> "site-nav"}}
</div>
</header>
{{!-- Everything inside the #post tags pulls data from the post --}}
{{#post}}
{{!-- Everything inside the #post block pulls data from the page --}}
<main id="site-main" class="site-main outer" role="main">
<div class="inner">
<main id="site-main" class="site-main">
<article class="article {{post_class}}">
<article class="post-full {{post_class}} {{#unless feature_image}}no-image{{/unless}}">
{{#if show_title_and_feature_image}}
<header class="article-header gh-canvas">
<header class="post-full-header">
<h1 class="post-full-title">{{title}}</h1>
</header>
<h1 class="article-title">{{title}}</h1>
{{#if feature_image}}
<figure class="post-full-image" style="background-image: url({{feature_image}})">
</figure>
<figure class="article-image">
{{!-- This is a responsive image, it loads different sizes depending on device
https://medium.freecodecamp.org/a-guide-to-responsive-images-with-ready-to-use-templates-c400bd65c433 --}}
<img
srcset="{{img_url feature_image size="s"}} 300w,
{{img_url feature_image size="m"}} 600w,
{{img_url feature_image size="l"}} 1000w,
{{img_url feature_image size="xl"}} 2000w"
sizes="(min-width: 1400px) 1400px, 92vw"
src="{{img_url feature_image size="xl"}}"
alt="{{#if feature_image_alt}}{{feature_image_alt}}{{else}}{{title}}{{/if}}"
/>
{{#if feature_image_caption}}
<figcaption>{{feature_image_caption}}</figcaption>
{{/if}}
</figure>
{{/if}}
<section class="post-full-content">
{{content}}
</section>
</header>
{{/if}}
</article>
<section class="gh-content gh-canvas">
{{content}}
</section>
</div>
</article>
</main>
{{/post}}
{{!-- The #contentFor helper here will send everything inside it up to the matching #block helper found in default.hbs --}}
{{#contentFor "scripts"}}
<script>
$(function() {
var $postContent = $(".post-full-content");
$postContent.fitVids();
});
</script>
{{/contentFor}}
{{/post}}

View File

@ -1,28 +0,0 @@
<div class="floating-header">
<div class="floating-header-logo">
<a href="{{@blog.url}}">
{{#if @blog.icon}}
<img src="{{@blog.icon}}" alt="{{@blog.title}} icon" />
{{/if}}
<span>{{@blog.title}}</span>
</a>
</div>
<span class="floating-header-divider">&mdash;</span>
<div class="floating-header-title">{{title}}</div>
<div class="floating-header-share">
<div class="floating-header-share-label">Share this {{> "icons/point"}}</div>
<a class="floating-header-share-tw" href="https://twitter.com/share?text={{encode title}}&amp;url={{url absolute="true"}}"
onclick="window.open(this.href, 'share-twitter', 'width=550,height=235');return false;">
{{> "icons/twitter"}}
</a>
<a class="floating-header-share-fb" href="https://www.facebook.com/sharer/sharer.php?u={{url absolute="true"}}"
onclick="window.open(this.href, 'share-facebook','width=580,height=296');return false;">
{{> "icons/facebook"}}
</a>
</div>
<progress class="progress" value="0">
<div class="progress-container">
<span class="progress-bar"></span>
</div>
</progress>
</div>

View File

@ -0,0 +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>

After

Width:  |  Height:  |  Size: 308 B

2
partials/icons/facebook.hbs Executable file → Normal file
View File

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M19 6h5V0h-5c-3.86 0-7 3.14-7 7v3H8v6h4v16h6V16h5l1-6h-6V7c0-.542.458-1 1-1z"/></svg>
<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>

Before

Width:  |  Height:  |  Size: 155 B

After

Width:  |  Height:  |  Size: 531 B

3
partials/icons/fire.hbs Normal file
View File

@ -0,0 +1,3 @@
<svg width="16" height="17" viewBox="0 0 16 17" fill="none" xmlns="http://www.w3.org/2000/svg">
<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>
</svg>

After

Width:  |  Height:  |  Size: 538 B

View File

@ -1 +0,0 @@
<svg class="ghost-svg" viewBox="0 0 493 161" xmlns="http://www.w3.org/2000/svg"><title>Ghost Logo</title><g fill="none" fill-rule="evenodd"><path d="M328.52 37.36c-27.017 0-40.97 19.323-40.97 43.16 0 23.837 13.61 43.162 40.97 43.162s40.968-19.325 40.968-43.163c0-23.84-13.954-43.16-40.97-43.16zm20.438 43.237c-.02 15.328-5.126 27.743-20.44 27.743-15.312 0-20.42-12.414-20.435-27.743v-.078c.016-15.33 5.124-27.74 20.437-27.74 15.312 0 20.42 12.41 20.438 27.74v.07zM207.553 5.19c0-1.103.885-2.124 1.984-2.282 0 0 13.577-1.95 14.784-2.115 1.37-.187 3.19.798 3.19 2.744v44.236c3.23-3.105 6.79-5.608 10.66-7.515 3.88-1.906 8.43-2.86 13.66-2.86 4.53 0 8.53.776 12.03 2.33 3.5 1.55 6.43 3.73 8.77 6.533 2.34 2.81 4.12 6.16 5.33 10.05 1.21 3.9 1.82 8.19 1.82 12.87v51.35c0 1.1-.89 2-2 2h-15.95c-1.1 0-2-.9-2-1.99V69.18c0-5.118-1.17-9.08-3.51-11.888-2.35-2.804-5.86-4.207-10.544-4.207-3.45 0-6.677.79-9.69 2.37-3.02 1.58-5.87 3.73-8.564 6.46v58.617c0 1.102-.894 2-2.002 2h-15.94c-1.11 0-2.005-.895-2.005-2V5.188zm244.007 95.327v-43.68h-13.482c-1.1 0-1.742-.87-1.443-1.916l3-10.49c.262-.9.942-1.87 2.308-2.07l9.597-1.35 3.508-23.49c.163-1.09 1.18-2.1 2.274-2.26 0 0 9.192-1.31 10.963-1.58 1.673-.25 3.19.97 3.19 2.81v24.52h17.565c1.106 0 2.002.9 2.002 2.01v11.82c0 1.11-.89 2.01-2.002 2.01h-17.566v43.08c0 6.02 3.623 8.32 7.095 8.32 2.12 0 5.02-1.14 7.19-2.16 1.34-.62 3.41-.16 3.95 1.73l2.45 8.65c.3 1.07-.25 2.37-1.23 2.86 0 0-7.29 4.37-17.06 4.37-13.73 0-22.33-8.08-22.33-23.16zm-44.584-47.74c-7.084 0-12.657 2.476-12.657 8.433 0 7.44 12.01 9.606 20.23 12.64 5.49 2.027 20.24 5.98 20.24 22.016 0 19.48-16 27.807-33.06 27.807-17.06 0-25.4-5.465-25.4-5.465-.96-.527-1.5-1.822-1.2-2.89 0 0 2.1-7.52 2.64-9.386.48-1.68 2.41-2.27 3.64-1.792 4.39 1.712 12.32 4.092 21.28 4.092 9.07 0 13.46-2.803 13.46-8.777 0-7.95-12.26-10.38-20.36-12.967-5.59-1.78-20.36-5.93-20.36-23.566 0-17.373 15.08-25.524 31.2-25.524 13.64 0 23.5 4.69 23.5 4.69 1.01.427 1.58 1.635 1.28 2.698l-2.658 9.357c-.488 1.74-1.898 2.537-3.666 1.957-3.89-1.277-11.2-3.322-18.15-3.322zm-210.313-15.28c-6.695.775-11.472 3.962-14.562 6.93-6.06-4.81-14.49-7.106-23.94-7.106-18.95 0-33.76 9.26-33.76 29.43 0 11.58 4.88 19.56 12.62 24.26-5.75 2.75-9.57 8.59-9.57 14.34 0 9.61 7.5 12.61 7.5 12.61s-13.11 6.44-13.11 19.32c0 16.49 15.01 23.16 33.34 23.16 26.43 0 44.61-11.04 44.61-31.31 0-12.47-9.44-19.36-30.01-20.18-12.2-.48-20.11-.93-22.07-1.58-2.59-.87-3.86-2.96-3.86-5.28 0-2.55 2.08-4.98 5.35-6.65 2.86.516 5.87.768 8.99.768 18.97 0 33.76-9.223 33.76-29.425 0-4.897-.87-9.15-2.46-12.78 2.79-1.506 8.34-2.25 8.34-2.25 1.09-.17 1.975-1.21 1.974-2.31V40.3c0-1.88-1.59-2.955-3.1-2.78zm-49.13 85.132s9.954.38 19.9.84c11.172.52 14.654 2.96 14.654 8.81 0 7.15-9.71 14.1-23.28 14.1-12.88 0-19.314-4.54-19.314-12.08 0-4.33 2.26-9.18 8.04-11.69zm10.66-40.54c-8.978 0-15.983-4.83-15.983-15.35 0-10.53 7.01-15.35 15.983-15.35 8.974 0 15.984 4.81 15.984 15.34 0 10.53-7.002 15.34-15.984 15.34z" fill="#2D3134"/><g opacity=".6" transform="translate(0 36)" fill="#2E3134"><rect x=".209" y="69.017" width="33.643" height="17.014" rx="4"/><rect x="50.672" y="69.017" width="33.622" height="17.014" rx="4"/><rect x=".184" y="34.99" width="84.121" height="17.014" rx="4"/><rect x=".209" y=".964" width="50.469" height="17.013" rx="4"/><rect x="67.494" y=".964" width="16.821" height="17.013" rx="4"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 14.5s2 3 5 3 5.5-2.463 5.5-5.5S21 6.5 18 6.5c-5 0-7 11-12 11C2.962 17.5.5 15.037.5 12S3 6.5 6 6.5s4.5 3.5 4.5 3.5"/></svg>

Before

Width:  |  Height:  |  Size: 196 B

11
partials/icons/loader.hbs Normal file
View File

@ -0,0 +1,11 @@
<svg version="1.1" id="loader-1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" width="40px" height="40px" viewBox="0 0 40 40" enable-background="new 0 0 40 40" xml:space="preserve">
<path opacity="0.2" fill="#000" d="M20.201,5.169c-8.254,0-14.946,6.692-14.946,14.946c0,8.255,6.692,14.946,14.946,14.946
s14.946-6.691,14.946-14.946C35.146,11.861,28.455,5.169,20.201,5.169z M20.201,31.749c-6.425,0-11.634-5.208-11.634-11.634
c0-6.425,5.209-11.634,11.634-11.634c6.425,0,11.633,5.209,11.633,11.634C31.834,26.541,26.626,31.749,20.201,31.749z" />
<path fill="#000" d="M26.013,10.047l1.654-2.866c-2.198-1.272-4.743-2.012-7.466-2.012h0v3.312h0
C22.32,8.481,24.301,9.057,26.013,10.047z">
<animateTransform attributeType="xml" attributeName="transform" type="rotate" from="0 20 20" to="360 20 20"
dur="0.5s" repeatCount="indefinite" />
</path>
</svg>

After

Width:  |  Height:  |  Size: 923 B

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" fill="none"><path d="M19.5 8c0 4.144-7.5 15.5-7.5 15.5S4.5 12.144 4.5 8C4.5 3.858 7.857.5 12 .5c4.142 0 7.5 3.358 7.5 7.5z"/><circle cx="12" cy="8" r="3"/></svg>

Before

Width:  |  Height:  |  Size: 329 B

5
partials/icons/lock.hbs Normal file
View File

@ -0,0 +1,5 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<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>
<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>
<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>
</svg>

After

Width:  |  Height:  |  Size: 932 B

View File

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M7.5 15.5V4a1.5 1.5 0 1 1 3 0v4.5h2a1 1 0 0 1 1 1h2a1 1 0 0 1 1 1H18a1.5 1.5 0 0 1 1.5 1.5v3.099c0 .929-.13 1.854-.385 2.748L17.5 23.5h-9c-1.5-2-5.417-8.673-5.417-8.673a1.2 1.2 0 0 1 1.76-1.605L7.5 15.5zm6-6v2m-3-3.5v3.5m6-1v2"/>
</svg>

Before

Width:  |  Height:  |  Size: 311 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" width="20" height="20"><path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg>

After

Width:  |  Height:  |  Size: 248 B

View File

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M30.063 7.313c-.813 1.125-1.75 2.125-2.875 2.938v.75c0 1.563-.188 3.125-.688 4.625a15.088 15.088 0 0 1-2.063 4.438c-.875 1.438-2 2.688-3.25 3.813a15.015 15.015 0 0 1-4.625 2.563c-1.813.688-3.75 1-5.75 1-3.25 0-6.188-.875-8.875-2.625.438.063.875.125 1.375.125 2.688 0 5.063-.875 7.188-2.5-1.25 0-2.375-.375-3.375-1.125s-1.688-1.688-2.063-2.875c.438.063.813.125 1.125.125.5 0 1-.063 1.5-.25-1.313-.25-2.438-.938-3.313-1.938a5.673 5.673 0 0 1-1.313-3.688v-.063c.813.438 1.688.688 2.625.688a5.228 5.228 0 0 1-1.875-2c-.5-.875-.688-1.813-.688-2.75 0-1.063.25-2.063.75-2.938 1.438 1.75 3.188 3.188 5.25 4.25s4.313 1.688 6.688 1.813a5.579 5.579 0 0 1 1.5-5.438c1.125-1.125 2.5-1.688 4.125-1.688s3.063.625 4.188 1.813a11.48 11.48 0 0 0 3.688-1.375c-.438 1.375-1.313 2.438-2.563 3.188 1.125-.125 2.188-.438 3.313-.875z"/></svg>
<svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor"><path d="M23.954 4.569c-.885.389-1.83.654-2.825.775 1.014-.611 1.794-1.574 2.163-2.723-.951.555-2.005.959-3.127 1.184-.896-.959-2.173-1.559-3.591-1.559-2.717 0-4.92 2.203-4.92 4.917 0 .39.045.765.127 1.124C7.691 8.094 4.066 6.13 1.64 3.161c-.427.722-.666 1.561-.666 2.475 0 1.71.87 3.213 2.188 4.096-.807-.026-1.566-.248-2.228-.616v.061c0 2.385 1.693 4.374 3.946 4.827-.413.111-.849.171-1.296.171-.314 0-.615-.03-.916-.086.631 1.953 2.445 3.377 4.604 3.417-1.68 1.319-3.809 2.105-6.102 2.105-.39 0-.779-.023-1.17-.067 2.189 1.394 4.768 2.209 7.557 2.209 9.054 0 13.999-7.496 13.999-13.986 0-.209 0-.42-.015-.63.961-.689 1.8-1.56 2.46-2.548l-.047-.02z"/></svg>

Before

Width:  |  Height:  |  Size: 888 B

After

Width:  |  Height:  |  Size: 752 B

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23.5 11.957c0 6.375-5.163 11.544-11.532 11.544C5.599 23.5.5 18.125.5 11.75.5 5.542 5.37.758 11.505.511l.5-.011C18.374.5 23.5 5.582 23.5 11.957zM11.505.511c-6 6.5-6 14.98 0 22.98m1-22.98c6 6.5 6 14.977 0 22.977M2 17.479h20.063m-19.657-12h19.062m-20.968 6h22.938" stroke="#000" stroke-linejoin="round" stroke-miterlimit="10" fill="none"/></svg>

Before

Width:  |  Height:  |  Size: 413 B

View File

@ -1,26 +1,78 @@
<article class="post-card {{post_class}}{{#unless feature_image}} no-image{{/unless}}">
{{!-- This is a partial file used to generate a post "card"
which templates loop over to generate a list of posts. --}}
<article class="post-card {{post_class}}{{#match @custom.feed_layout "Classic"}}{{#is "home"}}{{#has index="0"}} post-card-large{{/has}}{{#has index="1,2"}} dynamic{{/has}}{{/is}}{{/match}}{{#match @custom.feed_layout "Grid"}} keep-ratio{{/match}}{{#match @custom.feed_layout "List"}}{{#is "home, paged"}} post-card-large{{/is}}{{/match}}{{#unless access}} post-access-{{visibility}}{{/unless}}">
{{#if feature_image}}
<a class="post-card-image-link" href="{{url}}">
<div class="post-card-image" style="background-image: url({{feature_image}})"></div>
</a>
<a class="post-card-image-link" href="{{url}}">
{{!-- This is a responsive image, it loads different sizes depending on device
https://medium.freecodecamp.org/a-guide-to-responsive-images-with-ready-to-use-templates-c400bd65c433 --}}
<img class="post-card-image"
srcset="{{img_url feature_image size="s"}} 300w,
{{img_url feature_image size="m"}} 600w,
{{img_url feature_image size="l"}} 1000w,
{{img_url feature_image size="xl"}} 2000w"
sizes="(max-width: 1000px) 400px, 800px"
src="{{img_url feature_image size="m"}}"
alt="{{#if feature_image_alt}}{{feature_image_alt}}{{else}}{{title}}{{/if}}"
loading="lazy"
/>
{{#unless access}}
{{^has visibility="public"}}
<div class="post-card-access">
{{> "icons/lock"}}
{{#has visibility="members"}}
Members only
{{else}}
Paid-members only
{{/has}}
</div>
{{/has}}
{{/unless}}
</a>
{{/if}}
<div class="post-card-content">
<a class="post-card-content-link" href="{{url}}">
<header class="post-card-header">
{{#if tags}}
<span class="post-card-tags">{{tags.[0].name}}</span>
{{/if}}
<h2 class="post-card-title">{{title}}</h2>
<div class="post-card-tags">
{{#primary_tag}}
<span class="post-card-primary-tag">{{name}}</span>
{{/primary_tag}}
{{#if featured}}
<span class="post-card-featured">{{> "icons/fire"}} Featured</span>
{{/if}}
</div>
<h2 class="post-card-title">
{{#unless access}}
{{^has visibility="public"}}
{{#unless feature_image}}
{{> "icons/lock"}}
{{/unless}}
{{/has}}
{{/unless}}
{{title}}
</h2>
</header>
<section class="post-card-excerpt">
<p>{{excerpt words="33"}}</p>
</section>
</a>
<footer class="post-card-meta">
{{#if author.profile_image}}
<img class="author-profile-image" src="{{author.profile_image}}" alt="{{author.name}}" />
{{#if excerpt}}
<div class="post-card-excerpt">{{excerpt}}</div>
{{/if}}
</a>
<footer class="post-card-meta">
<time class="post-card-meta-date" datetime="{{date format="YYYY-MM-DD"}}">{{date}}</time>
{{#if reading_time}}
<span class="post-card-meta-length">{{reading_time}}</span>
{{/if}}
{{#if @site.comments_enabled}}
{{comment_count}}
{{/if}}
<span class="post-card-author">{{author}}</span>
</footer>
</div>
</article>

View File

@ -1,36 +0,0 @@
<section class="share">
<ul class="">
<li>
<a class="share-facebook" href="https://www.facebook.com/sharer/sharer.php?u={{url absolute="true"}}"
onclick="window.open(this.href, 'share-facebook','width=580,height=296');return false;"><span class="share-label">Share</span><svg version="1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<path d="M12 0C5.383 0 0 5.383 0 12s5.383 12 12 12 12-5.383 12-12S18.617 0 12 0zm0 23C5.935 23 1 18.065 1 12S5.935 1 12 1s11 4.935 11 11-4.935 11-11 11zm3.839-14H14v-.523c0-.087.017-.127.092-.147H15.5c.276 0 .5-.224.5-.5V5.524c0-.275-.223-.499-.499-.5l-2.352-.007C11.148 5.018 10 6.227 10 8.336V9H8.5c-.276 0-.5.224-.5.5v2c0 .276.224.5.5.5H10v6.5c0 .276.224.5.5.5h3c.276 0 .5-.224.5-.5V12h1.595c.253 0 .466-.189.496-.439l.244-2c.018-.142-.026-.285-.122-.392-.095-.108-.231-.169-.374-.169zm-.687 2H13.5c-.276 0-.5.224-.5.5V18h-2v-6.5c0-.276-.224-.5-.5-.5H9v-1h1.5c.276 0 .5-.224.5-.5V8.336c0-2.319 1.618-2.319 2.148-2.319L15 6.023V7.33h-.908c-.526 0-1.092.359-1.092 1.147V9.5c0 .276.224.5.5.5h1.774l-.122 1z"/></a>
</svg>
</li>
<li>
<a class="share-twitter" href="https://twitter.com/share?text={{encode title}}&amp;url={{url absolute="true"}}"
onclick="window.open(this.href, 'share-twitter', 'width=550,height=235');return false;"><span class="share-label">Tweet</span><svg version="1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<path d="M18.446 6.856c-.049.005-1.066.116-1.732.226-.57-.508-1.315-.795-2.085-.795-1.727 0-3.133 1.405-3.133 3.132v.045C9.755 9.227 8.15 8.332 7.027 6.953c-.104-.127-.265-.195-.426-.182-.164.013-.311.105-.394.247-.277.478-.424 1.022-.424 1.575 0 .494.115.971.329 1.399l-.104.049c-.152.09-.246.271-.246.448 0 .906.393 1.739 1.028 2.318-.102.13-.132.301-.082.459.271.846.879 1.515 1.648 1.877-.783.356-1.664.494-2.553.391-.243-.032-.451.109-.528.328-.078.219.005.464.201.589 1.288.826 2.776 1.263 4.305 1.263 5 0 7.988-4.062 7.988-7.989l-.001-.123c.324-.336.565-.833.801-1.316.121-.25.234-.487.347-.656.107-.162.112-.371.012-.537-.101-.164-.288-.257-.482-.237zm-1.477 2.123c-.138.1-.215.262-.206.431l.007.314c0 3.436-2.614 6.989-6.988 6.989-.697 0-1.385-.104-2.043-.306.8-.191 1.55-.553 2.213-1.073.166-.13.232-.351.166-.552-.067-.2-.254-.337-.465-.341-.647-.013-1.238-.315-1.627-.801.163-.018.323-.048.481-.092.224-.062.375-.269.367-.5-.009-.231-.175-.427-.402-.472-.736-.147-1.322-.67-1.575-1.36.179.038.36.06.542.065.232.024.424-.133.492-.346.068-.212-.012-.445-.197-.569-.596-.396-.951-1.06-.951-1.773 0-.129.012-.257.035-.384 1.392 1.381 3.253 2.212 5.222 2.309.16.007.309-.059.408-.179.101-.121.139-.282.103-.435-.036-.156-.055-.319-.055-.485 0-1.176.957-2.132 2.133-2.132.596 0 1.148.239 1.556.674.118.126.293.183.463.148.24-.047.614-.101.967-.146-.198.405-.433.862-.646 1.016zM12 0C5.383 0 0 5.383 0 12s5.383 12 12 12 12-5.383 12-12S18.617 0 12 0zm0 23C5.935 23 1 18.065 1 12S5.935 1 12 1s11 4.935 11 11-4.935 11-11 11z"/></a>
</svg>
</li>
<li>
<a class="share-mail" href="mailto:?subject={{title}}&body=Hey, saw this on {{@blog.title}} and thought of you! - {{url absolute="true"}}"><span class="share-label">Send</span><svg version="1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<path d="M18 6H6c-1.103 0-2 .897-2 2v8c0 1.103.897 2 2 2h12c1.103 0 2-.897 2-2V8c0-1.103-.897-2-2-2zm1 10c0 .551-.449 1-1 1H6c-.551 0-1-.449-1-1V8c0-.551.449-1 1-1h12c.551 0 1 .449 1 1v8zm-1.113-7.816c-.175-.214-.49-.245-.704-.071L12 12.354 6.816 8.113c-.214-.174-.528-.143-.703.071-.175.213-.143.528.071.703l3.618 2.96-3.566 2.229c-.234.146-.305.455-.159.689.094.152.257.235.424.235.09 0 .182-.024.265-.076l3.853-2.408 1.065.872c.091.074.204.112.316.112s.225-.038.316-.113l1.065-.872 3.853 2.408c.083.053.175.077.266.077.167 0 .33-.083.424-.235.146-.234.075-.543-.159-.689l-3.566-2.229 3.618-2.96c.213-.175.245-.49.07-.703zM12 0C5.383 0 0 5.383 0 12s5.383 12 12 12 12-5.383 12-12S18.617 0 12 0zm0 23C5.935 23 1 18.065 1 12S5.935 1 12 1s11 4.935 11 11-4.935 11-11 11z"/></a>
</svg>
</li>
<li>
<a class="share-tumblr" href="https://www.tumblr.com/share?v=3&u={{url absolute="true"}}&t={{title}}" onclick="window.open(this.href, 'share-tumblr', 'width=450,height=483');return false;"><span class="share-label">Reblog</span><svg version="1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<path d="M12 0C5.383 0 0 5.383 0 12s5.383 12 12 12 12-5.383 12-12S18.617 0 12 0zm0 23C5.935 23 1 18.065 1 12S5.935 1 12 1s11 4.935 11 11-4.935 11-11 11zm3.729-8.521c-.161-.087-.357-.079-.512.022-.459.302-.905.468-1.256.468-.795 0-.962-.952-.962-1.751V10h1.5c.276 0 .5-.224.5-.5v-2C15 7.224 14.776 7 14.5 7H13V4.5c0-.276-.224-.5-.5-.5h-1.939c-.253 0-.466.188-.496.439-.075.606-.202 1.043-.441 1.51-.204.403-.48.755-.821 1.045-.252.214-.742.441-1.457.673-.206.066-.346.258-.346.475V9.5c0 .276.224.5.5.5H9v4.031c0 1.271.33 2.429.929 3.264.7.977 1.728 1.493 2.973 1.493.849 0 1.792-.242 2.804-.72.176-.083.287-.259.287-.452V14.92c-.001-.184-.101-.354-.264-.441zm-.737 2.813c-1.898.814-3.394.616-4.251-.581-.478-.665-.741-1.617-.741-2.68V9.5c0-.276-.224-.5-.5-.5H8v-.5c.674-.24 1.14-.48 1.451-.745.442-.377.801-.832 1.064-1.354.229-.447.379-.884.474-1.401H12v2.5c0 .276.224.5.5.5H14v1h-1.5c-.276 0-.5.224-.5.5v3.719c0 2.552 1.502 2.751 1.962 2.751.323 0 .671-.075 1.03-.22v1.542z"/></a>
</svg>
</li>
<li>
<a class="share-pinterest" href="https://www.pinterest.com/pin/create/bookmarklet/?media={{image absolute="true"}}&url={{url absolute="true"}}&description={{title}}" onclick="window.open(this.href, 'share-pinterest', 'width=770,height=560');return false;"><span class="share-label">Pin</span><svg version="1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<path d="M12 0C5.383 0 0 5.383 0 12s5.383 12 12 12 12-5.383 12-12S18.617 0 12 0zm0 23C5.935 23 1 18.065 1 12S5.935 1 12 1s11 4.935 11 11-4.935 11-11 11zm.531-19.5c-4.425 0-7.068 3.173-7.068 6.24 0 .958.204 1.831.591 2.523.134.238.435.325.671.197l1.513-.805c.234-.124.331-.409.22-.65-.137-.297-.203-.637-.203-1.037 0-1.938 1.383-3.9 4.025-3.9 2.051 0 3.324 1.158 3.324 3.021 0 2.46-1.061 4.388-2.414 4.388-.33 0-.625-.133-.809-.365-.17-.215-.226-.496-.156-.791.098-.408.227-.829.354-1.238.242-.784.472-1.525.472-2.139 0-1.123-.699-1.878-1.74-1.878-1.274 0-2.272 1.264-2.272 2.878 0 .691.168 1.232.269 1.498l-1.144 4.85c-.31 1.31-.158 2.842-.037 3.672.042.312.3.537.614.537.197 0 .379-.091.514-.268.398-.507 1.361-1.829 1.729-3.158.064-.231.263-1.012.424-1.645.539.39 1.262.633 1.984.633 3.163 0 5.459-2.858 5.459-6.797-.001-2.834-2.365-5.766-6.32-5.766zm.86 11.562c-.83 0-1.581-.455-1.801-.876-.096-.184-.297-.287-.502-.266-.206.024-.375.174-.426.375 0 0-.533 2.109-.644 2.516-.201.73-.626 1.478-1.008 2.053-.053-.711-.054-1.581.126-2.344l1.183-5.007c.026-.112.013-.232-.038-.336-.002-.005-.242-.508-.242-1.233 0-1.053.559-1.878 1.272-1.878.645 0 .74.55.74.878 0 .463-.208 1.134-.427 1.844-.134.43-.269.872-.372 1.302-.142.6-.02 1.184.345 1.644.374.473.955.744 1.593.744 1.946 0 3.414-2.316 3.414-5.388 0-2.405-1.737-4.021-4.324-4.021-2.865 0-5.025 2.106-5.025 4.9 0 .365.043.699.131 1.009l-.662.352c-.171-.462-.26-1.002-.26-1.589 0-2.54 2.127-5.24 6.068-5.24 3.329 0 5.318 2.423 5.318 4.766 0 3.412-1.834 5.795-4.459 5.795z"/>
</svg></a>
</li>
<li>
<a class="share-whatsapp" href="whatsapp://send?text={{url absolute="true"}}"><span class="share-label">WhatsApp</span><svg version="1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<path d="M18.652 14.46l-.166-.08c-.019-.01-1.964-.968-2.344-1.104-.435-.16-1.003-.144-1.34.357-.179.268-.722.91-1.006 1.273l-.144-.055-.245-.109c-.465-.2-1.33-.572-2.342-1.467-.938-.831-1.587-1.881-1.795-2.147l.097-.106c.593-.585.777-.956.932-1.266.165-.322.156-.671-.026-1.036-.058-.117-.358-.843-.635-1.511l-.385-.924c-.234-.56-.852-.908-1.612-.908-.601 0-1.165.221-1.509.593-1.806 1.96-1.748 4.33.165 6.856l.059.086c1.673 2.46 3.763 4.271 5.886 5.102 2.213.864 2.989.981 3.457.981.261 0 .44-.043.583-.077l.211-.04c1.317-.119 2.28-1.137 2.705-1.973.38-.749.431-1.458.136-1.949-.147-.241-.383-.354-.682-.496zm-.346 1.99c-.309.608-.993 1.348-1.903 1.43l-.354.063c-.116.028-.207.05-.35.05-.509 0-1.521-.298-3.093-.912-1.937-.757-3.862-2.438-5.423-4.733l-.088-.126c-1.606-2.12-1.683-3.996-.227-5.574.152-.165.456-.271.774-.271.339 0 .616.118.69.295l.383.92c.29.703.608 1.468.664 1.577.048.096.039.111.005.181-.12.242-.245.492-.72.961-.17.168-.623.615-.227 1.285.25.429.944 1.523 1.965 2.428 1.133 1.001 2.13 1.431 2.609 1.637l.196.087c.556.275.978.192 1.325-.202.008-.01.823-.94 1.08-1.386l.191.057c.254.091 1.762.822 2.239 1.06l.179.087.256.109c.088.145.057.528-.171.977zM11.999.18c-6.617 0-12 5.343-12 11.909 0 2.438.737 4.774 2.136 6.772L.78 22.857c-.061.179-.015.376.117.511.132.134.328.183.508.126L5.6 22.161C7.517 23.365 9.724 24 12 24c6.616 0 11.999-5.343 11.999-11.91S18.616.18 11.999.18zM12 23c-2.161 0-4.254-.624-6.053-1.805-.083-.054-.178-.082-.274-.082l-.151.023-3.477 1.104 1.119-3.302c.052-.154.026-.324-.07-.455-1.37-1.872-2.095-4.084-2.095-6.396 0-6.016 4.935-10.909 11-10.909 6.066 0 11 4.895 11 10.91C22.999 18.105 18.065 23 12 23z"/>
</svg></a>
</li>
</ul>
</section>

View File

@ -1,29 +0,0 @@
<nav class="site-nav">
<div class="site-nav-left">
{{^is "home"}}
{{#if @blog.logo}}
<a class="site-nav-logo" href="{{@blog.url}}"><img src="{{@blog.logo}}" alt="{{@blog.title}}" /></a>
{{else}}
<a class="site-nav-logo" href="{{@blog.url}}">{{@blog.title}}</a>
{{/if}}
{{/is}}
{{#if @blog.navigation}}
{{navigation}}
{{/if}}
</div>
<div class="site-nav-right">
<div class="social-links">
{{#if @blog.facebook}}
<a class="social-link social-link-fb" href="{{facebook_url @blog.facebook}}" target="_blank">{{> "icons/facebook"}}</a>
{{/if}}
{{#if @blog.twitter}}
<a class="social-link social-link-tw" href="{{twitter_url @blog.twitter}}" target="_blank">{{> "icons/twitter"}}</a>
{{/if}}
</div>
{{#if @labs.subscribers}}
<a class="subscribe-button" href="#subscribe">Subscribe</a>
{{else}}
<a class="rss-button" href="http://cloud.feedly.com/#subscription/feed/{{@blog.url}}/rss/" target="_blank">{{> "icons/rss"}}</a>
{{/if}}
</div>
</nav>

292
post.hbs
View File

@ -1,216 +1,140 @@
{{!< default}}
{{!-- The tag above means: insert everything in this file
into the {body} of the default.hbs template --}}
into the {body} tag of the default.hbs template --}}
<header class="site-header outer">
<div class="inner">
{{> "site-nav"}}
</div>
</header>
{{!-- Everything inside the #post tags pulls data from the post --}}
{{#post}}
{{!-- Everything inside the #post block pulls data from the post --}}
<main id="site-main" class="site-main outer" role="main">
<div class="inner">
<main id="site-main" class="site-main">
<article class="article {{post_class}} {{#match @custom.post_image_style "Full"}}image-full{{else match @custom.post_image_style "=" "Small"}}image-small{{/match}}">
<article class="post-full {{post_class}} {{#unless feature_image}}no-image{{/unless}}">
<header class="article-header gh-canvas">
<header class="post-full-header">
<section class="post-full-meta">
<time class="post-full-meta-date" datetime="{{date format="YYYY-MM-DD"}}">{{date format="D MMMM YYYY"}}</time>
{{#if tags}}
<span class="date-divider">/</span> <a href="{{@blog.url}}tag/{{tags.[0].slug}}">{{tags.[0].name}}</a>
{{/if}}
</section>
<h1 class="post-full-title">{{title}}</h1>
</header>
{{#if feature_image}}
<figure class="post-full-image" style="background-image: url({{feature_image}})">
</figure>
<div class="article-tag post-card-tags">
{{#primary_tag}}
<span class="post-card-primary-tag">
<a href="{{url}}">{{name}}</a>
</span>
{{/primary_tag}}
{{#if featured}}
<span class="post-card-featured">{{> "icons/fire"}} Featured</span>
{{/if}}
</div>
<section class="post-full-content">
{{content}}
</section>
<h1 class="article-title">{{title}}</h1>
{{!-- Email subscribe form at the bottom of the page --}}
{{#if @labs.subscribers}}
<section class="subscribe-form">
<h3 class="subscribe-form-title">Subscribe to {{@blog.title}}</h3>
<p>Get the latest posts delivered right to your inbox</p>
{{subscribe_form placeholder="youremail@example.com"}}
</section>
{{/if}}
{{#if custom_excerpt}}
<p class="article-excerpt">{{custom_excerpt}}</p>
{{/if}}
<footer class="post-full-footer">
{{!-- Everything inside the #author tags pulls data from the author --}}
{{#author}}
<div class="article-byline">
<section class="article-byline-content">
<section class="author-card">
<ul class="author-list">
{{#foreach authors}}
<li class="author-list-item">
{{#if profile_image}}
<img class="author-profile-image" src="{{profile_image}}" alt="{{name}}" />
<a href="{{url}}" class="author-avatar">
<img class="author-profile-image" src="{{img_url profile_image size="xs"}}" alt="{{name}}" />
</a>
{{else}}
<a href="{{url}}" class="author-avatar author-profile-image">{{> "icons/avatar"}}</a>
{{/if}}
</li>
{{/foreach}}
</ul>
<div class="article-byline-meta">
<h4 class="author-name">{{authors}}</h4>
<div class="byline-meta-content">
<time class="byline-meta-date" datetime="{{date format="YYYY-MM-DD"}}">{{date}}</time>
{{#if reading_time}}
<span class="byline-reading-time"><span class="bull">&bull;</span> {{reading_time}}</span>
{{/if}}
<section class="author-card-content">
<h4 class="author-card-name"><a href="{{url}}">{{name}}</a></h4>
{{#if bio}}
<p>{{bio}}</p>
{{else}}
<p>Read <a href="{{url}}">more posts</a> by this author.</p>
{{/if}}
</section>
</section>
<div class="post-full-footer-right">
<a class="author-card-button" href="{{url}}">Read More</a>
</div>
</div>
{{/author}}
</footer>
</section>
</div>
{{!--
{{#match @custom.post_image_style "!=" "Hidden"}}
{{#if feature_image}}
<figure class="article-image">
{{!-- This is a responsive image, it loads different sizes depending on device
https://medium.freecodecamp.org/a-guide-to-responsive-images-with-ready-to-use-templates-c400bd65c433 --}}
<img
srcset="{{img_url feature_image size="s"}} 300w,
{{img_url feature_image size="m"}} 600w,
{{img_url feature_image size="l"}} 1000w,
{{img_url feature_image size="xl"}} 2000w"
sizes="(min-width: 1400px) 1400px, 92vw"
src="{{img_url feature_image size="xl"}}"
alt="{{#if feature_image_alt}}{{feature_image_alt}}{{else}}{{title}}{{/if}}"
/>
{{#if feature_image_caption}}
<figcaption>{{feature_image_caption}}</figcaption>
{{/if}}
</figure>
{{/if}}
{{/match}}
If you use Disqus comments, just uncomment this block.
The only thing you need to change is "test-apkdzgmqhj" - which
should be replaced with your own Disqus site-id.
</header>
<section class="post-full-comments">
<div id="disqus_thread"></div>
<script>
var disqus_config = function () {
this.page.url = '{{url absolute="true"}}';
this.page.identifier = 'ghost-{{id}}';
};
(function() {
var d = document, s = d.createElement('script');
s.src = 'https://test-apkdzgmqhj.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
</section>
--}}
<section class="gh-content gh-canvas">
{{content}}
</section>
</article>
{{#if comments}}
<section class="article-comments gh-canvas">
{{comments}}
</section>
{{/if}}
</div>
</article>
</main>
{{!-- Links to Previous/Next posts --}}
<aside class="read-next outer">
<div class="inner">
<div class="read-next-feed">
{{#get "posts" filter="tags:{{tags.[0].slug}}+id:-{{id}}" limit="3"}}
<article class="read-next-card"
{{#if ../tags.[0].feature_image}}
style="background-image: url({{../tags.[0].feature_image}})"
{{else}}
{{#if @blog.cover_image}}
style="background-image: url({{@blog.cover_image}})"{{/if}}
{{/if}}
>
<header class="read-next-card-header">
<small class="read-next-card-header-sitetitle">&mdash; {{@blog.title}} &mdash;</small>
<h3 class="read-next-card-header-title"><a href="{{@blog.url}}tag/{{../tags.[0].slug}}/">{{../tags.[0].name}}</a></h3>
</header>
<div class="read-next-divider">{{> "icons/infinity"}}</div>
<div class="read-next-card-content">
<ul>
{{#foreach posts}}
<li><a href="{{url}}">{{title}}</a></li>
{{/foreach}}
</ul>
</div>
<footer class="read-next-card-footer">
<a href="{{@blog.url}}tag/{{../tags.[0].slug}}/">{{plural meta.pagination.total empty='No posts' singular='% post' plural='See all % posts'}} →</a>
</footer>
</article>
{{/get}}
{{!-- If there's a next post, display it using the same markup included from - partials/post-card.hbs --}}
{{#next_post}}
{{> "post-card"}}
{{/next_post}}
{{!-- If there's a previous post, display it using the same markup included from - partials/post-card.hbs --}}
{{#prev_post}}
{{> "post-card"}}
{{/prev_post}}
{{!-- A signup call to action is displayed here, unless viewed as a logged-in member --}}
{{#if @site.members_enabled}}
{{#unless @member}}
{{#unless @site.comments_enabled}}
{{#if access}}
<section class="footer-cta outer">
<div class="inner">
{{#if @custom.email_signup_text}}<h2 class="footer-cta-title">{{@custom.email_signup_text}}</h2>{{/if}}
<a class="footer-cta-button" href="#/portal" data-portal>
<div class="footer-cta-input">Enter your email</div>
<span>Subscribe</span>
</a>
</div>
</div>
</aside>
</section>
{{/if}}
{{/unless}}
{{/unless}}
{{/if}}
{{!-- Floating header which appears on-scroll, included from includes/floating-header.hbs --}}
{{> floating-header}}
{{/post}}
{{!-- Read more links, just above the footer --}}
{{#if @custom.show_recent_posts_footer}}
{{!-- The {#get} helper below fetches some of the latest posts here
so that people have something else to read when they finish this one.
{{!-- The #contentFor helper here will send everything inside it up to the matching #block helper found in default.hbs --}}
{{#contentFor "scripts"}}
<script>
This query gets the latest 3 posts on the site, but adds a filter to
exclude the post we're currently on from being included. --}}
{{#get "posts" filter="id:-{{id}}" limit="3" as |more_posts|}}
// NOTE: Scroll performance is poor in Safari
// - this appears to be due to the events firing much more slowly in Safari.
// Dropping the scroll event and using only a raf loop results in smoother
// scrolling but continuous processing even when not scrolling
$(document).ready(function () {
// Start fitVids
var $postContent = $(".post-full-content");
$postContent.fitVids();
// End fitVids
{{#if more_posts}}
<aside class="read-more-wrap outer">
<div class="read-more inner">
{{#foreach more_posts}}
{{> "post-card"}}
{{/foreach}}
</div>
</aside>
{{/if}}
var progressBar = document.querySelector('progress');
var header = document.querySelector('.floating-header');
var title = document.querySelector('.post-full-title');
{{/get}}
{{/if}}
var lastScrollY = window.scrollY;
var lastWindowHeight = window.innerHeight;
var lastDocumentHeight = $(document).height();
var ticking = false;
function onScroll() {
lastScrollY = window.scrollY;
requestTick();
}
function onResize() {
lastWindowHeight = window.innerHeight;
lastDocumentHeight = $(document).height();
requestTick();
}
function requestTick() {
if (!ticking) {
requestAnimationFrame(update);
}
ticking = true;
}
function update() {
var trigger = title.getBoundingClientRect().top + window.scrollY;
var triggerOffset = title.offsetHeight + 35;
var progressMax = lastDocumentHeight - lastWindowHeight;
// show/hide floating header
if (lastScrollY >= trigger + triggerOffset) {
header.classList.add('floating-active');
} else {
header.classList.remove('floating-active');
}
progressBar.setAttribute('max', progressMax);
progressBar.setAttribute('value', lastScrollY);
ticking = false;
}
window.addEventListener('scroll', onScroll, {passive: true});
window.addEventListener('resize', onResize, false);
update();
});
</script>
{{/contentFor}}
{{/post}}

76
tag.hbs
View File

@ -1,33 +1,55 @@
{{!< default}}
{{!-- The tag above means - insert everything in this file into the {body} of the default.hbs template --}}
{{!-- The big featured header, it uses blog cover image as a BG if available --}}
{{#tag}}
<header class="site-header outer {{#if feature_image}}" style="background-image: url({{feature_image}}){{else}}no-cover{{/if}}">
<div class="inner">
{{> "site-nav"}}
<div class="site-header-content">
<h1 class="site-title">{{name}}</h1>
<h2 class="site-description">
{{#if description}}
{{description}}
{{else}}
A collection of {{plural ../pagination.total empty='posts' singular='% post' plural='% posts'}}
{{/if}}
</h2>
</div>
</div>
</header>
{{/tag}}
<main id="site-main" class="site-main outer">
<div class="inner posts">
<div class="post-feed">
{{#tag}}
<section class="post-card post-card-large">
{{#if feature_image}}
<div class="post-card-image-link">
{{!-- This is a responsive image, it loads different sizes depending on device
https://medium.freecodecamp.org/a-guide-to-responsive-images-with-ready-to-use-templates-c400bd65c433 --}}
<img class="post-card-image"
srcset="{{img_url feature_image size="s"}} 300w,
{{img_url feature_image size="m"}} 600w,
{{img_url feature_image size="l"}} 1000w,
{{img_url feature_image size="xl"}} 2000w"
sizes="(max-width: 1000px) 400px, 800px"
src="{{img_url feature_image size="m"}}"
alt="{{title}}"
/>
</div>
{{/if}}
<div class="post-card-content">
<div class="post-card-content-link">
<header class="post-card-header">
<h2 class="post-card-title">{{name}}</h2>
</header>
<div class="post-card-excerpt">
{{#if description}}
{{description}}
{{else}}
A collection of {{plural ../pagination.total empty='zero posts' singular='% post' plural='% posts'}}
{{/if}}
</div>
</div>
</div>
</section>
{{/tag}}
{{#foreach posts}}
{{!-- The tag below includes the markup for each post - partials/post-card.hbs --}}
{{> "post-card"}}
{{/foreach}}
{{!-- The main content area --}}
<main id="site-main" class="site-main outer" role="main">
<div class="inner">
<div class="post-feed">
{{#foreach posts}}
{{!-- The tag below includes the markup for each post - partials/post-card.hbs --}}
{{> "post-card"}}
{{/foreach}}
</div>
</div>
{{pagination}}
</div>
</main>

5638
yarn.lock Normal file

File diff suppressed because it is too large Load Diff