Neuron is a Zettelkasten note taking app I originally open sourced about two months ago (see Announcing Neuron - Zettelkasten in Haskell). Recently a new version was released incorporating some interesting improvements, many of them were inspired by invaluable user feedback.
Editor support (emacs)
You can use felko’s zettel-mode to edit your notes in Emacs. It allows the following nifty features:
- Open a zettel by title
- Create a new zettel
- Insert a link to another zettel (by title)
- Automatically expanad zettel links in the buffer to display the title next to it
That last feature in particular is my favourite. It is very useful to know what a particular link is linking to it when you are editing a zettel. Here’s a screencast demonstrating it (click to play the video):
Simplified linking syntax #59
Several users requested that the syntax for linking to zettels be simplified. To that extent, Neuron now supports the following style of links:
* This is a link to a zettel: [[[5b963b1c]]]. * It will automatically expand to the Zettel title that is linked in the web interface.
In short, to link to a zettel whose ID is “5b963b1c”, you only need to wrap it inside angle brackets. We are not using any special syntax here; this is what is known as Autolinks in the commomark spec. Neuron simply leverages existing linking syntax to allow you to link to zettels; and the Neuron renderer can automtically fill in the zettel title, and other metadata, during rendering stage.
Random hash IDs #151
By default neuron now uses random hash when creating a new zettel. The (previous) date ID format is still available, but just not as the default. This was done mainly to avoid conflicts when multiple people are working on a shared Zettelkasten.
Full backlinks #34
Each zettel now displays all zettels linking to it (regardless of it being a Folgezettel link).
The web interface can now be configured to use a particular color theme. See the documentation for a list of available themes.
In-browser search #90
The web interface includes a search page that users can use to search their zettelkasten by title or tag. This feature was contributed by a user.
Hierarchical tags #115
You can now use the notion of “tag tree” in your Zettelkasten. It works like this. If you tag a zettel with say
math/calculus/definition, then you have it linked automatically in any other zettel that queries for
math/calculus/definition. It works with globbing pattern, allowing interesting possibilities like having a Zettel link to all definition zettels using
**/definition. This feature was also an user contribution, and is documented here.
Querying Zettelkasten in JSON
There is a
neuron query command which you can use to query the entire Zettelkasten and have its results returned in JSON format. The emacs mode (discussed above) uses this feature extensively.
# Here, we are querying all zettels by the tag "nomenclature" $ neuron query -t nomenclature | jq -r .result.title Zig-zag gaze Hierarchy of well-being Concealed Morality $
Roadmap, and formats other than Markdown
The development version (not 0.4) supports Pandoc for Markdown. What this means is that it is possible to support other markup formats like reST, org-mode, Asciidoc, etc. All they must have in common is a syntax (like the markdown autolinks) that will produce the appropriate Pandoc AST node for neuron to process.