Really been running into friction still on blocks that are part of “groups”. Again, things like blog posts or devlogs, wanting to be able to more “automatically” get links between prev/next items, or display lists of these items. The main reason that I don’t want to touch it is because it feels like it will be a huge fundamental change to what the ‘collate’ tool is supposed to do, and will be more of a time sink than I need to take on. But let’s see if I can’t make it simple.
My intuition has been telling me to add a “group” command (‘g’) for blocks, where I can assign a group name (for reference) and an index (for ordering) to a block. From there, I would want to be able to access a handful of information like the previous and next links for a group that the current block also belongs to, as well as a way to list all elements of a group in order. The problem with the first thing is that a block doesn’t necessarily have an export, and certainly has no understanding of a link, just a filepath (if it has an export). So that feels like a bad direction. “Listing all of the elements” is also pretty vague, because what are the “elements” and what do we do with them? If perhaps each group entry also had a value (a string literal) associated with it, then maybe we could do something with that value?
Perhaps I really need to hone in on what this tool is supposed to do. Originally, the design was for an extremely simple way to insert some text into other text templates. The use case was always meant to be for making websites, but I set an abstract design goal. Now I’m running into friction because there are specific problems that you run into when building a website, which is that you have a lot of pages that are grouped together and would benefit from shorthand to make them easier to append to. If I think about this as a data model, I want to have it be easier to define computed relationships between an element at index n and n +/- 1. I also want to be able to “pick” some number of items from the beginning or end of the group.
I really can’t seem to find a way to look at this problem in a way that simplifies it. Maybe I should keep sitting with the friction, and see if any new ideas arise.
Perhaps a final thought before I drop this: is there another layer of syntax I can add to simplify this problem? Just like collate can export to sam, perhaps a new layer, that makes this specific process of creating posts easier, can export to collate blocks?