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.