gnovelist-mode.el design notes ============================= This mode is primarily inspired by Scrivener, and iAWriter on MacOS. Emacs _should_ be able to do all the things these editors do, give enough configuration. The following document outlines the design and usability of novelist-mode. Design adjustments +------------------+ Emacs by default is very code-oriented. To change this novelist-mode should set some things. + Make colour theme configurable (light or dark) + Set a non-monospace font (bundle Literata by default?) + Increase line spacing and text size + Change cursor to a line, control max size (because of line spacing) + Add text margins on the sides. Disable fringe or style correctly + Enable line wrapping (word wrapped) Project management +------------------+ Up to this point, libreoffice would suffice for prose writing. Instead novelist-mode should add a lot of project management functionality. + novelist-project-actions Bring up a transient menu to expose various functions implemented as their separate functions. It's possible to call them directly (or create keybindings), but using this menu is the recommended way. + novelist-project-create (name, path, &optional universe) Create a new project folder and basic metadata. Allow linking of external "universe" collection. Bundle treemacs to display the project overview. + novelist-add (type, name, path) Add a new resource to the project. This can either be a chapter, a scene, or some other metadata template. Templates can be defined in a project or a universe. + novelist-delete (path, &optional purge) Remove a resource from the project. By default it will only be moved into the hidden trash. With the optional "purge" parameter it can also be immediately deleted. + novelist-path-overview Toggle the vilibility of the project overview (tree bar on the left). + novelist-path-notes (&optional path) Bring up a hidden buffer that contains structured notes for a particular path + novelist-path metadata (&optional path) Bring up a special menu to manage key-value metadata for a particular path. A few default entries are included by default, such as scene revision, group colours, and labels.