# Neuron 0.4 released

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.

## Highlights

### 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):

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.

Each zettel now displays all zettels linking to it (regardless of it being a Folgezettel link).

### Themes #89

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. See here for an example. 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/**, math/calculus/* or 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.

Examples:

• PCE-drill – demonstrating how to automatically link to zettels based on a tag pattern.
• Actualism index – demonstrating how to display all tags, and their associated zettels, as well as the “tag tree” (view source).

### 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.