Skip to content

Releases: alonswartz/notesium

0.6.0

30 Sep 10:04
Compare
Choose a tag to compare

This release introduces Vim mode to the Web/App editor, emulating key features of Vim such as motions, operators, visual modes, macro support, incremental highlighted search, search and replace, jump lists, sort, marks, cross-buffer yank/paste, and expected commands for writing, quitting, and adjusting editor settings. It also supports link insertion, link following, and passthrough for Notesium's global and note-tab keybindings.

A StatusBar has been added, displaying the focus state (or Vim mode), editor mode, editor settings, note link counts, and note actions. Additionally, a new Editor sub-section has been introduced in Settings.

To further enhance keyboard usage, Tab can be used to gain editor focus, and C-s to save the active note even when the editor is not focused.

This version includes backwards incompatible changes.

Fixed:

  • Links: Handle file-not-found gracefully instead of hard-fail.
  • Web/App: Note - focus activeFilename editor on Tab.

Added:

  • Web/App: Note - save activeFilename even if not focused on C-s.

  • Web/App: State - editorVimMode bool set and tracked via state management.

  • Web/App: Vendor - codemirror vim, dialog and searchcursor addons.

  • Web/App: Editor vim-mode - all common motions, operators, and text objects.

  • Web/App: Editor vim-mode - operator-motion orthogonality.

  • Web/App: Editor vim-mode - visual mode - characterwise, linewise, blockwise.

  • Web/App: Editor vim-mode - full macro support (q @).

  • Web/App: Editor vim-mode - incremental highlighted search (/ ? # * g# g*).

  • Web/App: Editor vim-mode - search/replace with confirm (:substitute :%s).

  • Web/App: Editor vim-mode - search history.

  • Web/App: Editor vim-mode - jump lists (C-o C-i).

  • Web/App: Editor vim-mode - sort (:sort).

  • Web/App: Editor vim-mode - marks (` ').

  • Web/App: Editor vim-mode - cross-buffer yank/paste.

  • Web/App: Editor vim-mode - keybind for write and set normal mode (C-s).

  • Web/App: Editor vim-mode - commands for write and quit (:w :wq :q :q!).

  • Web/App: Editor vim-mode - commands to set [no]wrap and [no]conceal.

  • Web/App: Editor vim-mode - insert link via finder on [[.

  • Web/App: Editor vim-mode - open link under cursor (ge gx).

  • Web/App: Editor vim-mode - unset highlighted search on Esc.

  • Web/App: Editor vim-mode - passthrough global keybinds (space n <char>).

  • Web/App: Editor vim-mode - passthrough note-tab keybinds (C-l|h|6|^).

  • Web/App: Editor vim-mode - autofocus on activeFilename change and match.

  • Web/App: Editor vim-mode - autofocus on note.Linenum change.

  • Web/App: StatusBar - displayed in default and Vim modes.

  • Web/App: StatusBar - default (focus state), Vim (colored mode).

  • Web/App: StatusBar - editor settings for mode, wrap, and conceal.

  • Web/App: StatusBar - note link counts and action icons (if sideBar closed).

  • Web/App: Settings Editor - vimMode lineWrapping concealFormatting toggles.

  • Web/App: Settings Editor - default mode keybinds.

  • Web/App: Settings Editor - vim mode keybinds and info.

  • Web/App: Settings Editor - table support keybinds and info.

Changed:

  • Web/App: Note tabs - switch to recent note keybind, C-6 (C-o deprecated).

  • Web/App: Settings Keybindings - split into global finder note-tabs sections.

  • Web/App: Settings Keybindings - moved edit and table to Settings Editor.

  • Readme: Web reorganized and updated to include Editor modes.

Backwards incompatible changes:

  • The Web/App keybinding for switching to the previously active note has been changed from C-o to C-6 (C-^ is also supported). This promotes consistency for all editor modes, as Vim uses C-o for the jumplist, and C-6 to switch to the previous buffer.

0.5.11

04 Sep 14:48
Compare
Choose a tag to compare

This release brings refinements to the Web/App, including improved editor link insertion and concealment enhancements. It also adds support for discarding unsaved changes. The README has been updated with new documentation.

Fixed:

  • Web/App: Editor insertLink - move cursor to end of formatted link.
  • Web/App: Editor conceal - fix unconceal font-size (firefox).

Added:

  • Web/App: Editor insertLink - apply timing threshold between bracket presses.

  • Web/App: Editor insertLink - change cursor until next keypress or threshold.

  • Web/App: Editor conceal - transition font-size for less jarring effect.

  • Web/App: Support discarding changes on note close.

  • Web/App: Replaced native confirm with custom implementation.

  • Readme: Documented Web/App state and preferences are port specific.

  • Readme: Documented Web/App supported Markdown highlighting and concealment.

  • Readme: Documented installation examples for macOS and Windows.

Changed:

  • Readme: Updated bash shell completion to source inline from embedded file.

0.5.10

28 Jul 12:23
Compare
Choose a tag to compare

The Web/App features a brand-new Ribbon, a Force Graph panel that optionally updates in real-time emphasizing the active note and its relationships, and inline toggling of the note metadata side panel.

The Notes list side panel includes more sorting options, note preview on hover, scoped dark mode, detailed and compact views, a compact expandable tree-like labels section, and improved integration with the Labels panel.

Fixed:

  • Web/App: Note sidebar - wrap action icons on pane resize when needed.
  • Web/App: Notes list panel - handling of future dates (periodic notes).
  • Web/App: Preview - adheres to editorLineWrapping state setting.

Added:

  • Web/App: Ribbon - replaces and expands on NavBar action icons.

  • Web/App: Ribbon - includes graph-panel, mtime-list, dangling-links.

  • Web/App: Ribbon - visual identification of panel state.

  • Web/App: Graph panel - side-by-side view of graph and editor tabs.

  • Web/App: Graph panel - node and relationship emphasis of active note.

  • Web/App: Graph panel - automatic re-render only when required.

  • Web/App: Graph panel - maintain position and zoom on re-render.

  • Web/App: Graph panel - collapsed filter, display and forces settings.

  • Web/App: List panel - note preview on hover.

  • Web/App: List panel - sort and density, labels related dropdowns on hover.

  • Web/App: List panel - sort via title, mtime, ctime or link count.

  • Web/App: List panel - detailed and compact view.

  • Web/App: List panel - compact labels-tree, with dedicated sorting.

  • Web/App: List panel - scoped darkmode for detailed and compact views.

  • Web/App: List panel - filter match count and link to full-text search.

  • Web/App: List panel - filter optimizations and label: support.

  • Web/App: List panel - filter clear icon when applicable.

  • Web/App: List panel - optimized date handling and formatting.

  • Web/App: List panel - new label with verification when label panel closed.

  • Web/App: Labels panel - new label with verification.

  • Web/App: Labels panel - improved integration with Notes panel.

Changed:

  • Web/App: NavBar - action icons removed, replaced with Ribbon.
  • Web/App: Labels panel - label click opens finder if Notes list closed.
  • Web/App: Graph overlay - only full screen, overlay replaced by graph panel.
  • Web/App: Periodic notes - refactored into dedicated component and improved.
  • Web/App: Note metadata panel - graph link changed to Graph panel.
  • Web/App: Note metadata panel - inline toggle instead navbar panels dropdown.

0.5.9

02 Jul 10:23
Compare
Choose a tag to compare

Building upon daily note support introduced in version 0.5.7, weekly note support has now been added in the embedded Web App and Vim, along with a configurable "start of week" setting. The Web App also features a custom datepicker displaying existing daily and weekly notes, and allows for the creation of past and future periodic notes.

Additionally, the Web App now includes a global reactive state management system that retains user preferences across sessions.

Fixed:

  • Vim: Use script-local variables to avoid namespace conflicts.

Added:

  • Web/App: Editor line wrapping support.

  • Web/App: State - Global reactive state management.

  • Web/App: State - Exposed in settings.about.runtime.state.

  • Web/App: State - Used by Panels - show state and width.

  • Web/App: State - Used by Editor - line wrapping and conceal.

  • Web/App: State - Used by Datepicker - start of week.

  • Web/App: Datepicker - Custom implementation replacing native HTML5.

  • Web/App: Datepicker - Configurable start of week.

  • Web/App: Datepicker - Existing periodic notes visualized by colored dots.

  • Web/App: Datepicker - Buttons for daily and weekly periodic notes.

  • Web/App: Keybinding to open new or existing weekly note.

  • Vim: NotesiumWeekly command/keybinding to open new or existing weekly note.

  • Vim: $NOTESIUM_WEEKSTART variable for determining weekly note dates.

  • Readme: Documented deterministic periodic notes convention.

  • Tests: Weekly note test implementations for bash, vim, and javascript.

Changed:

  • Vim: NotesiumWeb keybinding changed from <Leader>nw to <Leader>nW.

  • Web/App: Native HTML5 datepicker replaced with custom implementation.

  • Web/App: Panel state changed from sessionStorage to new state management.

0.5.8

16 Jun 09:20
Compare
Choose a tag to compare

The Web/App now supports note deletion, first verifying there are no incoming links to avoid dangling links, followed by a confirmation dialog prior to deletion.

Checking for software updates is now supported via the CLI and the Web/App, along with detailed version and runtime information. A handy Report an issue link is included with the body preset to include version information. The Web/App also features a high-level statistics count section integrated with the Finder.

Fixed:

  • Web/App: Editor concealment has been improved for selected lines.
  • Web/App: Editor concealed hr is now centered horizontally, and darker.
  • Web/App: Heartbeat will only start if stop-on-idle is set.
  • Web: Absolute path of webroot will be used if set.

Added:

  • Web/App: Note deletion with incoming-links verification and confirmation.

  • Web/App: Settings Stats - Counts with integrated Finder links.

  • Web/App: Settings About - Software update, Resources and Runtime.

  • Web/App: Settings About - Runtime webOptions, build info and memory usage.

  • Web/App: Settings About - Report an issue link with version info as body.

  • Web/App: Nav actions visual notification if new version available.

  • CLI: version command now supports --check and --verbose options.

  • CLI: web command now supports --no-check option to disable daily check.

  • API: api/runtime GET is now supported.

  • API: api/raw/stats GET is now supported.

  • API: api/raw/version GET is now supported.

  • API: api/notes/:filename DELETE is now supported.

  • API: New endpoints added to specification.

  • Tests: Unit tests for deriving semantic version.

  • Tests: Unit tests for comparing semantic version and latest version.

  • Tests: Integration tests with custom builds and mock release response.

  • Tests: Integration tests for semantic version and new version comparisons.

  • Tests: Integration tests for note deletion via API.

  • Tests: Integration tests for runtime via API.

  • Tests: Integration tests for stats via API.

  • CI/CD: Github Actions updated to run unit tests and print version.

Changed:

  • Building from source now uses gitversion and buildtime flags.
  • Notesium version is now derived from gitversion.

0.5.7

19 May 11:30
Compare
Choose a tag to compare

Setting a custom ctime for new notes is now supported, enabling deterministic note filenames. Using the 00:00:00 convention, daily notes are now supported in the embedded Web App and in Vim via the NotesiumDaily command.

Fixed:

  • Web/App: Avoid losing editor focus on the first save of a new note.
  • Web/App: Skip updating activeFilenamePrevious if there is no change.
  • Web/App: Alert dismissal race condition.

Added:

  • CLI: new command now supports --ctime= and --verbose options.

  • API: api/raw/new is now available.

  • Tests: Added CLI and Web tests for the new options.

  • Vim: NotesiumDaily command/keybinding to open new or existing daily note.

  • Web/App: Daily note icon and keybinding to open new or existing daily note.

  • Web/App: Daily note custom date selector on icon hover.

Changed:

  • API: Note creation now requires Ctime argument.
  • Web/App: newNote updated to use api/raw/new with verbose output.
  • Web/App: saveNote updated to include Ctime requirement.

0.5.6

01 May 12:12
Compare
Choose a tag to compare

Fixed:

  • CI/CD: Disable CGO to ensure static binary compilation.

0.5.5

01 May 12:01
Compare
Choose a tag to compare

Fixed:

  • Cache: Skip non-hex8.md files instead of hard-fail.
  • API: Note update lastMtime verification now uses UTC for comparison.
  • Tests: Use Mtime from API instead of hardcoding (timezones).

Added:

  • Web/App: Editor softTab insertion on Tab.

  • Web/App: Editor softTab removal if left-of-cursor on Bksp.

  • Web/App: Documented default indentation keybindings (Auto, Less, More).

  • Web/App: Sidepanel resize support (Labels, Notes list and Note metadata).

  • Web/App: Sidepanel resize via click-and-drag and dbl-click to restore.

  • Web/App: Sidepanel width preservation with sessionStorage.

  • Web/App: Sidepanel show-state preservation with sessionStorage.

  • CI/CD: Github Actions scripts (install-deps, build-bin, run-tests, release-notes).

  • CI/CD: Github Actions workflow for pull-requests.

  • CI/CD: Github Actions workflow for merges into master and tagged releases.

  • CI/CD: Contrib release.sh tag for verification to reduce human error.

Changed:

  • Web/App: Navbar sidepanels dropdown on hover instead of click.
  • Web: App and Graph updated to use d3.js versioned URL.

0.5.4

08 Mar 11:42
Compare
Choose a tag to compare

Added:

  • Web/App: Editor table automatic formatting on Tab.
  • Web/App: Editor table formatting with column alignment.
  • Web/App: Editor table formatting with dynamic column adjustment.
  • Web/App: Editor table formatting with concealment support.
  • Web/App: Editor table header separator auto-match header column count.
  • Web/App: Editor table navigation via Tab, Shift-Tab and Alt-Arrow.

0.5.3

26 Jan 15:16
Compare
Choose a tag to compare

The web/graph has been rewritten and implemented in web/app, with all of same features (except cluster settings and darkmode), tighter integration, and additional improvements.

Fixed:

  • Web/App: Preview activeline disabled if lineNumber not specified.

Added:

  • Web/App: Graph to visualize the relationships between notes.

  • Web/App: Graph search filter to emphasize nodes and their links.

  • Web/App: Graph node and immediate links emphasis on title click.

  • Web/App: Graph emphasis removal via graph-empty-space click.

  • Web/App: Graph dynamic node radius based on bi-directional link count.

  • Web/App: Graph title visibility toggle and auto-scale per zoom level.

  • Web/App: Graph customizable force, collide radius and strength.

  • Web/App: Graph drag, pan and zoom for a better view or focus.

  • Web/App: Graph different node color for notes considered labels.

  • Web/App: Graph toggleable settings and sub-setting sections.

  • Web/App: Graph toggleable context aware fullscreen and overlay views.

  • Web/App: Graph fullscreen open via navbar, welcome screen and keybind.

  • Web/App: Graph fullscreen node title click opens note preview overlay.

  • Web/App: Graph fullscreen filter single-match enter opens note preview.

  • Web/App: Graph fullscreen preview includes section with incoming-links.

  • Web/App: Graph fullscreen preview link clicks switch preview and node emphasis.

  • Web/App: Graph fullscreen preview edit icon to open note for editing.

  • Web/App: Graph fullscreen preview close via x icon, esc or outside click.

  • Web/App: Graph fullscreen close via x icon or esc.

  • Web/App: Graph overlay open via node-sidebar with note emphasized.

  • Web/App: Graph overlay node title click opens note for editing.

  • Web/App: Graph overlay close via x icon, esc or outside click.

  • Web/App: Editor conceal support for ~~strikethrough~~.

  • Web/App: Editor conceal support and highlight for --- (horizontal rule).

Changed:

  • Web/App: Graph navbar icon opens integrated graph (was /graph?noxdg).
  • Embedded webroot set to web/app (web/graph no longer included).