benrbray / noteworthy

Markdown editor with bidirectional links and excellent math support, powered by ProseMirror. (In Development!)

Home Page:https://noteworthy.ink

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

  • headings, blockquotes, lists
  • bold, italic
  • inline and block code
  • inline and block math via prosemirror-math
  • YAML metadata
  • blob-embedded images
  • [[wikilink]] syntax
  • citation syntax, in both @[noteworthy]-style and [@pandoc]-style
  • support for named environments (such as theorems, definitions, proofs) via directive syntax

completed editor features

  • fuzzy tag search
  • outline view
  • custom CSS with live reload
  • fail gracefully on unsupported markdown syntax extensions
  • support \providecommand in math nodes
  • code block syntax highlighting via codemirror
  • support for tikz diagrams via @drgrice1/tikzjax (inspired by obsidian-tikzjax)
  • 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:

inline math

Display 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 from 12 July 2021

(screenshot taken 16 September 2020)

screenshot from 16 September 2020

(screenshot taken 17 September 2020)

screenshot from 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.

feature comparison

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!

About

Markdown editor with bidirectional links and excellent math support, powered by ProseMirror. (In Development!)

https://noteworthy.ink

License:GNU Affero General Public License v3.0


Languages

Language:TypeScript 87.5%Language:CSS 11.9%Language:JavaScript 0.4%Language:HTML 0.1%Language:Just 0.1%