My wishlist to Ghost
Overview
Making this theme was a blast. Generally, I am continuously amazed by the stuff that the Ghost team puts out, and being an advocate for owning (and ideally self-hosting) your data, I find the very existence of Ghost a great boon to the space.
With that said, developing a theme for it was no small undertaking and certainly an exercise in jumping the hoops. I won't go too deep into the details of my perils, but will leave a small wishlist of things, and status thereof, if I made the request, that I'd love to see added to ghost.
Things I'd love to see in Ghost
Allow us to ship custom helpers with themes
Per-post customisation variables
As a theme developer, I'm limited to 20 custom configuration options - it's the things like Post preview layout
or Show attribution
that can be controlled from the Settings:
Whilst that's all great and works wonders I feel like per-post and per-page customisation is sorely missing, and I had to jump through some hoops to make this exact theme work.
Imagine being able to toggle, per individual post, whether it should show comments? Outline? Or maybe, if it can be made more than Boolean values, even assign.. a chapter name, or order?
Doing it that way instead of relying on internal tags would be a godsend in terms of UX.
Add built-in SSO support
Absence of the feature is still baffling to me. Naturally, a "Magic Link" approach where a person can become a Member is convenient, but it's not anywhere close to being as convenient as the SSO with Google, Facebook or Apple.
I'd love to have a simple, worry-free way to add an Integration to Ghost instead of having to build and host a standalone 3rd party SSO service just to improve the changes of people engaging with my content.
This has been requested five years ago and apparently was even in Beta but never took off the ground?
Improve the {{has}}
helper to accept visiblity
attribute
Currently the only helper that accepts a visiblity
attribute is {{foreach}}
, as described in Ghost Help. This leads to silly cases where if I need to check if a certain tag, say, #chapter-outline-show
is assigned to a post I have to iterate over all tags of the post. And if I want to check the opposite, i.e. if a certain Post does not have a certain tag, my options are more limited still.
As used in the code, {{has}}
already accepts a visiblity
parameter but it checks the attribute of the context
, so if a Post has Visibility set to Members or Paid, but not capable of doing the same for tags.
Lift the restrictions off of {{get}}
helper parent context access
One of the major issues I ran into was the way Ghost restricts Handlebars from utilising parent contexts in {{get}}
requests. I know, rather technical, but you can read more in my post I made on the developer forum:
Big thanks to Cathy from Spectral Web Services, that wrote this excellent blog post addressing the issue and offering a workaround using partials and helpers. Wild stuff though.
Allow expressions in the order
attribute for {{get}}
helper
Following on from the previous ask, being able to actually construct meaningful queries inside of the order
attribute would allow me to sidestep a lot of workarounds and just order the results of the posts using said posts second tag, which would be the #chapter-order-XXXX
one:
{{#get "posts" filter="tags:{{tags[1].slug}}" include="tags" order="{{tags[2].slug}} asc" as |related-posts|}}
{{#foreach related-posts}}
{{> post-line}}
{{/foreach}}
{{/get}}
The pseudocode above now has to be replaced with 10 times the lines of code and numerous files.
Settings for this Post
To help you with your Chapters journey I have attached this post's settings below so you could troubleshoot your configuration.
Member discussion