A Novel-Writing Application Written in Python / QT5
There are a few novel-writing applications out there, including word processors. The problem with them is that they aren't geared towards organising the massive amount of resources and timelines I was making to go along with my writing.
In addition, many of the existing programs had the following issues:
- Too flashy - The interface would often get in the way of my writing. I want a minimalist interface that just gets the job done
- Not cross-platform - I do a lot of my work in Linux, and found the resources lacking
- Not enough features - Often the applications were just glorified word processors and struggled to efficiently connect characters, locations, summaries, and resources together in a useful way.
- Web-based - There is definitely a benefit to this, and I may expand a version of this application to the web, but I also like the security of dealing with local files.
This project is my attempt to try to make my own novel-writing application to try and get around these limitations while teaching myself how to GUI program with Python/QT5 at the same time. This project will have the following goals:
- Create a text editor with built-in versioning so that different versions of chapters can exist at the same time and be restored if needed.
- Have different views including (but not limited to) the following:
- A timeline for characters to show what happens to each during the process of the story
- A research view to allow me to save links to files and URLs and use them to link to specific parts of a story for reference
- A character relationship view to show a family-tree-like view on characters and their changing relationships
- A chapter organiser to allow for movement of chapters and creation of parts (or splitting into separate books)
- Easy management of resources such as drawings, pictures, etc.
- Ability to interact with parts of a novel in a more piecemeal way (e.g. send a single chapter via e-mail to an editor, copy an outline into Google docs, etc)
This project doesn't work yet, and I will update this as soon as it does work, but essentially this is simply a python (3) application using XML, QT5, and some HTML/JS to create the result. It will probably remain as python but I may create builds (e.g. EXE for windows) for different OS at some point.