As I painstakingly port content from two blogs and multiple outlets to its new home here, I'm finding that Ghost's editor has some growing to do.
The first pain-point I had was re-organizing content formerly distinguished by categories. I managed to work out a system using what Ghost calls "Internal Tags":
Tags which are prefixed by a #
character, otherwise known as hashtags, are internal tags within Ghost - which is to say that they aren't rendered publicly. This can be particularly useful when you want to drive particular functionality based on a tag, but you don't necessarily want to output the tag for readers to see.
Having set up a few internal tags to route content to different feeds, I started going through each post one by one to adjust the content and retag each for their new classification. The trouble here was that scrolling through a large list for each post that needed to be adjusted was making a tough job harder.
Then I found that I could save a filter to the sidebar. In this case, I set up one for each internal tag for easy access to blog posts, podcast episodes, and archived posts. This was great for items I had already re-tagged, but what I wanted was a similar list of items that I had not yet touched. Playing around with the parameters in a filtered view's URL scheme, I managed to get the job done.
Here I created a comma-separated list of the tag slugs I wanted to be ignored, tossed them in some square brackets, and pre-pended a minus sign (aka inverse) as I would in a filter within my routes.yaml
file.
This gives me a fast and elegant way to verify that all posts in my CMS are properly tagged with one of my 4 "categories." This little trick has saved me hours in scrolling and searching as I work to consolidate my collected work online.