Releases: cloverich/chronicles
v0.8.0 - Markdown import (experimental) and "export"
What's Changed
See the roadmap #160 for more context
This release changes how Chronicles saves markdown notes, from storing them in a SQLite database to storing as flat markdown files in the following format:
/yournotes
/work
0368d9d5hcrweodp7tx3uqdy4.md
039wingodv19908cficngwp17.md
/personal
039wingfy1vza6v6bu0sytntj.md
039wingfy1vp8vo32zh5rs175.md
/_attachments
039wingfy1vp8vo32zh5rs201.jpg
Note content is regular markdown + front matter; an example of default front matter maintained by Chronicles:
---
tags:
- thesixthprototype
createdAt: 2025-01-07T23:18:09.639Z
updatedAt: 2025-01-07T23:22:04.819Z
title: Brainstorming v0.9
---
If other front matter is present (from imports, below) it will also be maintained. Future versions intend to support arbitrary front matter more fully, surfacing within the app and making it searchable (#127 ).
Filenames are compact uuid25 which sort by time, using the notes created at. This restores the original behavior of the app where local files are the source of truth; "export" (or uninstall) is now unnecessary. Uninstalling the application leaves all notes and attachments in a usable format.
This release additionally includes experimental support for importing markdown directories, in particular it can:
- Import an Obsidian directory (will convert basic wikilinks and tags)
- Import a Notion export (assumes no internal zip files)
It will maintain most front matter, if present (including front matter generated by notion databases), manage valid file links, and also copy any files that are referenced by at least one note (stored in _attachments
).
Changelog
- add starter license by @cloverich in #245
- Local files based sync by @cloverich in #249
- remove USER_FILES_DIR; fix upload; fix rootdir name by @cloverich in #250
- add markdown/notion importer by @cloverich in #258
- refactor uuidv7 to compact version by @cloverich in #264
- upgrade remark and parse wiki links by @cloverich in #265
- Import non-Notion markdown directory by @cloverich in #273
- update note links when journal changes by @cloverich in #277
- sync follow up issues by @cloverich in #278
- When syncing ignore more files and directories, refactor walk by @cloverich in #281
- persist and maintain front matter by @cloverich in #283
- maintain import tables; document clearing; fix import bugs by @cloverich in #284
- fix sync creating directories locally by @cloverich in #285
- clean up frontmatter tests and add importer test by @cloverich in #286
- fix editor losing focus on save by @cloverich in #287
- use uuid25 format; fix sorting by @cloverich in #288
Full Changelog: v0.7...v0.8.0
Image constraints, tag and sidebar styling updates
#231 was small and downscoped smaller while I figure out the Roadmap (#160 ). This release includes a few styling improvements and clean-ups; basic image constraints are the most significant change and though extremely basic, its something that drives me nuts when using Apple notes. #242 will be where actual UX improvements happen.
What's Changed
- add image size constraints by @cloverich in #233
- replace TagInput by @cloverich in #234
- clean-up dropdown styling and usage by @cloverich in #237
- clean-up sidebar / more Tags usage by @cloverich in #240
- add journal name validation by @cloverich in #241
Full Changelog: v0.6.0...v0.7.0
v0.6.0 - Note Linking
The main feature in this release is note linking: ability to link from one note to another using the @
symbol. See #223 for details. There are numerous stylistic changes to the app, and each of the next several PRs will attempt to improve or clean-up the styling. The original goals of the sprint were beginning to drag-on, so future releases will aim to include less: One key feature and 1-3 minor refactors, improvements, or stylistic updates. See the v0.7 plan for what's next.
Features
- Note linking by @cloverich in #223
- native style titlebar by @cloverich in #210
- manage journals through sidebar + context menu by @cloverich in #209
- update link styles by @cloverich in #213
- darken tooltip styles; clean-up media popover by @cloverich in #219
- update typography by @cloverich in #224
Refactoring / Bugs / Misc
- add sort and tailwind prettier configs; run them by @cloverich in #230
Full Changelog: v0.5.0...v0.6.0
v0.5.0
Features / Changes
See #123 for the plan that led to this release; see #169 for what's coming next. Changes are summarized below, and more details are in the pull request links.
Code block
Code block support was easy, but had a few issues with pasting and showing the correct language from the dropdown.
- add code block support by @cloverich in #175
- code block fixes by @cloverich in #200
- fix code_block pasting by @cloverich in #197
- fix code block newline, 15->20 max tagsize by @cloverich in #190
- fix code block doubling pastes by @cloverich in #208
Bullet lists support
- support bullet and numbered lists by @cloverich in #182
Toolbar support
I fleshed out the toolbar so you can properly toggle the various block and formatting options, links, etc. I moved the editor debug menus into it. It also exposes the shortcuts available for e.g. bold, italics, etc. But that wasn't helpful for creating headings quickly, so I added notion-style shortcuts e.g. # for headings, etc. This was mostly default plate features, with some tweaking.
- flesh out and clean-up toolbar by @cloverich in #172
- support autoformatting shortcuts by @cloverich in #195
Basic tagging support
I use tags frequently; originally intended to support them in the body of the document. But I realized I only use them for classifying documents, so I supported them top-level instead. I added first class support for them, so they are exposed in the sidebar and you can search by them.
I added some follow up notes for in-document tag support in the future.
- add document tagging by @cloverich in #186
Misc UX
There are a bunch of minor quality of life improvements, such as auto-setting the journal and tags when creating new documents, and being smarter about what happens when you navigate back after creating, editing, and deleting notes.
- auto-set tags and default journal by @cloverich in #207
- UX tweaks: Hide archived journals, more prominent delete, remove insert menu, block : in tags by @cloverich in #196
- sync document crud with search by @cloverich in #205
Since I'm installing and using each build, it was time to include the version in the application. Eventually I'll take this further and add an in-app or linked change log, and / or auto-update.
- add version to packaged app by @cloverich in #201
At this point, the application is actually usable. Towards the end of last week I stopped using Apple notes and started using Chronicles as my daily driver. Using it in anger should help drive the app towards a more functional state and while #169 is my intended roadmap, I'll pivot out if other features are jumping out as more important.
Misc / Security / Refactoring
- Bump ip from 2.0.0 to 2.0.1 by @dependabot in #161
- Bump tar from 6.1.11 to 6.2.1 by @dependabot in #163
- update plate to 34.1.0 by @cloverich in #193
- Bump braces from 3.0.2 to 3.0.3 by @dependabot in #191
- add inspect element context menu by @cloverich in #180
Full Changelog: v0.4.0...v0.5.0
v0.4.0 - Reignition
This closes out the first real sprint of work since I picked up the project again. While the last release was me closing out prior work, with a two year gap between start and completion, this release includes some actual new features. Its part of a push (#116 , #123 ) to get this application into its next phase, where its more representative of the style of note taking I've come to prefer. Its got a long way to go, but this is a great incremental step in that direction.
Feature work
The feature work was selected to ease my way back into feature development, and similar to the refactoring work below, set the stage for more notable upcoming features (#123 )
- journal archiving by @cloverich in #136
- add sidebar and journal click-to-search by @cloverich in #138
- pre-select current or active journals by @cloverich in #139
- add local video support by @cloverich in #152
- handle file links, fix web links, security by @cloverich in #153
- Fix search persistence by @cloverich in #155
Drag and drop video, file support
Last release added support for dragging and dropping image files. With #152 and #153 you can now drop videos and regular files too. Videos will produce a video preview, similar to Apple notes or Notion.
Files will appear like regular links; clicking them will (on mac) open finder to their location.
In all cases, files, videos, and images are copied into the user files folder, the location being toggleable in preferences. I suspect future versions will get more sophisticated here, perhaps only referencing files, uploading them (if desired), and perhaps making that behavior different between different journals.
Journal Archiving
This is a basic way to mark journals as "read only". The main purpose is to provide a way to move them out of the main views (such as top of sidebar, journal selection dropdowns). I expect to build a bit more around this concept in the future.
Side bar with Journal selection
The goal here was to begin steering the app more towards traditional notes apps, i.e. folders and lists of notes, where you'd expect a sidebar with a way to select a folder (journal). Here it will set the search e.g. in:my journal
. That search will persist when creating new notes or navigating to and from note viewing (#139)
Fixes
Two notable fixes:
- Clicking links now correctly and consistently opens the external system browser. There were some cases where the internal Electron browser would navigate, which is a huge no-no. I did some refactoring in #153 so this is hopefully both more secure and less likely to regress in the future.
- Sticky search navigation: As part of journal side-bar selection, a continuation of #115 , and with #155 , search should more consistently stick when expected, i.e. when navigating to and from note viewing and editing.
Refactoring / Project maintenance
A bunch of work went into refactoring and project maintenance. This was definitely edging on too much, taking a bit too much time and draining my energy and motivation. Yet, many of these improvements will help the next sprint move faster (test support, debug toolbar), eliminate blockers (package inconsistencies), and set the stage for future improvements. It addressed many security vulnerabilities as well.
- Prettier by @cloverich in #135
- Update core libs by @cloverich in #140
- upgrade plate; add tailwind; refactor as needed by @cloverich in #142
- bump non-core dependencies (security) by @cloverich in #145
- Bump @babel/traverse from 7.15.4 to 7.23.9 by @dependabot in #147
- Bump got from 11.8.2 to 11.8.6 by @dependabot in #146
- upgrade esbuild by @cloverich in #149
- Add editor debug toolbar by @cloverich in #151
- reimplement unit tests by @cloverich in #156
Full Changelog: v0.3.0...v0.4.0
"Base Usability" -- Well kind of
What's Changed
Too many things to list. This release marks the end of the "base usability" sprint #69 -- although there's much more to build before this is truly the case (see #116 and #123)
Here's the auto-generated PR links Github made:
- Add support for links, wysiwyg style by @cloverich in #45
- add drag and drop images by @cloverich in #56
- add search interface and support for searching by journal by @cloverich in #58
- Many build fixes
- Migrate to plate by @cloverich in #78
- migrate to esbuild by @cloverich in #86
- Search by title, text, and before date by @cloverich in #114
- pagination by @cloverich in #115
But most commits were to master, and its been 3 years since the last release. Here's what I think changed of note:
General Note taking UX
The general note taking UX is now in-line with a traditional note taking application:
- "Journals" (folders) house collections of "documents" (notes)
- Each document has a title and content
- Document editing is (basic) WYSIWYG
- Documents auto-save as you edit them
- You can drag and drop images (these copy to an image directory, specified in preferences)
Note display and search
Most of the work went into these features
- Documents are displayed in date-order
- Search bar handles the various ways documents can be searched, displayed, and opened
The current list of supported search tokens:
before:
- accepts either an ISO date (of any length) or a note uuidin:
- This is how to search within a journaltext:
- full text search. Typing any search text and hitting enter automatically converts to this tokentitle:
- Search (parts of) note titles
Full Changelog: v0.2.1...v0.3.0
Search interface, periods, focused headings
NOTE: Current version is much different than this one
This release adds the following features:
- A search-based interface
- focused headings
- journal periods