diff --git a/README.md b/README.md index 2d0c8ec..07e32cf 100644 --- a/README.md +++ b/README.md @@ -4,21 +4,36 @@ en is a tool to write non-linear, connected pieces of text and have their refere It works by ingesting a TOML file containing your node specification and serving it as a website that allows nodes to be browsed, searched and listed in relation to each other or as a shallow tree of nodes. +## Learn more + +You can learn more and see what en looks like by visiting the [homepage](https://en.jutty.dev), which is rendered using en itself. + ## Roadmap - [ ] Richer text formatting + - [x] Headers + - [ ] Code blocks + - [ ] Inline code - [ ] Anchor rendering - [ ] Automatic anchors + - [ ] External anchors + - [ ] Bold, italics, underline, strikethrough + - [ ] Checkboxes + - [ ] Move this roadmap to en + - [ ] Lists - [ ] Connection kinds + - [ ] Category <-> Membership + - [ ] Opposite <-> Equivalent + - [ ] Contrast <-> Similar + - [ ] Cognate <-> Unrelated + - [ ] Specialization <-> Generalization + - [ ] Custom connection kinds - [ ] Reduce O(n) calls in the formats module - [ ] Add tests +- [ ] Multi-file graphs +- [ ] Themes +- [ ] Multi-graph - [x] Array syntax for lightweight connections - [x] Automatic IDs - [x] Automatic titles - [x] Mismatch between TOML ID and provided ID - -## Motivation - -I created en because I wanted to write a complex, long-form register of my personal worldview. I have always written a lot, but I find non-fiction essays hard to carry to fruition in the usual, linear structure which you'd commonly find in, for instance, a typical philosophy book. - -I call en a "writing instrument" because that's how I relate to it. I use it to write my thoughts and connect them. I like how you can write new pages easily from a single big file so that creating new pages and connecting them is effortless compared to creating a new file for each one and them handling that spread of files. With en, I can just write a few lines and I already have a new page laid out. It fits how my thoughts also spread and fork very quickly. diff --git a/static/graph.toml b/static/graph.toml index a3bdfe1..f0d6c30 100644 --- a/static/graph.toml +++ b/static/graph.toml @@ -31,8 +31,7 @@ A computer is a machine capable of executing arbitrary instructions. Nodes can have connections between each other. -To add a simple connection without any associated properties, you can simply -add links: +To add a simple connection without any associated properties, you can simply add links: [nodes.Quark] text = "A subatomic particle that forms hadrons." @@ -65,7 +64,7 @@ For the port, use -p or --port: en -p 3003 en --port 3000 -If unspecified, the default is to use a random port assigned by the operating system. +If unspecified, the default is to use a random available port assigned by the operating system. For the graph path, use -g or --graph: @@ -80,6 +79,8 @@ en -h localhost -p 3000 en -p 3003 --host localhost --graph ./graph.toml en --g ./graph.toml -p 1312 +If an option is specified more than once, the last use will override any previous ones. + """ [nodes.en] @@ -87,9 +88,22 @@ text = """ en is a tool to write non-linear, connected pieces of text and have their references mapped out as a graph of connected information. It works by ingesting a TOML file containing your node specification and serving it as a website that allows nodes to be browsed, searched and listed in relation to each other or as a shallow tree of nodes. + +## Motivation + +en was created out of the desire to write complex, long-form descriptions of a personal worldview without being constrained or getting stuck trying to mimic the linearity of a typical philosophy book. + +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 en is defined in simple configuration 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. + """ -links = [ "Graph", "TOML" ] +links = [ "Graph" ] + +[[nodes.en.connections]] +to = "TOML" +anchor = "TOML" [nodes.Graph] text = """ @@ -97,7 +111,7 @@ A graph is a data structure composed of connected (and disconnected) nodes. A familiar example is that of a social network. Each account can be thought of as a node and the "follow" and "follower" relationships can be thought of as edges (connections). A node may have many or few connections, and the nodes it is connected to are meaningful to understand how it fits into the whole. -en uses this concept to create a writing tool, allowing you to map out complex thoughts as a web connected texts. +en uses this concept to create a writing tool, allowing you to map out complex thoughts as a web of connected texts. """ [nodes.TOML] diff --git a/templates/about.html b/templates/about.html index 31bffe1..e65702f 100644 --- a/templates/about.html +++ b/templates/about.html @@ -7,12 +7,13 @@

en is a program to create a connected collection of texts.

-

You define your graph using a plain-text configuration file and then en reads this file and generates a webpage like the one you are seeing right now.

+

You define your graph using a plain-text configuration file, en reads this file and generates a website like the one you are browsing right now.

If you'd like to learn more: