Updated documentation for release 1.2

This commit is contained in:
Veronica K. B. Olsen
2021-03-13 16:25:59 +01:00
parent 182ef5c8f7
commit 00a201181d
13 changed files with 199 additions and 117 deletions
+2 -2
View File
@@ -41,8 +41,8 @@ meta data is primarily saved as JSON files.
Any operating system that can run Python 3 and has the Qt 5 libraries should be able to run Any operating system that can run Python 3 and has the Qt 5 libraries should be able to run
novelWriter. It runs fine on Linux, Windows and macOS, and users have tested it on other platforms novelWriter. It runs fine on Linux, Windows and macOS, and users have tested it on other platforms
too. novelWriter can be run directly from the Python source, or installed from the pip tool or via too. novelWriter can be run directly from the Python source, or installed from the pip tool or via
the provided setup script. A setup.exe is provided for Windows. See :ref:`a_started` for further the provided setup script. See :ref:`a_started`, or one or the setup instructions for your
details. operating system for further details.
**Useful Links** **Useful Links**
+23 -16
View File
@@ -11,10 +11,10 @@ projects are structured is covered in :ref:`a_struct`.
In addition, the project can contain notes on the various plot elements, characters, locations, In addition, the project can contain notes on the various plot elements, characters, locations,
etc, that make up the story. These notes are organised in a set of category-specific top-level etc, that make up the story. These notes are organised in a set of category-specific top-level
folders (root folders), and each entry can be tagged and cross-referenced from within the novel folders referred to as "root" folders, and each entry can be tagged and cross-referenced from
documents and notes. These tags make it possible to inter-link documents, and generate an overview within the novel documents and notes. These tags make it possible to inter-link documents, and
of the entire novel project and how the various documents and plot elements are interconnected. generate an overview of the entire novel project and how the various documents and plot elements
This is covered in :ref:`a_proj` and :ref:`a_notes`. are interconnected. The tag and reference syntax is covered in :ref:`a_proj` and :ref:`a_notes`.
These additional features are not standard in markdown, but are available through special meta These additional features are not standard in markdown, but are available through special meta
keywords described in :ref:`a_struct_tags`. Syntax highlighting is provided to make it easier to keywords described in :ref:`a_struct_tags`. Syntax highlighting is provided to make it easier to
@@ -36,31 +36,37 @@ at the same time provide a complete set of features needed for writing a novel.
links, tables, and other complex structures and objects often needed for such documents. links, tables, and other complex structures and objects often needed for such documents.
Formatting is limited to headers, and bold, italicised and strikethrough text. Formatting is limited to headers, and bold, italicised and strikethrough text.
.. tip::
If you do need to align information in rows and columns in your notes, you can achieve this with
tabs and hard line breaks. The tab stop width can be specified in :guilabel:`Preferences` and
hard line breaks can be inserted by adding to spaces at the end of the line.
The main window does not have a toolbar like many other applications do. This reduces clutter, and The main window does not have a toolbar like many other applications do. This reduces clutter, and
since the documents are formatted with markdown tags, is more or less redundant. However, all since the documents are formatted with markdown tags, is more or less redundant. However, all
formatting features supported are available through convenient keyboard shortcuts. They are also formatting features supported are available through convenient keyboard shortcuts. They are also
available in the main menu. A full list of shortcuts can be found in the :ref:`a_ui_shortcuts` available in the main menu so you don't have to look up the syntax every time until you've
section. memorised it. A full list of shortcuts can be found in the :ref:`a_ui_shortcuts` section.
In addition, novelWriter offers a :guilabel:`Focus Mode` where all the user interface elements In addition, novelWriter has a :guilabel:`Focus Mode` where all the user interface elements other
other than the document editor itself are hidden away. than the document editor itself are hidden away.
The colour scheme of the user interface defaults to that of the host operating system. In addition, The colour scheme of the user interface defaults to that of the host operating system. In addition,
a dark theme is provided, and can be enabled in :guilabel:`Preferences` from the :guilabel:`Tools` other light and dark themes are provided, and can be enabled in :guilabel:`Preferences` from the
menu. A number of syntax highlighting themes are also available in :guilabel:`Preferences`. A set :guilabel:`Tools` menu. A number of syntax highlighting themes are also available in
of icon themes in colour and greyscale are also offered. The icons are based on the Typicons_ icon :guilabel:`Preferences`. A set of icon themes in colour and greyscale are also offered. The icons
set designed by Stephen Hutchings. are based on the Typicons_ icon set designed by Stephen Hutchings.
The main window is split in two, or optionally three, panels. The left-most panel contains the The main window is split in two, or optionally three, panels. The left-most panel contains the
project tree and all the documents in your project. The second panel is the document editor, and project tree and all the documents in your project. The second panel is the document editor, and
the optional third panel is a document viewer which can view any document in your project the optional third panel is a document viewer which can view any document in your project
independently of the document editor. independently of the document editor. It is not intended as a preview window, although you can use
it for this, but for viewing your notes next to your editor while you're writing.
A second tab is also available on the main window. This is the :guilabel:`Outline` tab where the A second tab is also available on the main window. This is the :guilabel:`Outline` tab where the
entire novel structure can be displayed, with all the tags and references listed. Depending on how entire novel structure can be displayed, with all the tags and references listed. Depending on how
you structure your novel documents, this outline can be quite different from your project tree. you structure your novel documents, this outline can be quite different from your project tree.
Your project tree lists individual documents, your Outline tree lists the structure of the novel Your project tree lists individual documents, your Outline tree lists the structure of the novel
itself as it appears in the text of the documents. itself in terms of partitions, chapters and scenes as it appears in the text of the documents.
.. _Typicons: https://github.com/stephenhutchings/typicons.font .. _Typicons: https://github.com/stephenhutchings/typicons.font
@@ -96,8 +102,9 @@ The project can at any time be exported to a range of different formats through
:guilabel:`Build Novel Project` tool. Natively, novelWriter supports export to Open Document, :guilabel:`Build Novel Project` tool. Natively, novelWriter supports export to Open Document,
HTML5, and various flavours of Markdown. HTML5, and various flavours of Markdown.
The HTML5 export format is suitable for convertion by a number of other tools like Pandoc, or for The HTML5 export format is suitable for conversion by a number of other tools like Pandoc, or for
importing into word processors. In addition, printing and printing to PDF is also possible. importing into word processors if the Open Document format isn't suitable. In addition, printing
and printing to PDF is also possible.
It is also possible to export the content of the project to a JSON file. This is useful if you want It is also possible to export the content of the project to a JSON file. This is useful if you want
to write your own processing script in for instance Python as the entire novel can be read into a to write your own processing script in for instance Python as the entire novel can be read into a
+15 -16
View File
@@ -10,8 +10,8 @@ Getting Started
This section contains brief guides to how you can get novelWriter running on your computer. These This section contains brief guides to how you can get novelWriter running on your computer. These
are the methods currently supported by the developer. Packages may also be available in other are the methods currently supported by the developer. Packages may also be available in other
package managers, but those are not managed by the developer. A Windows installer file is also package managers, but those are not managed by the developer. No installers are provided at this
provided on the GitHub_ releases page and linked from the `main website`_. time, but it is fairly straightforward to set up novelWriter with the provided install scripts.
As novelWriter matures, more options for how to install it and get it running will be added. For As novelWriter matures, more options for how to install it and get it running will be added. For
non-Windows users the install process is at the present time best suited for people used to working non-Windows users the install process is at the present time best suited for people used to working
@@ -22,10 +22,10 @@ run on. The instructions below are supplementary information, instructions for a
and additional build options. and additional build options.
.. note:: .. note::
The text below assumes the command ``python`` corresponds to a Python 3 executable. For The text below assumes the command ``python`` corresponds to a Python 3 executable. Python 2 is
operating systems with both Python 2 and 3, the command ``python3`` may be needed instead. On now deprecated, but many systems still have both Python 2 and 3. For such systems, the command
Linux, the scripts can also be made executable and run without the ``python`` command. Likewise, ``python3`` may be needed instead. On Linux, the scripts can also be made executable and run
``pip`` may need to be replaced with ``pip3``. without the ``python`` command. Likewise, ``pip`` may need to be replaced with ``pip3``.
.. _a_started_depend: .. _a_started_depend:
@@ -43,17 +43,16 @@ The following Python packages are needed to run novelWriter:
* ``lxml`` needed for full XML support. * ``lxml`` needed for full XML support.
* ``pyenchant`` needed for efficient spell checking (optional). * ``pyenchant`` needed for efficient spell checking (optional).
PyQt/Qt should be at least 5.2.1, but ideally 5.10 or higher for nearly all features to work. PyQt/Qt should be at least 5.3, but ideally 5.10 or higher for nearly all features to work. For
Searching using regular expressions requires 5.3, and for full Unicode support, 5.13. There is no instance, searching using regular expressions with full Unicode support requires 5.13. There is no
known minimum version requirement for package ``lxml``, but the code was originally written with known minimum version requirement for package ``lxml``, but the code was originally written with
4.2, which is therefore set as the minimum. It may work on lower versions. You have to test it. 4.2, which is therefore set as the minimum. It may work on lower versions. You have to test it.
Optionally, a package can be installed to interface with the Enchant spell checking libaries, but Optionally, a package can be installed to interface with the Enchant spell checking libaries, but
this isn't strictly required. If no external spell checking library is available, novelWriter falls this isn't strictly required. If no external spell checking library is available, novelWriter falls
back to using the internal ``difflib`` of Python to check spelling. This is a much slower approach, back to using the internal ``difflib`` of Python to check spelling. This is a slower and less
and it is less sophisticated than full spell checking libaries, but if you only work with small sophisticated spell checker than the full spell checking libaries. The spell check library must be
files, the performance loss is not noticeable. The spell check library must be at least 3.0 to work at least 3.0 to work with Windows. On Linux, 2.0 also works fine.
with Windows. On Linux, 2.0 also works fine.
If you install from PyPi, these dependencies should be installed automatically. If you install from If you install from PyPi, these dependencies should be installed automatically. If you install from
source, dependencies can still be installed from PyPi with: source, dependencies can still be installed from PyPi with:
@@ -77,7 +76,7 @@ and Python 3. It is regularly tested on Linux, Windows and macOS. The latest ver
is |release|. is |release|.
To install from PyPi you must first have the ``python`` and ``pip`` commands available on your To install from PyPi you must first have the ``python`` and ``pip`` commands available on your
system. If you don't, see specific instructions for your operating system later in this document. system. If you don't, see specific instructions for your operating system in this documentation.
To install novelWriter from PyPi, use the following command: To install novelWriter from PyPi, use the following command:
.. code-block:: console .. code-block:: console
@@ -105,9 +104,9 @@ default.
Building the Documentation Building the Documentation
========================== ==========================
If you installed novelWriter from a package, the documentation should be included. If you're If you installed novelWriter from a package, the documentation should be bre-built and included. If
running novelWriter from the source code, a local copy of this documentation can be generated. It you're running novelWriter from the source code, a local copy of this documentation can be
requires the following Python packages on Debian and Ubuntu. generated. It requires the following Python packages on Debian and Ubuntu.
* ``python3-sphinx`` * ``python3-sphinx``
* ``python3-sphinxcontrib.qthelp`` * ``python3-sphinxcontrib.qthelp``
+7 -7
View File
@@ -8,8 +8,9 @@ Setup on Linux
.. _main website: https://novelwriter.io .. _main website: https://novelwriter.io
This is a brief guide to how you can get novelWriter running on a Linux computer. There are This is a brief guide to how you can get novelWriter running on a Linux computer. There are
currently no packaged version of novelWriter for Linux, so it is recommended that you just extract currently no install package of novelWriter for Linux, so it is recommended that you download
the source to a practical location on your system and run the ``setup.py`` script. either the full source or minimal package and extract it to a practical location on your system and
run the ``setup.py`` script.
Running from Source Running from Source
@@ -52,17 +53,16 @@ system where Python packages are usually kept. This is not really the best suite
GUI application like novelWriter, so you may instead copy the entire source to a suiteable location GUI application like novelWriter, so you may instead copy the entire source to a suiteable location
yourself. yourself.
By default, this command installs novelWriter for the current user only. To install for all users,
run the script with the ``sudo`` command.
This should install novelWriter to either ``~/.local/bin/novelWriter`` if installed for local user This should install novelWriter to either ``~/.local/bin/novelWriter`` if installed for local user
only, or to ``/usr/local/bin/novelWriter`` if installed for all users. only, or to ``/usr/local/bin/novelWriter`` if installed for all users (with the ``sudo`` command).
Step 3: Create Launcher Icons Step 3: Create Launcher Icons
----------------------------- -----------------------------
To set up the novelWriter desktop launcher, the icons, and the project file association, run: Regardless of where you extract or install the source files, you can easily set up a standard icon
and launcher. To set up this desktop launcher, the needed icons, and the project file association,
run:
.. code-block:: console .. code-block:: console
+3 -2
View File
@@ -9,8 +9,9 @@ Setup on macOS
.. _brew docs: https://docs.brew.sh/Homebrew-and-Python .. _brew docs: https://docs.brew.sh/Homebrew-and-Python
This is a brief guide to how you can get novelWriter running on macOS. There are currently no This is a brief guide to how you can get novelWriter running on macOS. There are currently no
packaged version of novelWriter for macOS, so it is recommended that you just extract the source to a install package of novelWriter for macOS, so it is recommended that you download either the full
practical location on your system and run it. source or minimal package and extract it to a practical location on your system and
run it.
Running from Source Running from Source
-1
View File
@@ -28,7 +28,6 @@ You can still create the installer yourself if you want to. It can be generated
Please use the "Running from Source" option below instead. It has been improved and a script has Please use the "Running from Source" option below instead. It has been improved and a script has
been added that does nearly the same thing. been added that does nearly the same thing.
.. _installer issue: https://github.com/vkbo/novelWriter/issues/640 .. _installer issue: https://github.com/vkbo/novelWriter/issues/640
+15 -13
View File
@@ -43,21 +43,20 @@ file is saved, and various meta data entries are incremented on each save.
Project Documents Project Documents
----------------- -----------------
The project documents are saved in a folder in the main project folder named ``content``. Each All the project documents are saved in a folder in the main project folder named ``content``. Each
document has a file handle taken from the first 13 characters of a SHA256 hash of the system time document has a file handle taken from the first 13 characters of a SHA256 hash of the system time
when the document was first created. The documents are saved with a filename assembled from this when the document was first created. The documents are saved with a filename assembled from this
hash and the file extension ``.nwd``. hash and the file extension ``.nwd``.
If you wish to find the physical location of a document in the project, you can either look it up If you wish to find the file system location of a document in the project, you can either look it
in the project XML file, select :guilabel:`Show File Details` from the :guilabel:`Document` menu up in the project XML file, select :guilabel:`Show File Details` from the :guilabel:`Document` menu
when having the document open, or look in the ``ToC.txt`` file in the root of the project folder. when having the document open, or look in the ``ToC.txt`` file in the root of the project folder.
The ``ToC.txt`` file has a list of all documents in the project and where they are saved. The ``ToC.txt`` file has a list of all documents in the project, referenced by their label, and
where they are saved.
The reason for this cryptic file naming is to avoid issues with file naming conventions and The reason for this cryptic file naming is to avoid issues with file naming conventions and
restrictions on different operating systems, and also to have a file name that does not depend on restrictions on different operating systems, and also to have a file name that does not depend on
what the user names the document within the project, or changes it to. The file meta data in the what the user names the document within the project, or changes it to.
project tree is mainly saved in the project XML file, although some basic meta data is added to the
header of each document file.
Each document file contains a plain text version of the text from the editor. The file can in Each document file contains a plain text version of the text from the editor. The file can in
principle be edited in any text editor, and is suitable for diffing and version control if so principle be edited in any text editor, and is suitable for diffing and version control if so
@@ -89,12 +88,13 @@ file instead.
Project Meta Data Project Meta Data
================= =================
The project folder contains a subfolder named ``meta``, containing a number of files. The meta The project folder contains a subfolder named ``meta``, containing a number of files. The meta
folder contains semi-important files. That is, they can be lost with only minor impact to the folder contains semi-important files. That is, they can be lost with only minor impact to the
project. project.
If you use version control software on your project, you can exclude this folder, although you may If you use version control software on your project, you can exclude this folder, although you may
want to track the session log file. The JSON files within this folder can safely be ignored. want to track the session log file. The JSON files within this folder can safely be ignored as they
will be automatically regenerated if lost.
The Project Index The Project Index
@@ -108,10 +108,11 @@ The index is maintained and updated whenever a document or note is saved in the
all references and tags in documents and notes, as well as the location of all headers in the all references and tags in documents and notes, as well as the location of all headers in the
project, and the word counts within each header section. project, and the word counts within each header section.
While the integrity of the index is checked when the file is loaded, the check is not very deep and The integrity of the index is checked when the file is loaded. It is possible to corrupt the index
it is possible to corrupt the index if the file is manually edited and manipulated. If so, if the file is manually edited and manipulated, so the check is important to avoid sudden crashes
novelWriter may crash during launch. If this happens, you must delete the index file and rebuild of novelWriter. if the file contains errors, novelWriter will automatically build it anew. If the
the index. check somehow fails and novelWriter keeps crashing, you can delete the file manually and rebuild
the index. If this too fails, you have likely encountered a bug.
Cached GUI Options Cached GUI Options
@@ -124,6 +125,7 @@ to the project. Global GUI settings are stored in the main config file.
The file is not critical, but if it is lost, all such GUI options will revert back to their default The file is not critical, but if it is lost, all such GUI options will revert back to their default
settings. settings.
Session Stats Session Stats
------------- -------------
+2 -2
View File
@@ -119,8 +119,8 @@ Export Formats
Currently, six formats are supported for exporting. Currently, six formats are supported for exporting.
OpenDocument Format Open Document Format
The Build tool can produce either an ``.odt`` file, of a ``.fodt`` file. The latter is just a The Build tool can produce either an ``.odt`` file, or an ``.fodt`` file. The latter is just a
flat version of the document format as a single XML file. flat version of the document format as a single XML file.
novelWriter HTML novelWriter HTML
+77 -28
View File
@@ -7,6 +7,7 @@ User Interface
The user interface is kept as simple as possible to avoid distractions when writing. This page The user interface is kept as simple as possible to avoid distractions when writing. This page
lists all the main GUI elements, and explains what they do. lists all the main GUI elements, and explains what they do.
.. _a_ui_tree: .. _a_ui_tree:
The Project Tree The Project Tree
@@ -47,19 +48,53 @@ currently selected item. This panel also includes the latest paragraph and chara
addition to the word count. addition to the word count.
.. _a_ui_tree_novel:
The Novel Tree
--------------
An alternative way to view the project structure is the novel tree. You can switch to this view by
selecting the :guilabel:`Novel` tab under the project tree. This view is a simplified version of
the view in the :guilabel:`Outline`. It is convenient when you want to browse the structure of the
story itself rather than the document files.
.. note::
You cannot reorganise the entries in the novel tree as that would imply restructuring the
content of the document files.
.. _a_ui_tree_status:
Document Importance and Status
------------------------------
Each document or folder in your project can have either a "Status" or "Importance" flag set. These
are flags that you control and define in their respective tabs in :guilabel:`Project Settings`. The
"Status" flag is intended to tag a Novel document as for instance a draft or as completed, and the
"Importance" flag is intended to tag character notes, or other notes, as for instance a main, major
or minor character.
Whether a document uses a "Status" or "Importance" flag depends on which root folder it lives in.
If it's in the :guilabel:`Novel` folder, it uses the "Status" flag, otherwise it uses an
"Importance" flag. Some folders, like :guilabel:`Trash` and :guilabel:`Outtakes` allow both.
.. _a_ui_tree_dnd: .. _a_ui_tree_dnd:
Project Tree Drag and Drop Project Tree Drag & Drop
-------------------------- ------------------------
The project tree allows drag and drop to a certain extent. This feature is primarily intended for The project tree allows drag & drop to a certain extent. This feature is primarily intended for
rearranging the order of your documents within each root folder, and has only limited support for rearranging the order of your documents within each root folder, and has only limited support for
moving documents elsewhere in the project tree. In general, bulk actions are not allowed. This is moving documents elsewhere in the project tree. In general, bulk actions are not allowed. This is
deliberate to avoid accidentally messing up your project. The project tree has no undo function. deliberate to avoid accidentally messing up your project. If you make a mistake, the last move
action can be undone by pressing :kbd:`Ctrl`:kbd:`Shift`:kbd:`Z`.
Documents and their folders can be rearranged freely within their root folders. Novel documents Documents and their folders can be rearranged freely within their root folders. Novel documents
cannot be moved out of the :guilabel:`Novel` folder, except to :guilabel:`Trash` and the cannot be moved out of the :guilabel:`Novel` folder, except to :guilabel:`Trash` and the
:guilabel:`Outtakes` folders. Notes can be moved freely between all root folders. :guilabel:`Outtakes` folders. Notes can be moved freely between all root folders, but keep in mind
that if you move a note into a :guilabel:`Novel`, its "Importance" setting will be reset to the
default "Status" setting. See :ref:`a_ui_tree_status`.
Folders cannot be moved at all outside their root tree. Neither can a folder containing documents Folders cannot be moved at all outside their root tree. Neither can a folder containing documents
be deleted. You must first delete the containing documents. be deleted. You must first delete the containing documents.
@@ -78,8 +113,8 @@ Editing and Viewing Documents
To edit a document, double-click it in the project tree, or press the :kbd:`Return` key while To edit a document, double-click it in the project tree, or press the :kbd:`Return` key while
having it selected. This will open the document in the document editor. The editor uses a having it selected. This will open the document in the document editor. The editor uses a
simplified markdown format. The format is described in the :ref:`a_ui_md` section below. The editor simplified markdown format. The format is described in the :ref:`a_ui_md` section below. The editor
has a maximise button (toggles the :guilabel:`Distraction Free Mode`) and a close button in the has a maximise button (toggles the :guilabel:`Focus Mode`) and a close button in the top-right
top-right corner. corner.
Any document in the project tree can also be viewed in parallel in a right hand side document Any document in the project tree can also be viewed in parallel in a right hand side document
viewer. To view a document, press :kbd:`Ctrl`:kbd:`R`, or select :guilabel:`View Document` in the viewer. To view a document, press :kbd:`Ctrl`:kbd:`R`, or select :guilabel:`View Document` in the
@@ -91,23 +126,24 @@ panel next to the close button to achieve the same thing.
Both the document editor and viewer will show the label of the document in the header at the top of Both the document editor and viewer will show the label of the document in the header at the top of
the edit or view panel. Optionally, the full project path to the document can be shown. This can be the edit or view panel. Optionally, the full project path to the document can be shown. This can be
set in the :guilabel:`Preferences` dialog from the :guilabel:`Tools` menu. Clicking on the document set in :guilabel:`Preferences` from the :guilabel:`Tools` menu. Clicking on the document title bar
title bar will select and reveal its location in the project tree, making it easier to locate in a will select and reveal its location in the project tree, making it easier to locate in a large
large project. project.
Any tag reference in the editor can be opened in the viewer by moving the cursor to the label and Any tag reference in the editor can be opened in the viewer by moving the cursor to the label and
pressing :kbd:`Ctrl`:kbd:`Return`. You can also control-click them with your mouse. In the viewer, pressing :kbd:`Ctrl`:kbd:`Return`. You can also control-click them with your mouse. In the viewer,
the references become clickable links. Clicking them will replace the content of the viewer with the references become clickable links. Clicking them will replace the content of the viewer with
the content of the document the reference points to. The document viewer keeps a history of viewed the content of the document the reference points to. The document viewer keeps a history of viewed
documents, which you can navigate with the arrow buttons in the top-left corner of the viewer. If documents, which you can navigate with the arrow buttons in the top-left corner of the viewer. If
your mouse has back and forward navigation buttons, these can be used as well. your mouse has back and forward navigation buttons, these can be used as well. They work just like
the backward and forward features in a browser.
At the bottom of the view panel there is a :guilabel:`References` panel. (If it is hidden, click At the bottom of the view panel there is a :guilabel:`References` panel. (If it is hidden, click
the icon to reveal it.) This panel will show links to all documents referring back to it, if any the icon to reveal it.) This panel will show links to all documents referring back to the one
has been defined. The :guilabel:`Sticky` button will freeze the content of the panel to the current you're currently viewing, if any has been defined. The :guilabel:`Sticky` button will freeze the
document, even if you navigate to another document. This is convenient if you want to quickly look content of the panel to the current document, even if you navigate to another document. This is
through all documents in the list in the :guilabel:`References` panel without losing the list in convenient if you want to quickly look through all documents in the list in the
the process. :guilabel:`References` panel without losing the list in the process.
.. note:: .. note::
The :guilabel:`References` panel relies on an up-to-date index of the project. The index is The :guilabel:`References` panel relies on an up-to-date index of the project. The index is
@@ -122,11 +158,15 @@ Auto-Replace as You Type
======================== ========================
A few auto-replace features are supported by the editor. You can control every aspect of the A few auto-replace features are supported by the editor. You can control every aspect of the
auto-replace feature from :guilabel:`Preferences`. You can also disable it entirely. auto-replace feature from :guilabel:`Preferences`. You can also disable this feature entirely if
you wish.
.. tip:: .. tip::
If you don't like auto-replacement, all symbols inserted by this feature are also available in If you don't like auto-replacement, all symbols inserted by this feature are also available in
the :guilabel:`Insert` menu, and via convenient :ref:`a_ui_shortcuts_ins`. the :guilabel:`Insert` menu, and via convenient :ref:`a_ui_shortcuts_ins`. You may also be using
a `Compose Key`_ setup, which means you may not need the auto-replace feature.
.. _Compose Key: https://en.wikipedia.org/wiki/Compose_key
The editor is able to replace two and three hyphens with short and long dashes, triple points with The editor is able to replace two and three hyphens with short and long dashes, triple points with
ellipsis, and replace straight single and double quotes with user-defined quote symbols. It will ellipsis, and replace straight single and double quotes with user-defined quote symbols. It will
@@ -173,17 +213,22 @@ level of the novel. See :ref:`a_struct_heads` for more details.
``### Title`` ``### Title``
Heading level three. If the document is a novel file, the header level indicates the start of a Heading level three. If the document is a novel file, the header level indicates the start of a
new scene. Scene numbers or scene separators can be inserted automatically when exporting the new scene. Scene numbers or scene separators can be inserted automatically when exporting the
manuscript, so you can use the title field as a working title for your scenes. manuscript, so you can use the title field as a working title for your scenes if you wish.
``#### Title`` ``#### Title``
Heading level four. If the document is a novel file, the header level indicates the start of a Heading level four. If the document is a novel file, the header level indicates the start of a
new section. Section titles can be replaced by separators or removed when exporting the new section. Section titles can be replaced by separators or removed when exporting the
manuscript, so you can use the title field as a working title for your sections. manuscript, so you can use the title field as a working title for your sections if you wish.
.. note:: .. note::
The space after the ``#`` characters is mandatory. The syntax highlighter will change colour and The space after the ``#`` characters is mandatory. The syntax highlighter will change colour and
font size when the heading is correctly formatted. font size when the heading is correctly formatted.
.. tip::
If you do use the automatic numbering feature for exports, you can tell the export tool to skip
assigning a number to a specific chapter by adding a ``*`` as the first character of the title
itself. See :ref:`a_struct_heads_unnum` for more details.
.. _a_ui_md_emph: .. _a_ui_md_emph:
@@ -229,14 +274,14 @@ In addition to these standard markdown features, novelWriter also allows for com
The text of a comment is ignored by the word counter. The text can also be filtered out when The text of a comment is ignored by the word counter. The text can also be filtered out when
exporting or viewing the document. exporting or viewing the document.
If the first word of a comment is ``Synopsis:`` (with the colon), the comment is treated specially If the first word of a comment is ``Synopsis:`` (with the colon included), the comment is treated
and will show up in the :ref:`a_ui_outline` in a dedicated column. The word ``synopsis`` is not specially and will show up in the :ref:`a_ui_outline` in a dedicated column. The word ``synopsis``
case sensitive. If it is correctly formatted, the syntax highlighter will indicate this by altering is not case sensitive. If it is correctly formatted, the syntax highlighter will indicate this by
the colour of the word. altering the colour of the word.
``% text...`` ``% text...``
This is a comment. The text is not exported by default (this can be overridden), seen in the This is a comment. The text is not exported by default (this can be overridden), seen in the
Viewer, or counted towards word counts. document viewer, or counted towards word counts.
``% Synopsis: text...`` ``% Synopsis: text...``
This is a synopsis comment. It is generally treated in the same way as a regular comment, except This is a synopsis comment. It is generally treated in the same way as a regular comment, except
@@ -272,11 +317,11 @@ Additional Markdown and Non-Standard Features
The editor and viewer also support markdown standard hard line breaks, and preserve non-breaking The editor and viewer also support markdown standard hard line breaks, and preserve non-breaking
spaces if running with Qt 5.9 or higher. For older versions, the non-breaking spaces are lost when spaces if running with Qt 5.9 or higher. For older versions, the non-breaking spaces are lost when
the document is saved. This is unfortunately hard-coded in the Qt text editor. the document is saved. This is unfortunately hard-coded into the Qt text editor.
* A hard line break can be achieved by leaving two or more spaces at the end of the line. This is * A hard line break can be achieved by leaving two or more spaces at the end of the line. This is
standard markdown syntax. Alternatively, the user can press :kbd:`Ctrl`:kbd:`K`, :kbd:`Return` to standard markdown syntax. Alternatively, the user can press :kbd:`Ctrl`:kbd:`K`, :kbd:`Return` to
insert this type of space. insert this type of line break.
* A non-breaking space can be inserted with :kbd:`Ctrl`:kbd:`K`, :kbd:`Space`. * A non-breaking space can be inserted with :kbd:`Ctrl`:kbd:`K`, :kbd:`Space`.
* Thin spaces are also supported, and can be inserted with :kbd:`Ctrl`:kbd:`K`, * Thin spaces are also supported, and can be inserted with :kbd:`Ctrl`:kbd:`K`,
:kbd:`Shift`:kbd:`Space`. :kbd:`Shift`:kbd:`Space`.
@@ -288,6 +333,10 @@ in :ref:`a_ui_shortcuts_ins`.
Both hard line breaks and non-breaking spaces are highlighted by the syntax highlighter as an Both hard line breaks and non-breaking spaces are highlighted by the syntax highlighter as an
alternate coloured background, depending on the selected theme. alternate coloured background, depending on the selected theme.
.. tip::
Non-breaking spaces are the correct type of space to separate a number from its unit. Generally,
it prevents the line wrapping algorithms from adding line breaks where it shouldn't.
.. _a_ui_outline: .. _a_ui_outline:
@@ -317,7 +366,7 @@ rearranged by dragging them to a different position.
The :guilabel:`Title` column cannot be disabled or moved. The :guilabel:`Title` column cannot be disabled or moved.
The information viewed in the outline is based on the project's main index. While novelWriter does The information viewed in the outline is based on the project's main index. While novelWriter does
its best to keep the index up to date when content changes, you can always rebuild it manually by its best to keep the index up to date when contents change, you can always rebuild it manually by
pressing :kbd:`F9` if something isn't right. pressing :kbd:`F9` if something isn't right.
The outline view itself can be regenerated by pressing :kbd:`F10`. You can also enable automatic The outline view itself can be regenerated by pressing :kbd:`F10`. You can also enable automatic
+5 -3
View File
@@ -6,9 +6,11 @@ Project Notes
novelWriter doesn't have a database and complicated forms for filling in details about plot novelWriter doesn't have a database and complicated forms for filling in details about plot
elements, characters, and all sorts of additional information that isn't a part of the novel text elements, characters, and all sorts of additional information that isn't a part of the novel text
itself. Instead, all such information is saved in notes. The relation between all these additional itself. Instead, all such information is saved in notes that are written and maintained just like
elements is extracted from the documents and notes by the project indexer, based on the tags and all other text in your project.
references you set within them.
The relation between all these additional elements is extracted from the documents and notes by the
project indexer, based on the tags and references you set within them.
Using notes is not required, but making at least minimal notes for each plot element, and adding a Using notes is not required, but making at least minimal notes for each plot element, and adding a
tag to them, makes it possible to use the :guilabel:`Outline` feature to see how each element tag to them, makes it possible to use the :guilabel:`Outline` feature to see how each element
+17 -10
View File
@@ -4,15 +4,15 @@
Novel Projects Novel Projects
************** **************
A novelWriter project requires a dedicated folder for storing its files on the local file system.
See :ref:`a_tech` for further details on how files are organised.
A new project can be created from the :guilabel:`Project` menu by selecting A new project 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 :guilabel:`New Project`. This will open the :guilabel:`New Project Wizard` that will assist you in
creating a barebone project suited to your needs. 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_tech` for further details on how files
are organised.
A list of recently opened projects is maintained, and displayed in the :guilabel:`Open Project` 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. 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` 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, menu. See further details below in the :ref:`a_proj_settings` section. Details about the project,
@@ -108,9 +108,9 @@ Archived Documents (Outtakes)
If you don't want to delete a document, or put it in the :guilabel:`Trash` folder where it may be 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:`Outtakes` deleted, but still want it out of your main project tree, you can create an :guilabel:`Outtakes`
root folder from the :guilabel:`Project` menu. You are not allowed to move folders to this root root folder from the :guilabel:`Project` menu. You are not allowed to move entire folders to this
folder, only documents. If you need folders in it to organise your documents, you can of course root folder, only documents. If you need folders in it to organise your documents, you can of
create new ones there. course create new ones there.
You can drag any document to this folder and preserve its settings. The document will always be 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 excluded from the :guilabel:`Build Novel Project` builds. It is also removed from the project
@@ -180,7 +180,7 @@ documents.
.. tip:: .. tip::
You can use folders to sort your scene documents into chapters. You will still need to add a You can use folders to sort your scene documents into chapters. You will still need to add a
chapter document as the first item of your chapter folder, and the scene documents as the chapter document as the first item of your chapter folder, and the scene documents as the
following items. following items. Another way to use folders is to make a folder for each act.
.. _a_proj_files: .. _a_proj_files:
@@ -212,7 +212,7 @@ Word Counts
A character, word and paragraph count is maintained for each document, as well as for each section 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 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 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 tree. 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 five seconds for as The word counts are not updated in real time, but run in the background every five seconds for as
long as the document is being actively edited. long as the document is being actively edited.
@@ -265,6 +265,8 @@ use these to indicate at what stage of completion each novel document is, or how
content of a note is to the plot. You don't have to use them this way, that's just what they were content of a note is to the plot. 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. intended for, but you can make them whatever you want.
See also :ref:`a_ui_tree_status`.
.. note:: .. note::
The status or importance level currently in use by one or more documents cannot be deleted, but The status or importance level currently in use by one or more documents cannot be deleted, but
they can be edited. they can be edited.
@@ -326,3 +328,8 @@ A tool to view the content of this file is available in the :guilabel:`Tools` me
The tool will show a list of all your sessions, and a set of filters to apply to it. You can also The tool will show a list of all your sessions, and a set of filters to apply to it. You can also
export the filtered data to a JSON file or to a CSV file that can be opened by a spreadsheet 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. 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, and 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`.
+23 -7
View File
@@ -23,8 +23,9 @@ title. See also the :ref:`a_ui_md` section for more details about the markdown s
.. note:: .. note::
The header levels are not only important when generating the exported novel file, they are also The header levels are not only important when generating the exported novel file, they are also
used by the indexer when building the outline tree in the :guilabel:`Outline` tab. Each heading used by the indexer when building the outline tree in the :guilabel:`Outline` tab as well as the
also starts a new region where new references and tags can be set. :guilabel:`Novel` tab of the project tree. Each heading also starts a new region where new
references and tags can be defined.
The different header levels are interpreted as specific section types of the novel in the following The different header levels are interpreted as specific section types of the novel in the following
way: way:
@@ -51,7 +52,7 @@ way:
Header level four signifies a sub-scene level partition, usually called a "section" in the Header level four signifies a sub-scene level partition, usually called a "section" in the
documentation and the user interface. These can be useful if you want to change tag references documentation and the user interface. These can be useful if you want to change tag references
mid-scene, like if you change the point-of-view character. You are free to use sections as you mid-scene, like if you change the point-of-view character. You are free to use sections as you
wish, and can filter the titles out of the final manuscript just like with scene titles. wish, and can filter them out of the final manuscript just like with scene titles.
.. tip:: .. tip::
There are multiple options of how to process novel titles when exporting the manuscript. For There are multiple options of how to process novel titles when exporting the manuscript. For
@@ -191,7 +192,7 @@ Below is an overview of all available layout formats.
produce the same result as a collection of :guilabel:`Partition`, :guilabel:`Chapter` and produce the same result as a collection of :guilabel:`Partition`, :guilabel:`Chapter` and
:guilabel:`Scene` layout documents. However, it does not provide the functionality of the :guilabel:`Scene` layout documents. However, it does not provide the functionality of the
:guilabel:`Unnumbered` layout format by default, but this can still be achieved by prefixing the :guilabel:`Unnumbered` layout format by default, but this can still be achieved by prefixing the
chapter title with an asterisk (``*``). chapter title with an asterisk (``*``). See :ref:`a_struct_heads_unnum` for more details.
:guilabel:`Partition` :guilabel:`Partition`
A partition can be used to split the novel into parts. Partition titles are indicated with a A partition can be used to split the novel into parts. Partition titles are indicated with a
@@ -208,7 +209,7 @@ Below is an overview of all available layout formats.
:guilabel:`Unnumbered` :guilabel:`Unnumbered`
Same as :guilabel:`Chapter`, but when exporting the project, and automatic chapter numbering is Same as :guilabel:`Chapter`, but when exporting the project, and automatic chapter numbering is
enabled, documents with this layout will not increment the chapter number. It also has a enabled, documents with this layout will not increment and apply a chapter number. It also has a
separate title formatting setting. This makes the layout suitable for Prologue and Epilogue type separate title formatting setting. This makes the layout suitable for Prologue and Epilogue type
chapters. chapters.
@@ -226,9 +227,24 @@ Below is an overview of all available layout formats.
The layout granularity is entirely optional. In principle, you can write the entire novel in a The layout granularity is entirely optional. In principle, you can write the entire novel in a
single document with layout :guilabel:`Book`. You can also have a single document per chapter if single document with layout :guilabel:`Book`. You can also have a single document per chapter if
that suits you better. The :guilabel:`Outline` will show your structure of chapters and scenes that suits you better. The :guilabel:`Outline` will show your structure of chapters and scenes
regardless of how your documents are organised. regardless of how your documents are organised. So will the novel tree.
.. tip:: .. tip::
You can always start writing with a coarse layout with one or a few documents, and then later You can always start writing with a coarse layout with one or a few documents, and then later
use the split tool to automatically split the documents into separate chapter and scene use the split tool to automatically split the documents into separate chapter and scene
documents. documents. The split tool will try to select the correct layout for each of the new documents.
.. _a_struct_layout_auto:
Novel Layout Automation
-----------------------
When a document is saved from the document editor, novelWriter will check if the level of the first
header of the document matches the selected document layout. If the header level is inconsistent
with the layout, the layout will automatically be corrected if it can be unambiguously determined.
This means that for instance saving a document with header level three, when the layout is set to
:guilabel:`Chapter`, the layout will automatically be changed to :guilabel:`Scene`. If, however,
the layout was set to :guilabel:`Book`, no change will be made because the :guilabel:`Book` layout
is not associated with a specific header level.
+10 -10
View File
@@ -17,7 +17,7 @@ This chapter provides some additional information on how novelWriter handles the
Special Notes on Symbols Special Notes on Symbols
======================== ========================
Some additional notes on these symbols. Some additional notes on the available symbols.
Dashes and Ellipsis Dashes and Ellipsis
@@ -28,9 +28,9 @@ automatically to short and long dashes, and three dots to ellipsis. The last aut
always be reverted with the undo command :kbd:`Ctrl`:kbd:`Z`, reverting the text to what you typed always be reverted with the undo command :kbd:`Ctrl`:kbd:`Z`, reverting the text to what you typed
before the automatic replacement occurred. before the automatic replacement occurred.
The symbols are available in the :guilabel:`Insert` menu. In addition, "Figure Dash" is also In addition, "Figure Dash" is available. The Figure Dash is a dash that has the same width as the
available. The Figure Dash is a dash that has the same width as the numbers of the same font, which numbers of the same font, for most fonts. It helps to align numbers align nicely in columns when
tend to be the same width so that numbers align nicely in columns. you need to use a dash in them.
Single and Double Quotes Single and Double Quotes
@@ -44,9 +44,9 @@ Ordinarily, text wrapped in quotes are highlighted by the editor. This is meant
for highlighting dialogue between characters. This feature can be disabled in for highlighting dialogue between characters. This feature can be disabled in
:guilabel:`Preferences` if this feature isn't wanted. :guilabel:`Preferences` if this feature isn't wanted.
The editor distinguishes between text wrapped in straight quotes and with the user-selected double The editor distinguishes between text wrapped in regular straight quotes and with the user-selected
quote symbols. This is to help the writer recognise which parts of the text are not using the double quote symbols. This is to help the writer recognise which parts of the text are not using
chosen quote symbols. Two convenience functions in the :guilabel:`Format` menu can be used to the chosen quote symbols. Two convenience functions in the :guilabel:`Format` menu can be used to
re-format a selected section of text with the correct quote symbols. re-format a selected section of text with the correct quote symbols.
.. _Quotation Mark: https://en.wikipedia.org/wiki/Quotation_mark .. _Quotation Mark: https://en.wikipedia.org/wiki/Quotation_mark
@@ -69,8 +69,8 @@ Modifier Letter Apostrophe
-------------------------- --------------------------
The auto-replace feature will consider any right-facing single straight quote as a quote symbol, The auto-replace feature will consider any right-facing single straight quote as a quote symbol,
even if it's intended as an apostrophe. This also includes the syntax highlighter, which may assume even if it is intended as an apostrophe. This also includes the syntax highlighter, which may
the first following apostrophe is the closing symbol of a single quoted region of text. assume the first following apostrophe is the closing symbol of a single quoted region of text.
To get around this, an alternative apostrophe is available. It is a special Unicode character that To get around this, an alternative apostrophe is available. It is a special Unicode character that
is not categorised as punctuation, but as a modifier. It is usually renderred the same way as the is not categorised as punctuation, but as a modifier. It is usually renderred the same way as the
@@ -99,6 +99,6 @@ All non-breaking spaces are highlighted with a differently coloured background t
spot them in the text. The colour will depend on the selected colour theme. spot them in the text. The colour will depend on the selected colour theme.
The thin and non-breaking spaces are converted to their corresponding HTML codes on export to HTML The thin and non-breaking spaces are converted to their corresponding HTML codes on export to HTML
format. For plain text, they are exported as regular spaces. format.
.. _thin space: https://en.wikipedia.org/wiki/Thin_space .. _thin space: https://en.wikipedia.org/wiki/Thin_space