8th August 2026
Development continues apace.
I'm working on getting my list of core features in place before turning to the development of individual extensions, like the Map extension.
Settings and Themes
I've been updating the settings page, adding keyword search and highlights on form elements to help users find the right search pages and form inputs.
I've also updated themes: there's now a system for importing and exporting custom themes. There is a separate theme editor extension which can be plugged in to allow for the tweaking of theme settings with a graphical interface, along with a live preview of theme customisations. It's pretty basic for now, but the functionality is there. Another one to come back to in future, once the core features are in place.
Settings page, light theme
Settings page, dark theme
Annotations
In version 1 of Orsn, annotations could be added to Cards, but only by using a plugin. In version 2, annotation of Cards is as a core feature and is available for all Cards. This does raise interesting questions about how annotations should be rendered when exporting projects to plain Markdown. It could be in additional JSON files or Markdown files with YAML frontmatter. This will still be somewhat human readable, as the annotations are stored with the original annotated text, as well as the comments.
In another example which shows how the annotations feature pushes at the limits of the Markdown format, I've also given myself a technical headache by allowing for the editing of raw Markdown in Orsn (for example in splitscreen view). Annotations depend on the ProseMirror editor and the document model it uses for tracking text selections, and when editing raw Markdown, a different editor is used, CodeMirror. Editing the Card text in raw Markdown mode with CodeMirror breaks the annotation locations tracked by ProseMirror, because parts of the document change size. I have implemented a solution for this, which is working so far: a map of the ProseMirror version of the document is kept in memory, and updated while editing, no matter which editor is being used: so the location of any annotations can be preserved, even when not editing with the ProseMirror editor.
I made a short screencast capturing the main features of annotations:
Contact
Find me on the fediverse (Mastodon) @Lemmy@post.lurk.org, or send an email to: info [at] orsn.io