<div align="center">
    <img src="assets/novelist.png" />
</div>

<div align="center">
<h1>novelist-mode.el</h1>
</div>

<div align="center">
<img src="https://img.shields.io/travis/novelistapp/novelist/master.svg?style=for-the-badge" height="28px" /> <img src="https://forthebadge.com/images/badges/for-sharks.svg" height="28px" /> <img src="https://forthebadge.com/images/badges/compatibility-emacs.svg" height="28px" />
</div>

<br />

An emacs major mode for writing novels, short stories, and other forms
of prose.  novelist-mode manages your projects data files, chapter
layouts, and additional story metadata.  Supports externally linked
universes, to allow sharing notes between projects.

Emacs is a extensible free software text editor, providing the engine
for novelist-mode.


## Features

novelist-mode helps you manage your projects and story resources.  It
uses interactive menus in emacs to achieve this.  All functions are
also directly callable, to be used in your own keybindings.

- `novelist-project-create` create a new project structure on disk
- `novelist-add (type, name, path)` add a new resource to the project
- `novelist-delete (path, &optional purge)` soft-remove a resource
  from the project, moving it to trash, or optionally actually
  deleting it.
- `novelist-path-overview` toggle the project explorer sidebar
- `novelist-path-notes (&optional path)` show note buffer for selected
  path (or any other if given the argument)
- `novelist-path-metadata (&optional path)` show metadata panel for
  selected path (or any other)
  
  
## Overview

A project is structured into chapter and scenes.  When exporting a
section, all children will be concatinated according to the export
config (for example put ` - *** - ` separator between sections).

Additionally to the main script part of your project there are
associated resources available.  When writing, you might want to swap
out parts, build alternative timelines to see which one might play
better, or just have notes on your characters and universe.  When
adding a resource you will be asked for a template (or blank).  When
creating a templated resource, it will be sorted into the appropriate
category (for example characters, or place-descriptions).  These parts
will not be exported from your project, even when you select the
entire project for export.

<img src="assets/early-demo.png" />
