notebook

bushel's editor, again

ive gone through so many different ideas and variations on what bushel's editor should look like but i think ive come up with a good plan. it just involves a fundamental change to bushel's source document format.

the plan is for it to be block based. every document source gets one or more "blocks" that can be various types. initial types im thinking of are:

  • markdown: your standard markdown formatted block. it also needs a few custom parse things, like [[internal-links]], but honestly it shouldn't be too bad.
  • image(s): upload one or more images. single images get displayed in the block (either full width or partial width), while multiple images get displayed in a carousel or something. this way i can ensure im handling images on the backend properly.
  • code: yeah i know markdown has code blocks, but this would allow me more freedom to select a language and add additional elements to it without having to do a bunch of custom parser extensions.
  • custom HTML: i want to be able to do custom HTML blocks just for kicks. cause sometimes you just need it.
  • plugins: additional blocks could be provided with plugins, so things like a table of contents (based on leaf paths) or arcana labs webrings.

ultimately the source document would get stored probably as JSON. this works out well with my current data storage separation; all the metadata like the path and the title is already stored separately.