Introduction
Eager to jump right in? Head straight to GetStarted.
What is en?
en is a writing tool. It was designed for complex, conceptually heavy projects, where the relationships between terms matter and possibly have their own attributes. This very website is running en. You can use it to write non-linear, connected textual works and have their references to which other mapped out as a graph of metadata-rich, interrelated information.
It works by ingesting plain text files written in TOML, a file format that focuses on being human-readable but that can also be directly interpreted by computer programs. en also features its own markup language that was designed to be readable and as unobstructive as possible to the flow of writing.
These files contain your node definitions and allow en to construct a human-readable website that makes your graphs' nodes browsable, searchable and listed in relation to each other or as a shallow tree of nodes. It also serves this graph as raw data for integration with other tools that can further analyze and transform what you have written.
Motivation
en was created out of the desire to write a book that did not follow a linear progression. But it can be used for note-taking, studying, documentation, encyclopedic content and any other format that benefits from a focus on the connections between pages. It aims to remove the constraints imposed by trying to mimic the linearity of typical nonfiction writing.
It's described as a "writing instrument" because it's not so much about the presentation or even the web format. While that's the medium for this particular implementation, you can notice en serves its raw data in both TOML and JSON. It's first and foremost about mapping out and structuring written thoughts.
Because your en graph is defined in simple plain-text files, you can add new pages easily from a few lines and start connecting them. Instead of having to create a dedicated file or resource for each new entry you find deserving of observation, with its own beginning and end, its own "I'm empty, fill me to completion" demeanor, you can stay in the flow of your sprawling thoughts. This is meant to fit the specific wiring of minds whose thoughts spread and fork quickly and often, whether to great depth or across wide expanses.
What's ahead
en is in its infancy. Right now, most of the work is focused on making the markup language more robust. Some interesting planned features include:
- Multi-file graphs, including single-node
.enfiles with TOML frontmatter - Richer node connection metadata, with builtin connection kinds and special rendering styles
- More node metrics, sorting options and full-text search
- JSON schema for language server integration
- Separating the server from the source-to-source translator, allowing en's markup syntax to be used as a standalone compile-to-HTML language
- Adding CLI options to make it more practical to manipulate a graph, such as adding new nodes or querying your graph
- Hypergraphs, enabling cross-graph references and letting the user choose which graph to render
- Other rendering formats, such as static websites, single page HTML and PDF/EPUB with paper-friendly metadata
If you like what you see and are curious about en's future, take a look at the roadmap for a more comprehensive view of what else is to come.
Get started
See the Get Started page to learn how to install and use en.