Documentation

Root

Installation

Pre-built binaries

The easiest way to get started is by downloading a pre-built binary.

x64 Linux binaries are available from the git.jutty.dev package registry:

Platform Download
x64 Linux GNU en-x64-linux-gnu
x64 Linux musl en-x64-linux-musl

If in doubt, it is likely your system uses the GNU libc. Regardless, the musl binary is statically compiled and should run on mostly any x64 Linux system.

Other platforms may be supported in the future depending on CI resources.

Build from source

If you are on another platform or simply paranoid, you can also build en yourself.

You will need:

Given the above is satisfied, you can build directly through Cargo:

cargo install --git https://codeberg.org/jutty/en --tag v0.2.0-alpha

And you should now have the en command available on your shell.

The cargo install example shown above will build en from the latest tagged release, which should be more stable. You can remove the --tag v0.2.0-alpha part if you'd like to build the very latest development sources.

For more details on building from source, see SourceBuild.

Usage

Once you have installed en, run it and point it to your graph:

en --graph my-graph.toml

See CLI for defaults and details on the available options.

Graph Syntax

The graph is a TOML file. You can create nodes by adding text such as:

[nodes.Computer]
text = "A computer is a machine capable of executing arbitrary instructions."

If you need longer text, it's more convenient to use triple quotes:

[nodes.Computer]
text = """
A computer is a machine capable of executing arbitrary instructions.

The main electronic component of a computer is its |motherboard|.
"""

Some special syntax is allowed inside the node text. See Syntax for supported features.

A node can have several other attributes. See Node for details on all of them.

Connections

Nodes can have connections between each other. Each node page lists its outgoing and incoming connections.

The simplest kind of connection is achieved by creating an anchor to another node in the node text itself:

[nodes.Quark]
text = "Quarks are subatomic particles that form |hadron|s".

Here, a connection is created from the node with ID Quark to the node with ID Hadron. See AnchorSyntax for the various ways you can link to other nodes from within the node text itself.

Even if a node is not mentioned in the node text, you can still add connections to it. For simple connections without any associated properties, you can simply add links:

[nodes.Quark]
text = "A subatomic particle that forms hadrons."

links = [ "Particle", "Hadron" ]

This will create two outgoing connections from Quark: to Particle and to Hadron.

For metadata-rich connections, which allow you to add properties to the connection, you can use the full connection syntax:

[[nodes.Realism.connections]]
to = "Surrealism"
kind = "contrast"

This will create a connection from the node with ID Realism to a node with ID Surrealism and add the "contrast" kind to the connection. See Connections for the existing kinds and how they affect your graph.