Author Intrusion for Node.js
The idea of Author Intrusion has been haunting me for years. I know that I have problems in my writing, little flaws, that make it hard for readers to get into my stories. One reason I need two sets of editors is simply to catch them. But, I also know that it is possible to write a program that could detect many of those flaws, they are mechanical but complicated.
I've written Author Intrusion a number of times now, usually as a full-blown text editor with analysis plugins in the background. Some of them have gotten pretty far, but I always hit some road block that prevented me from going further. Not to mention, it takes time to write a text editor simply to get far enough to write what is really important, the analysis aspect.
After fumbling for a few years, I had almost given up on it. It was suppose to help me, but I just didn't have the skills to do it myself. It hurt, because I know it would help me, but I couldn't manage it.
But, like writing, I couldn't stop. I kept thinking about how to make it work, to change how I viewed the program and write something that actually worked. A few ideas began to gel together over the last few months until they finally came into focus last week. I had to give up what I envisioned Author Intrusion doing and change it into something I could do.
Command Line Tools
One of the biggest things is getting rid of the text editor. Yeah, it's fun writing something on screen, but it is also distracting. If I focused on the analysis part as a separate tool, then I could avoid that. Fortunately, Atom had an infrastructure for doing that.
The bulk of the new system is author-intrusion-cli
, a command-line tool that takes a Markdown file and produces a standard output from it. The format is pretty simple, an error message for Emacs or the linter JSON for Atom.
It isn't perfect, but it worked.
Analysis
There is only one real analyzer now: echo words. It scans the file and looks for the same word used in rapid succession. When that happens (sadly the first chapter of Sand and Blood has some example), then Atom will underline the problem text. When you type and fix it (and save), then they go away and new ones pop up.
There will be more, the hot buttons of my writing, but I feel pretty good about the results. This is something I can extend and build on, hopefully without hitting the roadblocks that previously stopped me.
Correctness
I'm making a point of not making default settings for this. Author Intrusion isn't trying to make a “one true” grammar checking but to allow a writer who knows their flaws to identify them. I want it to let someone keep their voice and style while giving hints on improvement.
Packages
I spent a lot of time cleaning up the code and posting it on Github. I also write a script to install it on a Linux, it's rough, but it seems to work. It also means, in the odd chance that someone is interested, I can actually accept some contributions. I don't expect it, but there was already someone expressing an interest.
I also documented a little bit of the process.
Future Plans
I can't worry about failing. This may work or it may not, but it feels pretty good to me. I liked how easily everything fell into place, no doubt because of the endless times I've already written it. The code base is pretty solid. Needs changes, but the foundation is pretty simple because I'm doing less so I can focus on the important parts.
I want this to succeed. I think it will help me be a better writer by identifying my problem areas, the places I know are wrong but I can't always see. This tool, both now with only one feature and later with the other things I want, should help me do that.
Metadata
Categories:
Tags: