Joshua Wood Web Developer

June 27th, 2021

Outliner wishlist for blogging

Here are some things I wish my outliner could do for an optimal blogging setup.

Custom block types

Roam gives you a few ways to view sub-elements: document, bulleted list, numbered list. I wish I could customize these/create additional types. Each type would have a custom stylesheet/template for display in the outliner, and associated attribute(s) in data exports (i.e. OPML, JSON, etc.).

This feature reminds me of early content management systems (which often had a single content/page type) and their successors—such as Expression Engine—which let you create custom content types. It opened up a lot of possibilities.

The key is that I want the ease of editing content in an outliner such as Roam, but greater flexibility when displaying it. The better the content in the outliner imitates the published display format, the less I have to think about formatting.

In the meantime, I wish Roam would actually include all of the display type metadata in JSON exports… (Currently it does not include the document display type.)

Live preview

Imagine being able to see a live preview of content (sort of like markdown preview) in a right-sidebar.

Every block has a unique id

Roam has block refs, and they’re super handy since each element can have a true permalink. An alternative approach is to use the timestamp of when the block was created (maybe with millisecond precision)—however you would still have to store this with each block, which isn’t really practical if using markdown as the storage format.