362 lines
16 KiB
ReStructuredText
362 lines
16 KiB
ReStructuredText
.. _a_proj:
|
|
|
|
**************
|
|
Novel Projects
|
|
**************
|
|
|
|
New projects can be created from the :guilabel:`Project` menu by selecting :guilabel:`New Project`.
|
|
This will open the :guilabel:`New Project Wizard` that will assist you in creating a barebone
|
|
project suited to your needs.
|
|
|
|
A novelWriter project requires a dedicated folder for storing its files on the local file system.
|
|
See :ref:`a_storage` for further details on how files are organised.
|
|
|
|
A list of recently opened projects is maintained, and displayed in the :guilabel:`Open Project`
|
|
dialog. A project can be removed from this list by selecting it and pressing the :kbd:`Del` key or
|
|
by clicking the :guilabel:`Remove` button.
|
|
|
|
Project-specific settings are available in :guilabel:`Project Settings` in the :guilabel:`Project`
|
|
menu. See further details below in the :ref:`a_proj_settings` section. Details about the project,
|
|
including word counts, and a table of contents with word and page counts, is available through the
|
|
:guilabel:`Project Details` dialog.
|
|
|
|
|
|
.. _a_proj_roots:
|
|
|
|
Project Roots
|
|
=============
|
|
|
|
Projects are structured into a set of top level folders called "Root Folders". They are visible in
|
|
the project tree at the left side of the main window.
|
|
|
|
The novel documents go into a root folder of type :guilabel:`Novel`. Project notes go into the
|
|
other root folders. These other root folder types are intended for your notes on the various
|
|
elements of your story. Using them is of course entirely optional.
|
|
|
|
A new project may not have all of the root folders present, but you can add the ones you want from
|
|
the project tree tool bar.
|
|
|
|
Each root folder has one or more reference keyword associated with it that is used to reference
|
|
them from other documents and notes. The intended usage of each type of root folder is listed
|
|
below. However, aside from the :guilabel:`Novel` folder, no restrictions are applied by the
|
|
application on what you put in them. You can use them however you want.
|
|
|
|
.. tip::
|
|
You can make multiple root folders of each kind if you wish to split up your notes.
|
|
|
|
.. note::
|
|
It is not the notes themselves that are referenced by the listed reference keywords, but tags
|
|
set within the notes. See the examples below and in :ref:`a_struct_tags`.
|
|
|
|
:guilabel:`Novel`
|
|
This is the root folder of all text that goes into the final novel or novels. This class of
|
|
documents have other rules and features than the project notes. See :ref:`a_struct` for more
|
|
details.
|
|
|
|
:guilabel:`Plot`
|
|
This is the root folder where main plots can be outlined. It is optional, but adding at least
|
|
brief notes can be useful in order to tag plot elements for the Outline View. Tags in this
|
|
folder can be references using the ``@plot`` keyword.
|
|
|
|
:guilabel:`Characters`
|
|
Character notes go in this root folder. These are especially important if you want to use the
|
|
Outline View to see which character appears where, and which part of the story is told from a
|
|
specific character's point-of-view, or focusing on a particular character's storyline. Tags in
|
|
this folder can be referenced using the ``@pov`` keyword for point-of-view characters,
|
|
``@focus`` for a focus character, or the ``@char`` keyword for any other characters.
|
|
|
|
:guilabel:`Locations`
|
|
The locations folder is for various scene locations that you want to track. Tags in this folder
|
|
can be references using the ``@location`` keyword.
|
|
|
|
:guilabel:`Timeline`
|
|
If the story has multiple plot timelines or jumps in time within the same plot, this class of
|
|
notes can be used to track this. Tags in this folder can be references using the ``@time``
|
|
keyword.
|
|
|
|
:guilabel:`Objects`
|
|
Important objects in the story, for instance important objects that change hands often, can be
|
|
tracked here. Tags in this folder can be references using the ``@object`` keyword.
|
|
|
|
:guilabel:`Entities`
|
|
Does your plot have many powerful organisations or companies? Or other entities that are part of
|
|
the plot? They can be organised here. Tags in this folder can be references using the
|
|
``@entity`` keyword.
|
|
|
|
:guilabel:`Custom`
|
|
The custom root folder can be used for tracking anything else not covered by the above options.
|
|
Tags in this folder can be references using the ``@custom`` keyword.
|
|
|
|
The root folders correspond to the categories of tags that can be used to reference them. For more
|
|
information about the tags listed, see :ref:`a_struct_tags`.
|
|
|
|
.. note::
|
|
You can rename root folders to whatever you want. However, this doesn't change the reference
|
|
keyword.
|
|
|
|
Example of a character note:
|
|
|
|
.. code-block:: none
|
|
:linenos:
|
|
|
|
# Jane Doe
|
|
|
|
@tag: Jane
|
|
|
|
Some information about the character Jane Doe.
|
|
|
|
Example of a novel scene referencing the above character:
|
|
|
|
.. code-block:: none
|
|
:linenos:
|
|
|
|
### Chapter 1, Scene 1
|
|
|
|
@pov: Jane
|
|
|
|
When Jane woke up that morning ...
|
|
|
|
|
|
.. _a_proj_roots_del:
|
|
|
|
Deleted Documents
|
|
-----------------
|
|
|
|
Deleted documents will be moved into a special :guilabel:`Trash` root folder. Documents in the
|
|
trash folder can then be deleted permanently, either individually, or by emptying the trash from
|
|
the menu. Documents in the trash folder are removed from the project index and cannot be
|
|
referenced.
|
|
|
|
A document or a folder can be deleted from the :guilabel:`Project` menu, or by pressing
|
|
:kbd:`Ctrl`:kbd:`Shift`:kbd:`Del`. Root folders can only be deleted when they are empty.
|
|
|
|
|
|
.. _a_proj_roots_out:
|
|
|
|
Archived Documents
|
|
------------------
|
|
|
|
If you don't want to delete a document, or put it in the :guilabel:`Trash` folder where it may be
|
|
deleted, but still want it out of your main project tree, you can create an :guilabel:`Archive`
|
|
root folder.
|
|
|
|
You can drag any document to this folder and preserve its settings. The document will always be
|
|
excluded from the :guilabel:`Build Novel Project` builds. It is also removed from the project
|
|
index, so the tags and references defined in it will not show up anywhere else.
|
|
|
|
|
|
.. _a_proj_roots_orph:
|
|
|
|
Recovered Documents
|
|
-------------------
|
|
|
|
If novelWriter crashes or otherwise exits without saving the project state, or if you're using a
|
|
file synchronisation tool that runs out of sync, there may be files in the project folder that
|
|
aren't tracked in the core project file. These files, when discovered, are recovered and added back
|
|
into the project if possible.
|
|
|
|
The discovered files are scanned for meta information that give clues as to where the document may
|
|
previously have been located in the project. The project loading routines will try to put them back
|
|
as close as possible to this location, if it still exists. Generally, it will be appended to the
|
|
end of the folder where it previously was located. If that folder doesn't exist, it will try to add
|
|
it to the correct root folder. If it cannot figure out which root folder is correct, the document
|
|
will be added to the :guilabel:`Novel` root folder. Only if the :guilabel:`Novel` folder is
|
|
missing will it give up.
|
|
|
|
If the title of the document can be recovered, the word "Recovered:" will be added as a prefix. If
|
|
the title cannot be determined, the document will be named "Recovered File N" where N is a
|
|
sequential number.
|
|
|
|
|
|
.. _a_proj_roots_lock:
|
|
|
|
Project Lockfile
|
|
----------------
|
|
|
|
To prevent lost documents caused by file conflicts when novelWriter projects are synced with file
|
|
synchronisation tools, a project lockfile is written to the project folder. If you try to open a
|
|
project which has such a file present, you will be presented with a warning, and some information
|
|
about where else novelWriter thinks the project is also open. You will be give the option to ignore
|
|
this warning, and continue opening the project at your own risk.
|
|
|
|
.. note::
|
|
If, for some reason, novelWriter crashes, the lock file may remain even if there are no other
|
|
instances keeping the project open. In such a case it is safe to ignore the lock file warning
|
|
when re-opening the project.
|
|
|
|
.. warning::
|
|
If you choose to ignore the warning and continue opening the project, and multiple instances of
|
|
the project are in fact open, you are likely to cause inconsistencies and create diverging
|
|
project files, potentially resulting in loss of data and orphaned files. You are not likely to
|
|
lose any actual text unless both instances have the same document open in the editor, and
|
|
novelWriter will try to resolve project inconsistencies the next time you open the project.
|
|
|
|
|
|
.. _a_proj_roots_dirs:
|
|
|
|
Using Folders in the Project Tree
|
|
---------------------------------
|
|
|
|
Folders, aside from root folders, have no structural significance to the project. When novelWriter
|
|
is processing the documents in the novel, like for instance during export, these folders are
|
|
ignored. Only the order of the documents themselves matter.
|
|
|
|
The folders are there purely as a way for the user to organise the documents in meaningful sections
|
|
and to be able to collapse and hide them in the project tree when you're not working on those
|
|
documents.
|
|
|
|
.. tip::
|
|
You can add child documents to other documents. This is particularly useful when you create
|
|
chapters and scenes. If you add separate scene documents, you should also add separate chapter
|
|
documents, even if they only contain a chapter heading. You can then add scene documents as
|
|
child items to the chapters.
|
|
|
|
|
|
.. _a_proj_files:
|
|
|
|
Project Documents
|
|
=================
|
|
|
|
New documents can be created from the tool bar in the Project Tree, or by pressing
|
|
:kbd:`Ctrl`:kbd:`N`. This will open the create new item menu and let you choose between a number of
|
|
pre-defined documents and folders. You will be prompted for a label for the new item. You can
|
|
always rename an item by selecting :guilabel:`Rename Item` from the :guilabel:`Project` menu, or by
|
|
pressing :kbd:`F2`.
|
|
|
|
Other settings for project items are available from the context menu that you can activate by
|
|
right-clicking on an item in the Project Tree. The :guilabel:`Transform` submenu includes options
|
|
for converting, splitting, or merging items.
|
|
|
|
|
|
.. _a_proj_files_counts:
|
|
|
|
Word Counts
|
|
-----------
|
|
|
|
A character, word and paragraph count is maintained for each document, as well as for each section
|
|
of a document following a header. The word count and change of words in the current session is
|
|
displayed in the footer of any document open in the editor, and all stats are shown in the details
|
|
panel below the project tree for any document selected in the project or novel tree.
|
|
|
|
The word counts are not updated in real time, but run in the background every few seconds for as
|
|
long as the document is being actively edited.
|
|
|
|
A total project word count is displayed in the status bar. The total count depends on the sum of
|
|
the values in the project tree, which again depend on an up to date index. If the counts seem
|
|
wrong, a full project word recount can be initiated by rebuilding the project's index. Either form
|
|
the :guilabel:`Tools` menu, or by pressing :kbd:`F9`.
|
|
|
|
|
|
.. _a_proj_settings:
|
|
|
|
Project Settings
|
|
================
|
|
|
|
The :guilabel:`Project Settings` can be accessed from the :guilabel:`Project` menu, or by pressing
|
|
:kbd:`Ctrl`:kbd:`Shift`:kbd:`,`. This will open a dialog box, with a set of tabs.
|
|
|
|
|
|
Settings Tab
|
|
------------
|
|
|
|
The :guilabel:`Settings` tab holds the project name, title, and author settings.
|
|
|
|
The :guilabel:`Project Name` can be set to a different value than the :guilabel:`Novel Title`. The
|
|
difference between them is simply that the :guilabel:`Project Name` is used for the GUI (main
|
|
window title) and for generating the backup files. The intention is that the
|
|
:guilabel:`Project Name` should remain unchanged throughout the project's lifetime, otherwise the
|
|
name of exported files and backup files may change too.
|
|
|
|
The :guilabel:`Novel Title` and :guilabel:`Authors` settings are used when building the manuscript,
|
|
for some formats.
|
|
|
|
If your project is in a different language than your main spell checking is set to, you can
|
|
override the default spell checking language here. You can also override the automatic backup
|
|
setting.
|
|
|
|
|
|
Status and Importance Tabs
|
|
--------------------------
|
|
|
|
Each document or folder of type :guilabel:`Novel` can be given a *Status*_* label accompanied by a
|
|
coloured icon, and each document or folder of the remaining types can be given an *Importance*
|
|
label.
|
|
|
|
These are purely there for the user's convenience, and you are not required to use them for any
|
|
other features to work. No other part of novelWriter accesses this information. The intention is to
|
|
use these to indicate at what stage of completion each novel document is, or how important the
|
|
content of a note is to the story. You don't have to use them this way, that's just what they were
|
|
intended for, but you can make them whatever you want.
|
|
|
|
See also :ref:`a_ui_tree_status`.
|
|
|
|
.. note::
|
|
The status or importance level currently in use by one or more documents cannot be deleted, but
|
|
they can be edited.
|
|
|
|
|
|
Auto-Replace Tab
|
|
----------------
|
|
|
|
A set of automatically replaced keywords can be added in this tab. The keywords in the left column
|
|
will be replaced by the text in the right column when documents are opened in the viewer. They will
|
|
also be applied to manuscript builds.
|
|
|
|
The auto-replace feature will replace text in angle brackets that are in this list. The syntax
|
|
highlighter will add an alternate colour to text matching the syntax, but it doesn't check if the
|
|
text is in this list.
|
|
|
|
.. note::
|
|
A keyword cannot contain spaces. The angle brackets are added by default, and when used in the
|
|
text are a part of the keyword to be replaced. This is to ensure that parts of the text aren't
|
|
unintentionally replaced by the content of the list.
|
|
|
|
|
|
.. _a_proj_backup:
|
|
|
|
Backup
|
|
======
|
|
|
|
An automatic backup system is built into novelWriter. In order to use it, a backup path to where
|
|
the backup files are to be stored must be provided in :guilabel:`Preferences`.
|
|
|
|
Backups can be run automatically when a project is closed, which also implies it is run when the
|
|
application itself is closed. Backups are date stamped zip files of the project files in the
|
|
project folder (files not strictly a part of the project are ignored). The zip archives are stored
|
|
in a subfolder of the backup path. The subfolder will have the same name as the
|
|
:guilabel:`Project Name` as defined in :ref:`a_proj_settings`.
|
|
|
|
The backup feature, when configured, can also be run manually from the :guilabel:`Tools` menu.
|
|
It is also possible to disable automated backups for a given project in
|
|
:guilabel:`Project Settings`.
|
|
|
|
.. note::
|
|
For the backup to be able to run, the :guilabel:`Project Name` must be set in
|
|
:guilabel:`Project Settings`. This value is used to generate the folder name for the zip files.
|
|
Without it, the backup will not run at all, but it will produce a warning message.
|
|
|
|
|
|
.. _a_proj_stats:
|
|
|
|
Writing Statistics
|
|
==================
|
|
|
|
When you work on a project, a log file records when you opened it, when you closed it, and the
|
|
total word counts of your novel documents and notes at the end of the session, provided that the
|
|
session lasted either more than 5 minutes, or that the total word count changed. You can view this
|
|
file in the ``meta`` folder in the directory where you saved your project. The file is named
|
|
``sessionStats.log``.
|
|
|
|
A tool to view the content of this file is available in the :guilabel:`Tools` menu under
|
|
:guilabel:`Writing Statistics`. You can also launch it by pressing :kbd:`F6`, or find it on the
|
|
Sidebar.
|
|
|
|
The tool will show a list of all your sessions, and a set of filters to apply to the data. You can
|
|
also export the filtered data to a JSON file or to a CSV file that can be opened by a spreadsheet
|
|
application like for instance Libre Office Calc.
|
|
|
|
As of version 1.2, the log file also stores how much of the session time was spent idle. The
|
|
definition of idle here is that the novelWriter main window loses focus, or the user hasn't made
|
|
any changes to the currently open document in five minutes. The number of minutes can be altered in
|
|
:guilabel:`Preferences`.
|