Show HN: Nulis – Open Source Tree Editor for Writers
github.com
github.com
Leo is a hierarchical editor with a tree view of nodes, which can be in Markdown, ReST, code, and create compound docs a la literate programming from nodes, etc.
The killer feature imo is nodes can be cloned to multiple places in the tree. So you could have, for example, group notes by project in one master last, plus another sub-tree for clones from the master list of your own current projects.
Leo's web site may look clunky and old-fashioned. But don't let that put you off!
-- EDIT --
For what it's worth, I do oscillate between Leo and Emacs org-mode. I'd probably stay 100% with org-mode if there were a way to clone nodes. Does anyone know if this is possible?
I'm not trying to imply Leo doesn't have polish, just that native UIs age poorly compared to, say, readline/curses interfaces. The expectations are completely different, and UIs have changed a lot in 20+ years.
Doesn't look very dead to me.
No, I wasn't even young in the nineties. Just youngerish.
But, while lacking, they have the right spirit and are constantly trying to do better. If someone can adapt to the myriad of quirks and failures, it can be a very powerful tool. As an outliner it's definitly better than org-mode. But it might be good to have profund python-knowledge to take advantage of the scripting-ability to make it really useful.
https://www.gnu.org/software/emacs/manual/html_node/org/Stru...
It seems like org-mode ought to be able to do this, too.
At least, it's weird that emacs/vim _can't_ do something. I can't remember the last time anyone said that about, well, anything :)
One use case: You're trying to fix a big in code. You can create a new node and place under it clones of all relevant code (which may exist across multiple files) for the bug. And not just code but also collateral for tests (e.g. unit test or input files that reproduce the bug etc). Oh and might as well clone the bug report as well.
So all that you need to work with the bug conveniently under one node. Just edit there and all relevant files get updated.
Leo is powerful and has a decent user base. It is the closest thing I've found to Emacs in the Python world. Unfortunately the documentation is really bad and I just don't have time to learn it without good documentation. I toyes with the idea of becoming a master at it just so I can write proper docs but life is too short.
I believe that what you are explaining is essentially the equivalent to a symbolic/hard link.
As far as I know, one of the goals of org-mode is to have a format that does not diverge from pain text.
Similar to markdown, an org-mode file is always completely readable as pain text, whether using emacs it not.
That means the only way to have an updated "copy" (reference) of a tree would be to automatically copy any changes made to every copy of that tree. That would either require some sort of run-time mark (that would disappear as soon as you kill the buffer), or special syntax.
As far as I know, org-mode does not have such a feature.
Edit: found my own answer on Wikipedia, it's the latin taxonomy word for a feline:
> It was named after Leopardus pajeros, the Pampas cat, which is native to the Patagonia plateau region of southern Argentina.[3] But pajero in Spanish is also a common term of abuse, usually translated as "wanker" or "tosser", thus perhaps why alternative names have been used for many markets. It is known as the Mitsubishi Montero (meaning "mountain hunter"[4]) in the Americas (except Brazil and Jamaica), and Spain, while in the United Kingdom it is known as the Mitsubishi Shogun. https://www.wikiwand.com/en/Mitsubishi_Pajero
That Mitsubishi one is hilarious.
Fun fact: Nullis seems to mean zero in Ukrainian, Pesian, Latvian, and Estonian as well, while also meaning "no" in Welsh, Latin, and Irish.
They say imitation is the best form of flattery, but I'm surprised Ray that you didn't credit Gingko at all. It's practically identical.
Thoughts?
---
Edit: My bad... it's not on the website, but I see Gingko mentioned and linked in the Readme. Thanks Ray.
He does say "inspired by", though not sure if that was the credit you are expecting.
Unfortunately, being the first or most common product in a space has the side effect of attracting copies, spin offs, or other imitations.
> Nulis is an open source tree editor for writers, inspired by Gingko.
I will say that it's not mentioned anywhere on nulis.io however.
Couldn't find any mention first time I checked it out.
It allows one to "pan and zoom through text", there's also a screencast: https://www.youtube.com/watch?v=9YNiPUTGO28
I'm not a Vim user anymore, but this is definitely the most interesting (also, peculiar) approach to a non-coder's writing tool I've come across over many years of text editor geekery. I tried to hack together something similar for Plan9's Acme and Sam, but unfortunately those efforts led nowhere.
I find this much easier to learn to use, as I don't have to toggle between edit mode and non-edit mode. (Modality can be tricky: https://medium.com/interaction-reimagined/dangers-of-modal-u... - shameless plug :) )
I don't like markdown either though, the extra markup interferes with my thinking. Though there is no UI modality, I feel it adds a cognitive modality where I need to switch between thinking about the actual content, and the translation from text semantics to markdown syntax.
But I suppose I could stick to plaintext with these apps. A subtle rich text editing possibility would be appreciated too though.
Edit: Scandinavian keyboards require pressing shift to get /. So accessing the search bar doesn't seem to work at all.
Oh! There is an edit/preview mode, it's just global. I think I like it.
Author replied:I think this is where I got the idea for the name from =) Was looking for something that sounds awesome and relevant, and somehow stumbled upon this word.
That is a spectacularly poor choice of name.
https://www.gutenberg.org/wiki/Main_Page https://wordpress.github.io/gutenberg/
Seems like https://fictionhub.io/post/story-writing-process/ is not parsing the markdown correctly. There are a couple of ###
Check it out: https://workflowy.com/
Left/Up/Down/Right on the same middle row is more intuitive than putting Up on a higher row IMO. On my thinkpad "i" is not centered above "k" (the way Up/Down arrow keys are aligned), it's offset over both "j" and "k", so when not looking at my keys while typing this will likely cause more errors.
The average writer has probably never seen hjkl navigation before, and it is much harder to get used to than a slightly off-center "i" key.
W
A/S/D
I've personally never seen I/JKL before and over the years I've come to believe Vim made the right choice by use HJKL on the 'home row', so I might be biased. I can put my four fingers on all 4 keys at once with HJKL, but I can't with I/JKL.This is a standard starting position (just shifted over one key left):
https://upload.wikimedia.org/wikipedia/commons/thumb/0/0d/QW...
[1] - http://xanadu.com/
This on the other hand has a much simpler goal: organizing your documents into a tree. Afaict, it can be treated/navigated like a file system, except that theres no distinction between file and directory.
You just wrote a comment containing a hyperlink.
If I click that link, I go to another page that has text I can read.
I can come back here.
I can reach that page from other pages too.
That means that you just made a node in a graph, and have it an edge to another node in that graph.
Your comment is about as ironic as it gets.
There's also a typo "beraking" that hasn't been fixed after several mentions.
A suggestion: I'd recommend using Tree Notation (https://github.com/breck7/treeprogram) for your storage format, instead of JSON. (disclaimer: author of TN)
I can actually help you build your own language on top of TN using some new tools, if interested, which might be very useful to you. Email is in profile.
> what problem would it solve ?
First, it would support current functionality, so you wouldn't lose anything. So everything that it adds is a net gain.
Second and biggest benefit, I believe it would allow them to add features more easily because they'd easily be able to build a simple and well structured Nulis DSL in Tree Notation that removes a lot of the incidental complexity of their current code.
Third, it would make their "nls" files human readable and writeable. No more quotes or brackets, et cetera. With a few tweaks to their current implementation, folks could then drop in more file structures that can then be visualized and edited in nls.
[1] - https://gingkoapp.com
Not sure how I feel about mongo as backend but, if this app got same export features as gingko I am sold.
Also, you can just use file>save/open feature, which saves a tree as a json file, purely from the frontend.
The desktop version of the app can work without the backend at all(server used just for cloud sync, all trees are saved as files).
https://nulis.io/downloads/Nulis-linux-x64.zip
Mac:
https://nulis.io/downloads/Nulis-darwin-x64.zip
Windows:
https://nulis.io/downloads/Nulis-win32-x64.zip
Note that Desktop is in a very early version, Mac/Windows are not tested at all. I'll keep updating it and making it more stable as I continue the development.
(No affiliation)
"beraking down your large writing goals"