Get Started
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 |
| x64 Windows MSVC | en-x64-windows-msvc |
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.
Windows builds are best-effort, cross-compiled, mostly tested only through Wine and not tested on CI.
Other platforms may be supported in the future depending on CI resources.
Build from source
If you are on another platform or simply prefer starting from source, you can also build en yourself.
You will need:
- For en itself, a Rust compiler
- For dependencies, a C compiler (e.g.
gcc)
Given the above is satisfied, you can build directly through Cargo:
cargo install --git https://codeberg.org/jutty/en --tag v0.4.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 last tagged release, which should be more stable. You can remove the --tag v0.4.0-alpha part if you'd like to build the most recent 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|. """
In the future, en should support both individual node files with TOML frontmatter and also multiple TOML files containing several nodes each. In the current implementation, all nodes live in a single graph.toml file.
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.
There are several different ways to connect nodes, including ones where you can add metadata to the connection itself. See Connections for more details.
Where to go from here
- Dive deeper into the syntax used to write your graph
- Glimpse into en's future in the roadmap
- Visit the data endpoints for a raw view of the graph
- See an index of all pages in the tree
- Look under the hood in the source code repo