Once upon a time I simply tried to export my text from Scrivener to Word. And found (4 hours before my dealine) that too many things were uneccesary wrong. Text was not formatted by global styles, but inline formatting. Headings did not show up as hedings. Chapters, scenes and cutouts I thought I had “unpublished” were still there as I did not unpublish them.
Then I took a day to write a simple “Scrivener Light” editor, using TinyMCE and some home-brew code to build and render the project/document tree. Then I took another day to write some code to parse Scrivener projects to that environment. Then I moved from Scrivener to my own editor. Which was then called “Mandarin Editor” as I already had some past and dead project called “Manderin” and I was too lazy to come up with something new.
Like the past items, each next item I would build, would be something I could build in a single day, as a Proof of Concept. And each next item I would build, would be something that would exite me, or that would help me in my writing: like matrix views of chapters and scenes (also known as a cork board) so that I would have overviews on what was happening where, with whom. And like search on several patterns. And like finding terms that might be names (so the software would do the hard work for me). And like the ability to link documents to other documents, with room for annotations so that I could write notes on “why that character would be doing that” in that chapter or scene. And I implemented a very basic form of spell check, based on Hunspell.
I changed “Mandarin Editor” to “NovaScriber” as my wife mentioned that the previous could be confused with “An editor, to write Mandarin Chinese”.
I wrote more scenes. I restructured my book. And last month (September) I rewrote the code that determined how feedback (like highlighting spelling errors and repetitive words) would be injected in the text so that my software could start doing spellchecking on the fly.
Because of that, and several other reasons NovaScriber moved one level up.
Then I fixed some bugs. And more bugs. And I updated the help-text you can find under functional blocks. And fixed more bugs. And intruduced some as I updated other stuff. And fixed those, until it was good enough for a new release. And then found more bugs as I wrote this post. And fixed those too.
As for users, views and downloads: there are on average 2 downloads per day on good days and 1 or 0 on quiet days. As my testing was superficual due to the ill assumption “that things work for others as thet work for me” several releases were botched. I learned to live with that. (These are still the pre-release days.) And just knowing that people are downloading the software stimulates me to do more than just sit on this piece of software and it stimulates me to put just a bit more effort to make it work in more elegant ways.
Now to the changes and additions in this release:
As some things are less obvious than others, I added and improved context-specific help, hidden underneath a questionmark-icon at the bottom of the xreen. Its aim is mostly to guide you in the right directions.
I already implemented a word-count log per document end of last year and a simple breakdown of the text in paragraphs, sentences and average words per sentence. What I added September 2020 was a visualization of everything, and a simple “readability” indication labelled “reading weight“. Note: this is still has some quirks for imported text.
NovaScriber now highlights “words that might be terms or names” (blue-green) and I re-implemented the way “repetitive words” (dotted underline) was implemented, adding “intensity” based on their occurrence in a range of 200 words around them.
To support checks on readability, I added highlights on sentence level. Any green sentence counts 10 words or less (“easy read”). Yellow is anything between 10 and 30 words per sentence (“harder to read”). Orange is 30 words and more. Comma’s are not taken into account yet. (A long sentence without comma’s is a harder read than one with several.)
And since I was working on that, I also added a highlight of longer words, giving you their length on mouse over.
A right-click on any highlighted word, will open a side-panel showing you anything we know about that word. In this case “Nomi” is the name of a character that has several possible matches in my collection of documents classified as “character”. The top-find shows a checkmark, meaning it is already linked to this document. (When you take a closer look at the screenshot, you will notice a checkmark above some words including “Nomi”. This also tells you it’s matching with a linked document.)
Scrolling down in the side-panel, you’ll find all matches of that word in the document and the option to “Map ‘Nomi’ as …”. A click on the sentence, will navigate you to that part of the document. A selection from the dropdown will call for a popup where you can create a document for that person, that place or whatever you indicate it to be.
And you can choose to replace the word for something else.
Right-click on a repetitive word will highlight that specific word wherever it occurs, and will open the side-panel with an overview of all sentences that word occurs. Again “replace” is an option.
Each change per paragraph is automatically stored in a backup-document that will keep the most recent change. Each paragraph-version in your history is compared with your current version and all changes are highlighted. (Mouse over the previous versions will reveal what has been added since).
I also added “comments” to the side-panel, showing anything that is there and allowing you to add new comments to paragraphs where needed.
Another hidden feature I moved to the document footer is the switch to go into “focus mode“. In this mode, the text has a lower contrast, except for the paragraph that has focus. Interpunction is still high on contrast. Something I kept as a feature.
Text-analysis is also adapted to focus mode, showing anything that might require your attention in different colors and higher contrast.
Dictionaries and translations
I already implemented Hunspell for spellcheck, due to a lack of built-in support in earlier versions of Electron: the shell in which NovaScriber runs.
While I still need to expose a way to add your own dictonaries, the options to do so are alreay in place. NovaScriber will create a directory in your user-folder. In that directory, you can place several dictionaries which will be automatically included in your spell-check options.
When you switch to “Translation mode”, ALT-T on the active paragraph will start Google Translate. The target language is the language selected in the second panel. While the Google automated translations are still flawed, they are getting better each year. So embedding this function in NovaScriber was not only something that really got me exited, it also can be quite useful.
To keep relationships clear between the two text, I synchronized scrolling in both panels and I force the translated text to reflect the orginal in order and in content. In other words: when paragraphs are moved, added or deleted in the main document, they will be moved, added and removed in and from the transalation as well.
This is still work in progress and features like: “check if translated text is outdated” will be added at some time soon.
More color options
I already created a set of three theme-colors: light, eggshell and dark, but I was not satisfied with that solution. For one: it was too rigid.
So I implemented a color picker, created a generator for the CSS code, used calculated values for lighter and darker shades, and used the “distance” between the font-color and the background-color as an indicator for several shades in between.
Then I selected a basic palette using some subdued colors and some bright colors.
Thus giving you enough freedom to make it as crazy and colorful or as basic as you can imagine (within the limits of the given colors).