A Novel writer's toolkit. Client/Server oriented, so you could work on your next book from a PC, Laptop, Tablet or even a Smartphone. Keep Story, persons, places and timeline ready.
On the other hand: My playground for Svelte, SocketIO, WindiCSS, Testing-Library, Storybook, Codecept.
cd
into the repository and execute npm i
in the server subdirectory and in the client_v2 subdirectory.npm run dev
in the server directorynpm run dev
in the client_v2 directory to launch the development serverbuild.sh
in the base directory. Target is at http://localhost:2999 then (configurable in config/default.json or production.json)The json-files in server/config define some behaviour. See default_sample.json as an example.
{
"salt": "someRandomSaltedString",
"port": 2999,
"timeout": 600,
"encryption": false,
"storage": "file",
"file":{
"basedir": "/home/gerry/Dokumente/novels"
},
"s3":{
"endPoint": "my.s3.server.local",
"accessKey": "someIdentification",
"secretKey": "verySecretAuthentication",
"useSSL": false,
"port": 9000
},
"users":{
"johndoe": "topsecret",
"janedoe": "othersecret"
}
}
You can have a 'production.json' with values to override the default values in production mode. You might want to override e.g. the port setting.
Novel files are stored either in the local filesystem (of the server), or in any S3-compatible database. Prominent example of S3 Storage is Amazon's AWS, but there are others. If you want to create an S3 Storage on your own system, you might give Minio a try. This is quite easy to set up via Docker (see docker-compose.yaml for an example).
file:
s3:
The book is divided into chapters. Each chapter has a summary and a position in the time.
Description of all important persons in the story.
Description of all important places in the story.
Each chapter is linked to a certain position in time.
Free text to collect ideas, concepts and so on.
Novelist can export files as HTML or as ePub files. You can inspect HTML files in the Browser end export them from there to PDF. The ePub files can be displayed in a eBook viewer.
Usually, you'll not want to have your book disclosed to other people, before you decide it's ready for that. That's why novelist book files are encrypted by default.
npm run i18n
to apply keys to other languagesnpm test
will run the test suite.
Text format: Markdown
.novel file layout:
name.novel metadata.yaml chapters chapter1.md ... persons name1.md ,,, places name1.md timeline.md notes.md
Novelist will always keep several copies of every book: bookname_1.novel to bookname_5.novel are updated with every save. And every day a new bookname_yy-mm-dd.novel is created with the current contents at the first save of that day.
Not multiuser capable. Only one client can work on any book at a time. It is possible, however to have several clients connected with one server, each working on their own book.