Noteworthy is currently in development! I work on Noteworthy in my free time, so progress comes in bursts.
A free, open-source, local-first Markdown editor built with ProseMirror.
- Works directly with your local files, entirely offline.
- Write your notes in Markdown, with syntax extensions like citations and block directives.
- Build your own personal wiki with bidirectional links.
- Excellent math support — seamlessly transition between source and rendered math, thanks to KaTeX and prosemirror-math.
Features
completed syntax features
- [x] headings, blockquotes, lists
- [x] bold, italic
- [x] inline and block code
- [x] inline and block math via
prosemirror-math
- [x] YAML metadata
- [x] blob-embedded images
- [x]
[[wikilink]]
syntax
- [x] citation syntax, in both
@[noteworthy]
-style and [@pandoc]
-style
- [x] support for named environments (such as theorems, definitions, proofs) via directive syntax
completed editor features
- [x] fuzzy tag search
- [x] outline view
- [x] custom CSS with live reload
- [x] fail gracefully on unsupported markdown syntax extensions
- [x] support
\providecommand
in math nodes
- [x] code block syntax highlighting via
codemirror
- [x] support for
tikz
diagrams via @drgrice1/tikzjax
(inspired by obsidian-tikzjax
)
- [x] autocompletion for tags and citations, via
prosemirror-autocomplete
in development
- [ ] community plugin system
- [ ] import
bibtex
or csl-json
bibliography file
planned
- [ ] import
bibtex
or csl-json
bibliography file
- [ ]
flavor:
metadata for interoperability with other editors
- [ ] populate note from bibliography entry
- [ ] filesystem-local images
- (...and more!)
Excellent Math Support
Inline Math:
Display Math:
tikz
Diagrams
Noteworthy supports tikz
diagrams via @drgrice1/tikzjax
, which was created by compiling the original Pascal source of TeX to WebAssembly, with only the dependencies needed to run tikz
.
Screenshot
(screenshot taken 12 July 2021)
(screenshot taken 16 September 2020)
(screenshot taken 17 September 2020)
Feature Comparison
Obsidian
Obsidian (especially its community plugins) has been a source of inspiration for me during the development of Noteworthy, and occupies a similar position in the note-taking space, but with a few key differences:
- Noteworthy aims to be fully open source, so that the editor is fully customizable beyond what is possible with community plugins alone. By contrast, the kernel of Obsidian is closed-source, making it more difficult for empassioned users to add the features they need.
- Noteworthy is WYSIWYG-first (based on ProseMirror), while Obsidian began as a split-pane editor and only introduced WYSIWYG-mode later (based on CodeMirror).
- Taking inspiration from Zettlr, Noteworthy aims to provide first-class support for bibliography management and academic citations.
- Noteworthy aims to provide a smooth, polished experience for math-heavy and diagram-heavy notetaking.
- Noteworthy will allow the user to mix-and-match different Markdown syntax extensions per-file via
flavor
metadata, to maximize interoperability with other editors.
Other Editors
The table below compares Noteworthy to other editors with similar features. Of course, each editor has its own unique features not listed! For an even more detailed comparison, check out the exhaustive feature comparison put together by the folks at Athens Research.
Last updated 16 September 2020. If you notice any errors or omissions in the feature comparison table, please file an issue and I will correct it.
Building Noteworthy
Noteworthy is still a bit rough around the edges, and is missing some basic quality-of-life features. However, it's stable enough that I use it for all my daily note-taking. You can follow these instructions if you really wish to run it.
git clone git@github.com:benrbray/noteworthy.git
cd noteworthy-electron
npm run build:linux
After building, look in the /dist
folder for an executable.
Development
Noteworthy is built with electron-vite
. To run in development mode with live-reload,
cd noteworthy-electron
npm run dev
Acknowledgements
- Thanks to Marijn Haverbeke for developing ProseMirror!
- Thanks to Hendrik Erz for keeping Zettlr open source! When I started developing Noteworthy, I had no clue how to set up an Electron app or responsibly interact with the user's file system from Node, and the Zettlr source was a great reference.
- Thanks to Microsoft for keeping VS Code open source! I learned a lot by reading the source of the VS Code tree viewer and plugin system.
- Thanks to Fabio Spampinato for releasing the source to an early version Notable!