Made another pass of editing of the entire documentation

This commit is contained in:
Veronica K. B. Olsen
2020-08-07 23:06:35 +02:00
parent 566c704c87
commit d7c1e47113
10 changed files with 349 additions and 238 deletions
+28 -20
View File
@@ -13,8 +13,9 @@ The novelWriter project can be exported in various formats using the build tool
Header Formatting Header Formatting
================= =================
The titles for the four levels of story structure can be formatted collectively in the export tool. The titles for the five types of titles (the chapter headings come in a numbered and unnumbered
This is done through a series of keywordreplace steps. They are all on the format ``%keyword%``. version) of story structure can be formatted collectively in the export tool. This is done through
a series of keywordreplace steps. They are all on the format ``%keyword%``.
``%title%`` ``%title%``
This keyword will always be replaced with the title text you put after the ``#`` characters in This keyword will always be replaced with the title text you put after the ``#`` characters in
@@ -52,6 +53,12 @@ This is done through a series of keywordreplace steps. They are all on the fo
export. However, heading levels 1 through 4 are converted to the correct heading level in the export. However, heading levels 1 through 4 are converted to the correct heading level in the
respective output formats. respective output formats.
**Example**
* The format ``%title%`` just reproduces the title you set in the document file.
* The format ``Chapter %ch%: %title%`` produces something like "Chapter 1: My Chapter Title".
* The format ``Scene %ch%.%sc%`` produces something like "Scene 1.2" for scene 2 in chapter 1.
.. _a_export_scenes: .. _a_export_scenes:
@@ -73,10 +80,8 @@ File Selection
Which files are selected for export can also be controlled from the options on the left side of the Which files are selected for export can also be controlled from the options on the left side of the
dialog window. The switch for :guilabel:`Include novel files` will select any file that isn't dialog window. The switch for :guilabel:`Include novel files` will select any file that isn't
classified as a note. That is, files with layout "Book", "Page", "Partition", "Chapet", classified as a note. The switch for :guilabel:`Include note files` will select any file that *is*
"Unnumbered", or "Scene". The switch for :guilabel:`Include note files` will select any file that is a note. This is allows for exporting just the novel, just your notes, or both, as you see fit.
a note. That is, files with layout "Note". This is allows for exporting just the novel, just your
notes, or both, as you see fit.
In addition, you can select to export the synopsis comments, regular comments, keywords, and even In addition, you can select to export the synopsis comments, regular comments, keywords, and even
exclude the body text itself. exclude the body text itself.
@@ -87,10 +92,10 @@ exclude the body text itself.
followed by the tags and references and the synopsis. followed by the tags and references and the synopsis.
If you need to exclude specific files from your exports, like draft files or files you want to take If you need to exclude specific files from your exports, like draft files or files you want to take
out of your build, but don't want to delete, you can un-check the :guilabel:`Include when building out of your manuscript, but don't want to delete, you can un-check the :guilabel:`Include when
project` option for each file in the project tree. An included file has a checkmark after the status building project` option for each file in the project tree. An included file has a checkmark after
icon in the :guilabel:`Flags` column. The :guilabel:`Build Novel Project` tool has a switch to the status icon in the :guilabel:`Flags` column. The :guilabel:`Build Novel Project` tool has a
ignore this flag if you need to collectively override these settings. switch to ignore this flag if you need to collectively override these settings.
.. _a_export_formats: .. _a_export_formats:
@@ -101,18 +106,21 @@ Export Formats
Currently, six formats are supported for exporting. Currently, six formats are supported for exporting.
OpenDocument Format OpenDocument Format
This is produces an open document ``.odt`` file. The document produced has very little This produces an open document ``.odt`` file. The document produced has very little formatting,
formatting, and may require further editing afterwards. For a better formatted office document, and may require further editing afterwards. For a better formatted office document, you may get a
you may get a better result with exporting to HTML and the import that HTML document in your better result with exporting to HTML and the import that HTML document into your office word
office word processor. processor. They are generally very good at importing HTML files.
PDF Format PDF Format
The PDF export is just a shortcut for print to file. The PDF export is just a shortcut for print to file. For a better PDF result, you may instead
want to export HTML, and use a word processor to convert the HTML document to PDF.
novelWriter HTML novelWriter HTML
The HTML export format writes a single ``.htm`` file with minimal style formatting. The exported The HTML export format writes a single ``.htm`` file with minimal style formatting. The exported
HTML file is suitable for further processing by document conversion tools like Pandoc, for HTML file is suitable for further processing by document conversion tools like Pandoc, for
importing in word processors, or for printing from browser. importing in word processors, or for printing from browser. It is generally the best formatted
export option and supports all features of novelWriter since it is entirely geenrated by the
application and doesn't depend on Qt library features.
novelWriter Markdown novelWriter Markdown
This is simply a concatenation of the files selected by the filters. The files in the project are This is simply a concatenation of the files selected by the filters. The files in the project are
@@ -121,8 +129,8 @@ novelWriter Markdown
novelWriter. novelWriter.
Standard Markdown Standard Markdown
If you have Qt 5.14 or higher, the option to export to plain Markdown is available. This feature If you have Qt 5.14 or higher, the option to export to plain markdown is available. This feature
uses Qt's own Markdown export feature. uses Qt's own markdown export feature.
Plain Text Plain Text
The plain text export format writes a simple ``.txt`` file without any formatting at all. The plain text export format writes a simple ``.txt`` file without any formatting at all.
@@ -138,8 +146,8 @@ wrapped in a JSON file. The files will have a meta data entry and a body entry.
accompanying css styles are exported. accompanying css styles are exported.
The text body is saved in a two-level list. The outer list contains one entry per exported file, in The text body is saved in a two-level list. The outer list contains one entry per exported file, in
the order they appear in the project tree. Each file is then split up into a lst as well, with one the order they appear in the project tree. Each file is then split up into a list as well, with one
entry per line. entry per paragraph in the document.
These files are mainly intended for scripted post-processing for those who want that option. A JSON These files are mainly intended for scripted post-processing for those who want that option. A JSON
file can be imported directly into a Python dict object or a PHP array, to mentions a few options. file can be imported directly into a Python dict object or a PHP array, to mentions a few options.
+6 -1
View File
@@ -34,7 +34,12 @@ repository for robustness.
The plain text storage is suitable for version control software, and also well suited for file The plain text storage is suitable for version control software, and also well suited for file
synchronisation tools. The core project structure is stored in a project XML file. Other meta data synchronisation tools. The core project structure is stored in a project XML file. Other meta data
is primarily saved in JSON files. 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
novelWriter. It runs fine on Linux, Windows and macOS already, and users have tested it on other
platforms too. Since novelWriter is still under development, it is easier to run it if you are
already familiar with how to run Python applications on your platform.
**Useful Links** **Useful Links**
+82 -44
View File
@@ -4,7 +4,8 @@
User Interface User Interface
*************** ***************
The user interface is kept as simple as possible to avoid distractions when writing. 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.
.. _a_ui_tree: .. _a_ui_tree:
@@ -16,12 +17,13 @@ project. It has four columns:
:guilabel:`Label` :guilabel:`Label`
The first column shows the item icon and its label. The labels can be edited from the menu, or by The first column shows the item icon and its label. The labels can be edited from the menu, or by
pressing :kbd:`F2` or :kbd:`Ctrl`:kbd:`E`. pressing :kbd:`F2` or :kbd:`Ctrl`:kbd:`E`. The label is not the same as the title you set inside
the document, but it will appear in the header above the document text itself.
:guilabel:`Words` :guilabel:`Words`
The second column shows the word count of the file, or the sum of words in the child items if it The second column shows the word count of the file, or the sum of words in the child items if it
is a folder. If the counts seem incorrect, they can be updated by rebuilding the project index is a folder. If the counts seem incorrect, they can be updated by rebuilding the project index
from the menu, or by pressing :kbd:`F9`. from the :guilabel:`Tools` menu, or by pressing :kbd:`F9`.
:guilabel:`Inc` :guilabel:`Inc`
The third column indicates whether the file is included in the final project build or not. You The third column indicates whether the file is included in the final project build or not. You
@@ -31,13 +33,14 @@ project. It has four columns:
:guilabel:`Flags` :guilabel:`Flags`
The fourth column shows various meta data flags for the item. The first is an icon indicating the The fourth column shows various meta data flags for the item. The first is an icon indicating the
importance or status of the file. These are colour coded status levels that you control and importance or status of the file. These are colour coded status levels that you control and
define. They can be changed in Project Settings. The first character after the icon indicates the define yourself. They can be changed in :guilabel:`Project Settings` from the :guilabel:`Project`
class of the item, that is ``N`` for **Novel**, ``C`` for **Character**, etc (see menu. The first character after the icon indicates the class of the item, that is ``N`` for
:ref:`a_struct_tags`. The second character indicates the file layout type (see **Novel**, ``C`` for **Character**, etc (see :ref:`a_struct_tags`. The second character indicates
:ref:`a_proj_roots`). the file layout type (see :ref:`a_proj_roots`).
Below the project tree is a small details panel showing the full information of the currently Below the project tree you will find a small details panel showing the full information of the
selected item. This panel also includes the latest paragraph and character counts. currently selected item. This panel also includes the latest paragraph and character counts in
addition to the word count.
.. _a_ui_edit: .. _a_ui_edit:
@@ -46,16 +49,16 @@ Editing and Viewing Documents
============================= =============================
To edit a document, double-click the file in the project tree, or press the :kbd:`Return` key while To edit a document, double-click the file 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 simplified having it selected. This will open the file 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 has a markdown format. The format is described in the :ref:`a_ui_md` section below. The editor has a
maximise button (activates :guilabel:`Focus Mode`) and a close button in the top-right corner. maximise button (activates :guilabel:`Focus Mode`) and a close button in the top-right corner.
Any document in the project tree can also be viewed in parallel in a right hand side document viewer 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 menu. The To view a document, press :kbd:`Ctrl`:kbd:`R`, or select :guilabel:`View Document` in the menu. The
document viewed does not have to be the same document currently being edited. If you *are* viewing document viewed does not have to be the same document currently being edited. However, If you *are*
the same document though, pressing :kbd:`Ctrl`:kbd:`R` again will update the document with your viewing the same document, pressing :kbd:`Ctrl`:kbd:`R` again will update the document with your
latest changes. You can also press the little reload button in the top-right corner of the view latest changes. You can also press the little reload button in the top-right corner of the view
panel next to the close button. 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 file can be shown. This can be set the edit or view panel. Optionally, the full project path to the file can be shown. This can be set
@@ -68,15 +71,38 @@ and pressing :kbd:`Ctrl`:kbd:`Return`. In the viewer, the references become clic
Clicking them will replace the content of the viewer with the content of the document the reference Clicking them will replace the content of the viewer with the content of the document the reference
points to. points to.
At the bottom of the viewer's panel there is a :guilabel:`References` panel (click the icon if it is At the bottom of the view panel there is a :guilabel:`References` panel. (If it is hidden, click the
hidden) that will show links to all documents referring back to it. The :guilabel:`Sticky` button icon to reveal it.) This panel will show links to all documents referring back to it, if any has
will freeze the content of the panel to the current document, even if you navigate to another been defined. The :guilabel:`Sticky` button will freeze the content of the panel to the current
document. This is convenient if you want to quickly look through all documents in the list. document, even if you navigate to another document. This is convenient if you want to quickly look
through all documents in the list in the :guilabel:`References` panel.
.. note:: .. note::
The :guilabel:`References` panel relies on an up-to-date index of the project. If anything is The :guilabel:`References` panel relies on an up-to-date index of the project. If anything is
missing, or seems wrong, the index can always be rebuilt from :guilabel:`Tools` > missing, or seems wrong, the index can always be rebuilt by selecting :guilabel:`Rebuild Index`
:guilabel:`Rebuild Index` or by pressing :kbd:`F9`. from the :guilabel:`Tools` menu, or by pressing :kbd:`F9`.
.. _a_ui_edit_auto:
Auto-Replace as You Type
========================
A few auto-replace features are supported by the editor. You can control every aspect of the
auto-replace feature from :guilabel:`Preferences`.
.. tip::
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 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
also try to determine whether to use the opening or closing symbol, but this feature isn't always
accurate.
.. tip::
If the editor changes a symbol when you did not want it to change, pressing :kbd:`Ctrl`:kbd:`Z`
immediately after the auto-replacement will undo it without undoing the character you typed.
.. _a_ui_md: .. _a_ui_md:
@@ -85,11 +111,11 @@ Markdown Format
=============== ===============
The document editor uses a simplified markdown format. That is, it supports basic formatting like The document editor uses a simplified markdown format. That is, it supports basic formatting like
emphasis (italic), strong emphasis (bold) and strikethrough text, as well as four levels of emphasis (italic), strong importance (bold) and strikethrough text, as well as four levels of
headings. headings.
Some non-standard markdown features have been added. For instance, novelWriter allows for comments, Some non-standard markdown features have been added. For instance, novelWriter allows for comments,
a synopsis tag, and a set of keyword/value sets used for tags and references. a synopsis tag, and a set of keyword and value sets used for tags and references.
.. _a_ui_md_head: .. _a_ui_md_head:
@@ -102,20 +128,24 @@ fit, but for all other file layouts used for the novel text itself, they indicat
level of the novel. See :ref:`a_struct_heads` for more details. level of the novel. See :ref:`a_struct_heads` for more details.
``# Title`` ``# Title``
Heading level one. The space after the # is mandatory. If the file is a novel file, the header Heading level one. If the file is a novel file, the header level indicates the start of a new
level indicates the start of a new partition. partition. This heading level can also be used for the title page novel title.
``## Title`` ``## Title``
Heading level two. The space after the # is mandatory. If the file is a novel file, the header Heading level two. If the file is a novel file, the header level indicates the start of a new
level indicates the start of a new chapter. chapter.
``### Title`` ``### Title``
Heading level three. The space after the # is mandatory. If the file is a novel file, the header Heading level three. If the file is a novel file, the header level indicates the start of a new
level indicates the start of a new scene. scene.
``#### Title`` ``#### Title``
Heading level four. The space after the # is mandatory. If the file is a novel file, the header Heading level four. If the file is a novel file, the header level indicates the start of a new
level indicates the start of a new section. section.
.. note::
The space after the ``#`` characters is mandatory. The syntaxhighlighter will change colour and
font size when the heading is correctly formatted.
.. _a_ui_md_emph: .. _a_ui_md_emph:
@@ -123,21 +153,23 @@ level of the novel. See :ref:`a_struct_heads` for more details.
Text Emphasis Text Emphasis
------------- -------------
In markdown it is often recommended to differentiate between strong emphasis and emphasis by using A minimal set of text emphasis styles are supported.
``**`` for strong emphasis and ``_`` for emphasis, although markdown generally supports also ``__``
for strong emphasis and ``*`` fdr emphasis. However, since the differentiation makes the
highlighting and conversion significantly simpler and faster, in novelWriter this is a rule, not
just a recommendation. The following is therefore the only supported formatting syntax:
``_text_`` ``_text_``
The text is rendered as emphasised text (italicised). The text is rendered as emphasised text (italicised).
``**text**`` ``**text**``
The text is rendered as strongly emphasised text (bold). The text is rendered as strongly important text (bold).
``~~text~~`` ``~~text~~``
Strikethrough text. Strikethrough text.
In markdown guides it is often recommended to differentiate between strong importance and emphasis
by using ``**`` for strong and ``_`` for emphasis, although markdown generally supports also ``__``
for strong and ``*`` fdr emphasis. However, since the differentiation makes the highlighting and
conversion significantly simpler and faster, in novelWriter this is a rule, not just a
recommendation. The following is therefore the only supported formatting syntax:
There are also some additional rules: There are also some additional rules:
1. The emphasis and strikethrough formatting tags do not allow spaces between the words and the tag 1. The emphasis and strikethrough formatting tags do not allow spaces between the words and the tag
@@ -157,7 +189,7 @@ Comments and Synopsis
In addition to these standard markdown features, novelWriter also allows for comments in the text In addition to these standard markdown features, novelWriter also allows for comments in the text
files. The text of the comment is ignored by the word counter and not exported or, optionally, files. The text of the comment is ignored by the word counter and not exported or, optionally,
hidden when viewing the document. If the first word of a comment is ``Synopsis:`` (with the colon), hidden when viewing the document. If the first word of a comment is ``Synopsis:`` (with the colon),
the comment is treated specially, and will show up in the :ref:`a_ui_outline`. the comment is treated specially, and will show up in the :ref:`a_ui_outline` in a dedicated column.
``% text...`` ``% text...``
A comment. The text is not exported by default (this can be overridden), seen in the Viewer, or A comment. The text is not exported by default (this can be overridden), seen in the Viewer, or
@@ -175,9 +207,9 @@ the comment is treated specially, and will show up in the :ref:`a_ui_outline`.
Tags and References Tags and References
------------------- -------------------
The document editor supports a minimal set of keywords used for setting tags and references between The document editor supports a minimal set of keywords used for setting tags, and making references
files. The tags and references can be set once per section defined by a heading. Using them multiple between files. The tags and references can be set once per section defined by a heading. Using them
times under the same heading will just override the previous setting. multiple times under the same heading will just override the previous setting.
``@keyword: value`` ``@keyword: value``
A keyword argument followed by a value, or a comma separated list of values. A keyword argument followed by a value, or a comma separated list of values.
@@ -190,8 +222,9 @@ The available tag and reference keywords are listed in the :ref:`a_struct_tags`
Additional Markdown and Non-Standard Features Additional Markdown and Non-Standard Features
--------------------------------------------- ---------------------------------------------
The Editor and Viewer also supports markdown standard hard line breaks, and preserves non-breaking The editor and viewer also supports markdown standard hard line breaks, and preserves non-breaking
spaces if running with Qt 5.9 or higher. spaces if running with Qt 5.9 or higher. For older versions, the non-breaking spaces are lost when
the file is saved. This is unfortunately hard-coded in the Qt text editor.
* A hard line break is achieved by leaving two or more spaces at the end of the line. Alternatively, * A hard line break is achieved by leaving two or more spaces at the end of the line. Alternatively,
the user can press :kbd:`Ctrl`:kbd:`K`, :kbd:`Return` to insert this. the user can press :kbd:`Ctrl`:kbd:`K`, :kbd:`Return` to insert this.
@@ -213,11 +246,16 @@ Project Outline View
The project's Outline view is available as the second tab on the right hand side of the main window The project's Outline view is available as the second tab on the right hand side of the main window
labelled :guilabel:`Outline`. The outline provides an overview of the novel structure, displaying a labelled :guilabel:`Outline`. The outline provides an overview of the novel structure, displaying a
tree hierarchy of the elements of the novel, that is, the level 1 to 4 headings. tree hierarchy of the elements of the novel, that is, the level 1 to 4 headings, not the files.
The document file containing the heading can also be displayed as a separate column, as well as the
line number where it occurs. Double-clicking an entry will open the corresponding file in the
editor.
.. note:: .. note::
Since the internal structure of the novel does not depend on the file structure of the project Since the internal structure of the novel does not depend on the file structure of the project
tree, these will not necessarily look the same. See the :ref:`a_struct` page for more details. tree, these will not necessarily look the same, depending how you chose to organise your files.
See the :ref:`a_struct` page for more details.
Various meta data and information extracted from tags can be displayed in columns in the outline. Various meta data and information extracted from tags can be displayed in columns in the outline.
A default set of such columns is visible, but you can turn on or off more columns by right clicking A default set of such columns is visible, but you can turn on or off more columns by right clicking
@@ -258,7 +296,7 @@ altering the colour of the word.
Keyboard Shortcuts Keyboard Shortcuts
================== ==================
Most features are available as keyboard shortcuts. These are as following: Most features are available as keyboard shortcuts. These are as follows:
.. csv-table:: Keyboard Shortcuts .. csv-table:: Keyboard Shortcuts
:header: "Shortcut", "Description" :header: "Shortcut", "Description"
+32 -22
View File
@@ -5,20 +5,20 @@ Introduction
************ ************
novelWriter is a simple, multi-document plain text editor using a modified markdown syntax to apply novelWriter is a simple, multi-document plain text editor using a modified markdown syntax to apply
simple formatting. It is designed for writing novels, and allow for the component documents to be simple formatting. It is designed for writing novels, and allows for the component documents to be
ordered freely to create the desired structure of the novel project. This is covered on the ordered freely to create the desired structure of the novel. More details about how projects are
:ref:`a_struct` page. structured is covered on the :ref:`a_struct` page.
In addition, the project can contain notes on the various plot elements, characters, locations, etc, 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 folders, and each that make up the story. These notes are organised in a set of category-specific top-level folders,
entry can be tagged and cross referenced from within the novel files and other notes. These tags and each entry can be tagged and cross-referenced from within the novel files and other notes. These
make it possible to inter-link documents, and generate an overview of the entire novel project and tags make it possible to inter-link documents, and generate an overview of the entire novel project
how the various files and plot elements are interconnected. This is covered on the :ref:`a_proj` and and how the various files and plot elements are interconnected. This is covered on the :ref:`a_proj`
:ref:`a_notes` pages. and :ref:`a_notes` pages.
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. Syntax highlighting is provided to make it easier to verify that the markdown tags are keywords. Syntax highlighting is provided to make it easier to verify that the markdown tags are
used correctly. This is covered on the :ref:`a_ui` page. used correctly. The syntax is covered on the :ref:`a_ui` page.
.. _a_intro_design: .. _a_intro_design:
@@ -31,8 +31,8 @@ at the same time provide a complete set of features needed for writing a novel.
.. note:: .. note::
novelWriter is not intended to be a full office type word processor. It doesn't support images, novelWriter is not intended to be a full office type word processor. It doesn't support images,
links, tables, and its formatting is limited to headers, and bold, italicised and strikethrough links, tables, and other complex structure and objects often needed for such document. Formatting
text. is limited to headers, and bold, italicised and strikethrough text.
The main window does not have a toolbar like most other applications do. This reduces clutter, and The main window does not have a toolbar like most 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
@@ -40,11 +40,14 @@ formatting features supported are available through convenient keyboard shortcut
available in the main menu. A full list of shortcuts can be found in the :ref:`a_ui_shortcuts` available in the main menu. A full list of shortcuts can be found in the :ref:`a_ui_shortcuts`
section. section.
In addition, novelWriter offers a :guilabel:`Focus Mode` where all the user interface elements other
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` a dark theme is provided, and can be enabled in :guilabel:`Preferences` from the :guilabel:`Tools`
menu. A number of syntax highlighting themes are also available in :guilabel:`Preferences`. A set of menu. A number of syntax highlighting themes are also available in :guilabel:`Preferences`. A set of
icon themes in colour and greyscale is also offered. The icons are based on the Typicon_ icon set by icon themes in colour and greyscale are also offered. The icons are based on the Typicon_ icon set
Stephen Hutchings. designed by Stephen Hutchings.
The main window is split in two, or optionally three, panels. The left-most contains the project The main window is split in two, or optionally three, panels. The left-most contains the project
tree and all the files in your project. The second panel is the document editor, and the optional tree and all the files in your project. The second panel is the document editor, and the optional
@@ -53,6 +56,7 @@ third panel is a document viewer which can view any document in your project.
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 project files, this outline can be quite different than your project tree. you structure your novel project files, this outline can be quite different than your project tree.
Your project tree lists files, your Outline tree lists the structure of the novel itself.
.. _Typicon: https://github.com/stephenhutchings/typicons.font .. _Typicon: https://github.com/stephenhutchings/typicons.font
@@ -62,20 +66,21 @@ you structure your novel project files, this outline can be quite different than
Project Layout Project Layout
============== ==============
You are free to structure your project files as you wish in subfolders and split between files. All You are free to structure your project files as you wish in subfolders, and split the text between
that matters to novelWriter is the linear order they appear in the project tree (top to bottom). The files in whatever way suits you. All that matters to novelWriter is the linear order the files
chapters, scenes and sections of the novel are determined by the headings within those files. appear at in the project tree (top to bottom). The chapters, scenes and sections of the novel are
determined by the headings within those files.
The four heading levels (**H1** to **H4**) are treated as follows: The four heading levels (**H1** to **H4**) are treated as follows:
* **H1** is used for the book title, and for partitions. * **H1** is used for the book title, and for partitions.
* **H2** is used for chapter tiles. * **H2** is used for chapter tiles.
* **H3** is reserved for scene titles. * **H3** is used for scene titles optionally replaced by separators.
* **H4** is for section titles within scenes, if such granularity is needed. * **H4** is for section titles within scenes, if such granularity is needed.
This header level structure is only considered on novel files. For the files designated as project This header level structure is only taken into account for novel files. For the files designated as
notes, the usage of headers imply no structural meaning, and the user is free to do whatever they project notes, the header levels imply no structural meaning, and the user is free to do whatever
want. See the :ref:`a_struct` page for more details. they want. See the :ref:`a_struct` page for more details.
.. _a_intro_export: .. _a_intro_export:
@@ -89,11 +94,16 @@ markdown (requires Qt 5.14), and to a basic Open Document.
In addition, printing and printing to PDF is also possible. The best supported export format is In addition, printing and printing to PDF is also possible. The best supported export format is
HTML, which can be imported or converted by a number of other tools like Pandoc, or simply imported HTML, which can be imported or converted by a number of other tools like Pandoc, or simply imported
into Libre Office and similar. into Libre Office Writer and similar word processors.
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
Python dictionary with a couple of lines of code. See the :ref:`a_export` page for more details. Python dictionary with a couple of lines of code.
A number of filter options can be applied to the produced document, allowing you to export a draft
manuscript, a reference document of notes, an outline based on chapter and scene titles with a
synopsis each, and so on. See the :ref:`a_export` page for more details on export features and
formats.
.. _a_intro_screenshots: .. _a_intro_screenshots:
+8 -7
View File
@@ -4,9 +4,10 @@
Supporting Files (Notes) Supporting Files (Notes)
************************ ************************
Supporting files, or notes, are any file stored in root folders that are not a part of the novel novelWriter doesn't have a database and compicated forms to fill in all details about plot elements,
story itself. These files are intended for summaries and outlines of the various plot elements, characters, and all sorts of additional information that isn't a part of the novel text itself.
characters, locations, and so on, of the novel. Instead, all such information is saved in notes. The relation between all these additional elements
is extracted from these files by the project indexer based on the tags and references you set.
These files are not required, but making at least minimal files for each such plot element, and add These files are not required, but making at least minimal files for each such plot element, and add
a tag to them, makes it possible to use the :guilabel:`Outline` feature to see how each element a tag to them, makes it possible to use the :guilabel:`Outline` feature to see how each element
@@ -21,8 +22,8 @@ Tags in Notes
Each new heading in a note file can have a tag associated with it. The format of a tag is Each new heading in a note file can have a tag associated with it. The format of a tag is
``@tag: tagname``, where tagname is a unique identifier. Tags can then be referenced in the novel ``@tag: tagname``, where tagname is a unique identifier. Tags can then be referenced in the novel
files, or other note files, and will show up in the outline view and in the back-reference panel files, or cross-referenced in other note files, and will show up in the outline view and in the
when a document is being viewed. back-reference panel when a document is being viewed.
The syntax highlighter will alert the user that the keyword is correctly used and that the tag is The syntax highlighter will alert the user that the keyword is correctly used and that the tag is
allowed, that is, the tag is unique. Duplicate tags should be detected as long as the index is up allowed, that is, the tag is unique. Duplicate tags should be detected as long as the index is up
@@ -34,10 +35,10 @@ there for the writer to use in whatever way they wish. Of course, the content of
exported if you want to compile a single document of all your notes, or include them in an outline. exported if you want to compile a single document of all your notes, or include them in an outline.
A note file can also reference other note files in the same way novel files do. When the note file A note file can also reference other note files in the same way novel files do. When the note file
is opened in the view pane, these become clickable links, making it easier to follow connections in is opened in the view panel, these become clickable links, making it easier to follow connections in
the plot. Note files don't show up in the outline view though, so referencing between notes is only the plot. Note files don't show up in the outline view though, so referencing between notes is only
meaningful if you want to be able to click-navigate between them. meaningful if you want to be able to click-navigate between them.
.. tip:: .. tip::
If you cross-reference between notes as well, and export your project as an HTML file using the If you cross-reference between notes as well, and export your project as an HTML file using the
export tool, the cross-references also become clickable in the exported document. export tool, the cross-references become clickable in the exported document.
+66 -47
View File
@@ -5,7 +5,7 @@ Novel Projects
************** **************
A novelWriter project requires a dedicated folder for storing its files on the local file system. A novelWriter project requires a dedicated folder for storing its files on the local file system.
See the :ref:`a_tech` page for further details. See the :ref:`a_tech` page for further details on how files are organised.
A new project can be created from the :guilabel:`Project` menu by selecting :guilabel:`New Project`. A new project can be created from the :guilabel:`Project` menu by selecting :guilabel:`New Project`.
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`
@@ -23,64 +23,77 @@ Project Roots
Projects are structured into a set of top level folders called *root folders*. They are visible in 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 project tree at the left side of the main window.
The core novel files go into a root folder of type "Novel". Other supporting files go into the other The core novel files go into a root folder of type :guilabel:`Novel`. Other supporting files go into
root folders. These other root folder types are intended for your notes on the various elements of the other root folders. These other root folder types are intended for your notes on the various
your story. Using these is of course entirely optional. elements of your story. Using these is of course entirely optional.
A new project will not have all of the root folders present, but you can add the ones you want from A new project will not have all of the root folders present, but you can add the ones you want from
:guilabel:`Create Root Folder` in the :guilabel:`Project` menu. :guilabel:`Create Root Folder` in the :guilabel:`Project` menu.
The root folders are intended for the following use, but aside from the Novel folder, no The root folders are intended for the following use, but aside from the :guilabel:`Novel` folder, no
restrictions are enforced by the application. You can use them however you want. restrictions are enforced by the application. You can use them however you want.
.. note:: :guilabel:`Novel`
The root folders correspond to the categories of tags that can be used.
See the :ref:`a_struct` page for further details.
Novel
This is the root folder of all text that goes into the final novel. This class of files have This is the root folder of all text that goes into the final novel. This class of files have
other rules and features than other files in the project. See the :ref:`a_struct` page for more other rules and features than other files in the project. See the :ref:`a_struct` page for more
details. details.
Plot :guilabel:`Plot`
This is the root folder where main plots can be outlined. It is optional, but adding at least This is the root folder where main plots can be outlined. It is optional, but adding at least
dummy files can be useful in order to tag plot elements for the Outline View. Tags in this folder dummy files can be useful in order to tag plot elements for the Outline view. Tags in this folder
can be references using the ``@plot`` keyword. can be references using the ``@plot`` keyword.
Characters :guilabel:`Characters`
Character files go in this root folder. These are especially important if one wants to use the Character files go in this root folder. These are especially important if one wants to use the
Outline View to see which character appears where, and which part of the story is told from a Outline view to see which character appears where, and which part of the story is told from a
specific character's point-of-view. Tags in this folder can be references using the ``@pov`` specific character's point-of-view. Tags in this folder can be references using the ``@pov``
keyword for point-of-view characters, or the ``@char`` keyword for other characters. keyword for point-of-view characters, or the ``@char`` keyword for other characters.
Locations :guilabel:`Locations`
The locations folder is for various scene locations that you want to track. Tags in this folder The locations folder is for various scene locations that you want to track. Tags in this folder
can be references using the ``@location`` keyword. can be references using the ``@location`` keyword.
Timeline :guilabel:`Timeline`
If the story has multiple plot timelines or jumps in time within the same plot, this class of If the story has multiple plot timelines or jumps in time within the same plot, this class of
files can be used to track this. Tags in this folder can be references using the ``@time`` files can be used to track this. Tags in this folder can be references using the ``@time``
keyword. keyword.
Objects :guilabel:`Objects`
Important objects in the story, for instance important objects that change hands often, can be 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. tracked here. Tags in this folder can be references using the ``@object`` keyword.
Entities :guilabel:`Entities`
Does your plot have many powerful organisations or companies? Or other entities that are part of 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`` the plot? They can be organised here. Tags in this folder can be references using the ``@entity``
keyword. keyword.
Custom :guilabel:`Custom`
The custom root folder can be used for tracking anything else not covered by the above options. 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. Tags in this folder can be references using the ``@custom`` keyword.
For more information about the tags listed, see :ref:`a_struct_tags`. 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:: .. tip::
Deleted files will be moved into a special :guilabel`Trash` root folder. Files in the trash You can rename root folders to whatever you want. The first character in the :guilabel:`Flags`
folder can then be deleted permanently, either individually, or by emptying the trash from the column will still indicate what type they are, and so will the icon if you are using one of the
menu. Typicons icon sets.
.. _a_proj_roots_del:
Deleted Documents
-----------------
Deleted document files will be moved into a special :guilabel:`Trash` root folder. Files in the
trash folder can then be deleted permanently, either individually, or by emptying the trash from the
menu.
Folders and root folders can only be deleted when they are empty. Recursive deletion is not
supported.
A document file or a folder can be deleted from the :guilabel:`project` menu, or by pressing
:kbd:`Ctrl`:kbd:`Del`.
.. _a_proj_roots_orph: .. _a_proj_roots_orph:
@@ -97,7 +110,7 @@ Files that are discovered in the project folder, but not in the project, will be
project tree in a special :guilabel:`Orphaned Items` root folder next time the application is project tree in a special :guilabel:`Orphaned Items` root folder next time the application is
started. These orphaned files will not have most of the meta data preserved, although novelWriter started. These orphaned files will not have most of the meta data preserved, although novelWriter
will try to restore the file label it had in the project tree. Other information will have to be set will try to restore the file label it had in the project tree. Other information will have to be set
again, and the files moved back to the correct location in the project. again, and the files moved back to the correct location in the project tree.
.. _a_proj_roots_lock: .. _a_proj_roots_lock:
@@ -107,18 +120,20 @@ Project Lockfile
To prevent orphaned files caused by file conflicts when novelWriter projects are synced with file To prevent orphaned files 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 synchronisation tools, a project lockfile is written to the project folder. If you try to open a
project which has such a file, you will be presented with a warning, and some information about project which has such a file present, you will be presented with a warning, and some information
where else novelWriter thinks the project is also open. 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.
You will be give the option to ignore this warning, and continue opening the project. However, if
multiple instances are in fact editing the same project, you are likely to cause inconsistencies and
create diverging project files, potentially resulting in loss of data and orphaned files.
.. note:: .. note::
If, for some reason, novelWriter crashes, the lock file may remain even if there are no other 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 instances keeping the project open. In such a case it is safe to ignore the lock file warning
when re-opening the project. 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.
.. _a_proj_roots_dirs: .. _a_proj_roots_dirs:
@@ -127,11 +142,10 @@ Using Folders in the Project Tree
Folders, aside from root folders, have no structural significance to the project. When novelWriter Folders, aside from root folders, have no structural significance to the project. When novelWriter
is processing the files in the novel, like for instance during export, these folders are ignored. is processing the files in the novel, like for instance during export, these folders are ignored.
Only the order of the text files themselves matter. Only the order of the document files themselves matter.
The folders are there purely as a way for the user to organise the files in meaningful sections and The folders are there purely as a way for the user to organise the files in meaningful sections and
to be able to close them in the Project Tree when you're not working on those files, and thus reduce to be able to collapse and hide them in the project tree when you're not working on those files.
clutter.
.. tip:: .. tip::
You can use folders to sort your scene files into chapters. You will then need to add a chapter You can use folders to sort your scene files into chapters. You will then need to add a chapter
@@ -155,6 +169,7 @@ details.
You can also select whether the file is by default included when building the project. This setting You can also select whether the file is by default included when building the project. This setting
can be overridden in the :guilabel:`Build Novel Project` tool if you wish to include them anyway. can be overridden in the :guilabel:`Build Novel Project` tool if you wish to include them anyway.
This is covered in the :ref:`a_export_files` section.
.. _a_proj_files_counts: .. _a_proj_files_counts:
@@ -167,7 +182,8 @@ file defined by a header. The word count, and change of words in the current ses
in the footer of any document open in the editor, and all stats are shown in the details panel below 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 file selected. the project tree for any file selected.
The word counts are not updated in real time, but runs in the background every five seconds. The word counts are not updated in real time, but runs in the background every five 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 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 values in the project tree, which again depend on an up to date index. If the counts seem wrong, a
@@ -187,16 +203,18 @@ The :guilabel:`Project Settings` can be accessed from the :guilabel:`Project` me
Settings Tab Settings Tab
------------ ------------
The Settings tab holds the project title and author settings. The :guilabel:`Settings` tab holds the project title and author settings.
Working Title can be set to a different title than the Book Title. The difference between them is The :guilabel:`Working Title` can be set to a different title than the :guilabel:`Book Title`. The
simply that the Working Title is used for the GUI (main window title) and for generating the backup difference between them is simply that the :guilabel:`Working Title` is used for the GUI (main
files. The intention is that the working title should remain unchanged throughput the project, window title) and for generating the backup files. The intention is that the :guilabel:`Working
otherwise the name of exported files and backup files may change too. Title` should remain unchanged throughput the project, otherwise the name of exported files and
backup files may change too.
The Book Title amd Book Authors settings are currently not used for anything, so setting then is The :guilabel:`Book Title` and :guilabel:`Book Authors` settings are currently not used for
just for the benefit of the author. Future, planned features will be using them, and they are anything, so setting then is just for the benefit of the author. Future, planned features will be
exported on some export formats in the Build Novel Project tool. using them, and they are exported on some export formats in the :guilabel:`Build Novel Project`
tool.
Details Tab Details Tab
@@ -207,8 +225,8 @@ project is saved, how may times it has been saved, how many folders and files it
many words exist in the entire project. many words exist in the entire project.
Status and Importance Tabs Status and Importance Tabs
--------------------------- --------------------------
Each file of type "Novel" can be given a status level, signified by a coloured icon and each file of Each file of type "Novel" can be given a status level, signified by a coloured icon and each file of
the remaining types can be given an importance level. These are colour coded icons and labels that the remaining types can be given an importance level. These are colour coded icons and labels that
@@ -244,7 +262,7 @@ Backup
====== ======
An automatic backup system is built into novelWriter. In order to use it, a backup path to where the 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 to be provided in Preferences. backup files are to be stored must to be provided in :guilabel:`Preferences`.
Backups can be run automatically when a project is closed, which also implies it is run when the Backups can be run automatically when a project is closed, which also implies it is run when the
application is closed. Backups are date stamped zip files of the entire project folder, and are application is closed. Backups are date stamped zip files of the entire project folder, and are
@@ -252,7 +270,8 @@ stored in a subfolder of the backup path with the same name as the project :guil
set in :ref:`a_proj_settings`. set in :ref:`a_proj_settings`.
The backup feature, when configured, can also be run manually from the :guilabel:`Tools` menu. The backup feature, when configured, can also be run manually from the :guilabel:`Tools` menu.
It is also possible to dissable automated backup for a given project in :guilabel:`Project Settings`. It is also possible to dissable automated backup for a given project in :guilabel:`Project
Settings`.
.. note:: .. note::
For the backup to be able to run, the :guilabel:`Working Title` must be set in :guilabel:`Project For the backup to be able to run, the :guilabel:`Working Title` must be set in :guilabel:`Project
+17 -9
View File
@@ -8,6 +8,10 @@ This is a brief guide to how you can get novelWriter running on your computer. T
currently supported by the developer. Packages may also be available in other package managers, but currently supported by the developer. Packages may also be available in other package managers, but
those are not managed by me. those are not managed by me.
As novelWriter matures, more options for how to install it and get it running will be added. At the
present time, the process is best suited for people used to work with Python projects from command
line.
.. _a_started_install: .. _a_started_install:
@@ -60,6 +64,8 @@ The following Python packages are required to run novelWriter:
* ``pyqt5``, needed for connecting with the Qt5 libraries. * ``pyqt5``, needed for connecting with the Qt5 libraries.
* ``lxml``, needed full XML support. * ``lxml``, needed full XML support.
You can of course also install these packages from your operating system's package repository.
.. note:: .. note::
Sometimes the SVG graphics package for PyQt5 must be installed separately. It is usually called Sometimes the SVG graphics package for PyQt5 must be installed separately. It is usually called
something like ``python3-pyqt5.qtsvg``. something like ``python3-pyqt5.qtsvg``.
@@ -68,8 +74,9 @@ PyQt/Qt should be at least 5.2.1, but ideally 5.10 or higher for nearly all feat
Exporting to standard Markdown, for instance, requires PyQt/Qt 5.14. Searching using regular Exporting to standard Markdown, for instance, requires PyQt/Qt 5.14. Searching using regular
expressions requires 5.3, and for full Unicode support, 5.13. expressions requires 5.3, and for full Unicode support, 5.13.
There are no known minimum for package ``lxml``, but the code was originally written with 4.2, There are no known minimum version requirement for package ``lxml``, but the code was originally
which is therefore set as the minimum. It may work on lower versions. You have to test it. written with 4.2, which is therefore set as the minimum. It may work on lower versions. You have to
test it.
The spell checking extension is optional, but recommended: The spell checking extension is optional, but recommended:
@@ -81,8 +88,8 @@ works fine.
.. _a_started_depend_docs: .. _a_started_depend_docs:
Building Documentation Building the Documentation
---------------------- --------------------------
If you installed novelWriter from a package, the documentation should be included. If you're running If you installed novelWriter from a package, the documentation should be included. If you're running
novelWriter from the source code, a local copy of this documentation can be generated. It requires novelWriter from the source code, a local copy of this documentation can be generated. It requires
@@ -107,12 +114,13 @@ from the root source folder.
The setup script will copy the generated files into the ``nw/assets/help`` folder, and novelWriter The setup script will copy the generated files into the ``nw/assets/help`` folder, and novelWriter
will detect the presence of the files and redirect the menu help entry to open help locally instead will detect the presence of the files and redirect the menu help entry to open help locally instead
of send the user to the website. of sending the user to the website. Pressing the :kbd:`F1` key will in any case try to open help
locally first, then send you to the website as a fallback.
.. note:: .. note::
In order for the local version of help to work, the Qt Assistant must be installed on the local In order for the local version of help to work, the Qt Assistant must be installed on the local
computer. If it isn't available, or novelWriter cannot find it, the help feature will fall back computer. If it isn't available, or novelWriter cannot find it, the help feature will fall back
to redirecting to the website. to redirecting you to the documentation website.
.. _a_started_running: .. _a_started_running:
@@ -136,7 +144,7 @@ encountered. To list all options, run:
python novelWriter.py --help python novelWriter.py --help
There are also a couple of install scripts in the assets folder which will assist in setting up There are also a couple of install scripts in the assets folder which will assist in setting up a
launch icon and the novelWriter project file mimetype for Gnome desktops on Linux. Currently, launch icon and the novelWriter project file mimetype for Gnome desktops on Linux. Currently,
there's one script for Debian and one for Ubuntu. there's one script for Debian and one for Ubuntu.
@@ -163,8 +171,8 @@ If successful, the executable will be in the "dist" folder.
Additional Instructions for Windows Additional Instructions for Windows
----------------------------------- -----------------------------------
If you don't have Python installed, you can download it from the python.org website. If you don't have Python installed, you can download it from the python.org website. The installers
The installers for Windows are available at https://www.python.org/downloads/windows/ for Windows are available at https://www.python.org/downloads/windows/
novelWriter should work with Python 3.6 or higher, and the executable installer is the easiest to novelWriter should work with Python 3.6 or higher, and the executable installer is the easiest to
install. install.
+96 -81
View File
@@ -6,9 +6,8 @@ Novel Structure
This section covers the structure of a novel project. This section covers the structure of a novel project.
.. note:: This section concerns files under the Novel type root folder only. There are some restrictions
This section concerns files under the Novel type root folder only. There are some restrictions and features that only applies to these type of files.
and features that only applies to these type of files.
.. _a_struct_heads: .. _a_struct_heads:
@@ -17,37 +16,39 @@ Importance of Headings
====================== ======================
Subfolders under root folders have no impact on the structure of the novel itself. The structure is Subfolders under root folders have no impact on the structure of the novel itself. The structure is
instead dictated by the heading level of the headers within the text files. Four levels of headings instead dictated by the heading level of the headers within the document files.
are supported, signified by the number of hashes preceding the title. See also the :ref:`a_ui_md`
section. Four levels of headings are supported, signified by the number of hashes preceding the title. See
also the :ref:`a_ui_md` section for more details about the markdown syntax.
.. note:: .. note::
The header levels are not only important when generating the exported novel file, but they are The header levels are not only important when generating the exported novel file, they are also
also used by the indexer when building the outline tree in the :guilabel:`Outline` tab. Each used by the indexer when building the outline tree in the :guilabel:`Outline` tab. Each heading
heading also starts a new region where new references to tags can be set. also starts a new region where new references to tags can be set.
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:
``# Header1`` ``# Header1``
Header level 1 signifies that the text refers to either the novel title or the name of a top Header level one signifies that the text refers to either the novel title or the name of a top
level partition when you want to split the manuscript up into books, parts, or acts. level partition when you want to split the manuscript up into books, parts, or acts.
``## Header2`` ``## Header2``
Header level 2 signifies a chapter level partition. Each time you want to start a new chapter, Header level two signifies a chapter level partition. Each time you want to start a new chapter,
you must add such a heading. If you chose to split your manuscript up into one file per scene, you must add such a heading. If you choose to split your manuscript up into one file per scene,
you need a single chapeter file with just the heading. You can of course also add a synopsis and you need a single chapeter file with just the heading. You can of course also add a synopsis and
tags and references to the chapter file. If you want to open the chaper with a quote, this is reference keywords to the chapter file. If you want to open the chaper with a quote, this is
also where you'd put the text for that. also where you'd put the text for that.
``### Header3`` ``### Header3``
Header level 3 signifies a scene level partition. The title itself can be replaced with a scene Header level three signifies a scene level partition. The title itself can be replaced with a
separator or just skipped entirely when you export your manuscript. scene separator or just skipped entirely when you export your manuscript.
``#### Header4`` ``#### Header4``
Header level 4 signifies a sub-scene level partition (section). These can be useful if you want Header level four signifies a sub-scene level partition, usually called just a section in the
to change tag references mid-scene, like if you change the point of view character. You are free documentation und user interface. These can be useful if you want to change tag references
to use sections as you wish, and can filter the titles out of the final manuscript just like with mid-scene, like if you change the point-of-view character. You are free to use sections as you
wish also in novel files, and can filter the titles out of the final manuscript just like with
scene titles. scene titles.
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
@@ -60,53 +61,53 @@ a draft manuscript. See the :ref:`a_export` page for more details.
Tag References Tag References
============== ==============
Each partition, indicated by a heading, can contain references to tags set in the supporting files Each text section indicated by a heading of any level, can contain references to tags set in the
of the project. The references are gathered by the indexer and used to generate the outline view on supporting files of the project. The references are gathered by the indexer and used to generate the
the :guilabel:`Outline` tab of how the different parts of the novel are connected. outline view on the :guilabel:`Outline` tab of how the different parts of the novel are connected.
References and tags are also clickable in the document editor and viewer, making it easy to navigate References and tags are also clickable in the document editor and viewer, making it easy to navigate
reference notes while writing. between reference notes while writing. Clicked links are always opened in the view panel.
References are set as keyword and a list of corresponding tags. The valid keywords are listed below. References are set as a keyword and a list of corresponding tags. The valid keywords are listed
The format of a meta line is ``@keyword: value1, [value2] ... [valueN]``. All keywords allow below. The format of a reference line is ``@keyword: value1, [value2] ... [valueN]``. All keywords
multiple values. allow multiple values.
``@pov`` ``@pov``
The point-of-view character for the current section. The target must be a note tag in the The point-of-view character for the current section. The target must be a note tag in the
character type root folder. :guilabel:`Character` type root folder.
``@char`` ``@char``
Other characters in the current section. The target must be a note tag in a character type root Other characters in the current section. The target must be a note tag in a :guilabel:`Character`
folder. This should not include the point-of-view character. type root folder. This should not include the point-of-view character(s).
``@plot`` ``@plot``
The plot or subplot touched by the current section. The target must be a note tag in a plot type The plot or subplot advanced in the current section. The target must be a note tag in a
root folder. :guilabel:`Plot` type root folder.
``@time`` ``@time``
The timelines touched by the current section. The target must be a note tag in a timeline type The timelines touched by the current section. The target must be a note tag in a
root folder. :guilabel:`Timeline` type root folder.
``@location`` ``@location``
The location the current section takes place in. The target must be a note tag in a locations The location the current section takes place in. The target must be a note tag in a
type root folder. :guilabel:`Locations` type root folder.
``@object`` ``@object``
Objects present in the current section. The target must be a note tag in a object type root Objects present in the current section. The target must be a note tag in an :guilabel:`Object`
folder. type root folder.
``@entity`` ``@entity``
Entities present in the current section. The target must be a note tag in an entities type root Entities present in the current section. The target must be a note tag in an :guilabel:`Entities`
folder. type root folder.
``@custom`` ``@custom``
Custom references in the current section. The target must be a note tag in a custom type root Custom references in the current section. The target must be a note tag in a :guilabel:`Custom`
folder. type root folder.
The syntax highlighter will alert the user that the tags and references are used correctly, and that The syntax highlighter will alert the user that the tags and references are used correctly, and that
the tags referenced exist. the tags referenced exist.
The highlighter may be mistake if the index of defined tags is out of date. If so, press :kbd:`F9` The highlighter may be mistaken if the index of defined tags is out of date. If so, press :kbd:`F9`
to regenerate it, or select :guilabel:`Rebuild Index` from the :guilabel:`Tools` menu. In general, to regenerate it, or select :guilabel:`Rebuild Index` from the :guilabel:`Tools` menu. In general,
the index for a file is regenerated when a file is saved, so this shouldn't normally be necessary. the index for a file is regenerated when a file is saved, so this shouldn't normally be necessary.
@@ -122,18 +123,19 @@ and page breaks. The layout for each file is indicated as the last set of charac
:guilabel:`Flags` column of the project tree. :guilabel:`Flags` column of the project tree.
Not all layout types are actually treated differently, but they also help to indicate what each file Not all layout types are actually treated differently, but they also help to indicate what each file
is for in your project. The "Book" layout is a generic novel file layout that in formatting is is for in your project. The :guilabel:`Book` layout is a generic novel file layout that is formatted
identical to "Chapter" and "Scene", but may help to indicate what files do in your project. identically to :guilabel:`Chapter` and :guilabel:`Scene` layout files, but may help to indicate what
files do in your project.
You can for instance lay out your project using Book files for each act, and then later split those You can for instance lay out your project using :guilabel:`Book` files for each act, and then later
into chapter or scene files by using the :guilabel:`Split Document` tool. Scenes can also be split those into chapter or scene files by using the :guilabel:`Split Document` tool. Scenes can
contained within chapter files, but you lose the drag and drop feature that comes with having them also be contained within :guilabel:`Chapter` type files, but you lose the drag and drop feature that
in separate files if you organise them this way. comes with having them in separate files if you organise them this way.
Some layouts *do* have implications on how the project is exported. Files with layout "Title" and Some layouts *do* have implications on how the project is exported. Files with layout
"Partition" have all headings and text centred, while the "Unnumbered" layout disables the automatic :guilabel:`Title Page` and :guilabel:`Partition` have all headings and text centred, while the
chapter numbering feature for everything contained within it. The latter is convenient for Prologue :guilabel:`Unnumbered` layout disables the automatic chapter numbering feature for everything
and Epilogue type chapters. contained within it. The latter is convenient for Prologue and Epilogue type chapters.
All of the above layout formats are only usable in the Novel root folder. Files that are not a part All of the above layout formats are only usable in the Novel root folder. Files that are not a part
of the novel itself should have the Note layout. These files are not getting any special formatting, of the novel itself should have the Note layout. These files are not getting any special formatting,
@@ -142,42 +144,55 @@ in the project, also in the Novel root folder.
Below is an overview of all available layout formats. Below is an overview of all available layout formats.
Title Page :guilabel:`Title Page`
The title page layout. The title should be formatted as a heading level one. All text is automatically centred on exports. The title page layout. The title should be formatted as a heading level one. All text is
automatically centred on exports.
Plain Page :guilabel:`Plain Page`
A plain page layout useful for instance for front matter pages. Heading levels are ignored for this layout format, and so are A plain page layout useful for instance for front matter pages. Heading levels are ignored for
formatting options like Justify Text. The page is exported with a page break before it. this layout format, and so are formatting options like :guilabel:`Justify Text`. The page is
exported with a page break before it.
Book :guilabel:`Book`
This is the generic novel file format that in principle can be used for all novel files. Since the internal structure of the This is the generic novel file format that in principle can be used for all novel files. Since
novel is controlled by the heading levels, this file will produce the same result as a collection of Partition, Chapter and Scene the internal structure of the novel is controlled by the heading levels, this file will produce
type files. However, it does not provide the functionality of the Unnumbered layout format. the same result as a collection of :guilabel:`Partition`, :guilabel:`Chapter` and
:guilabel:`Scene` type files. However, it does not provide the functionality of the
:guilabel:`Unnumbered` layout format.
Partition :guilabel:`Partition`
A partition can be used to split the novel into parts. Partition titles are indicated with a level one heading. You can also add A partition can be used to split the novel into parts. Partition titles are indicated with a
text and meta data to the page. The Partition file layout will in addition force a page break before the heading, and centre all level one heading. You can also add text and meta data to the page. The :guilabel:`Partition`
content on the page. file layout will in addition force a page break before the heading, and centre all content on the
page.
Chapter :guilabel:`Chapter`
Signifies the start of a new chapter. If the text itself is contained in scene files, these files should only contain the title, Signifies the start of a new chapter. If the text itself is contained in scene files, these files
comments, synopsis, and tag references for characters, plot, etc. The heading for chapters should be level two. If you need an should only contain the title, comments, synopsis, and tag references for characters, plot, etc.
opening text, like a quote or other leading text before the first scene, this is also where you'd want to add this text. The heading for chapters should be level two. If you need an opening text, like a quote or other
leading text before the first scene, this is also where you'd want to add this text.
Unnumbered :guilabel:`Unnumbered`
Same as Chapter, but when exporting the files and automatic chapter numbering is enabled, this file will not receive a number. Same as :guilabel:`Chapter`, but when exporting the files and automatic chapter numbering is
This makes the layout suitable for Prologue and Epilogue type chapters. enabled, this file will not increment the chapeter number. It also has a separate title
formatting setting. This makes the layout suitable for Prologue and Epilogue type chapters.
Scene :guilabel:`Scene`
A scene file. This file should have a header of level three. Further sections can have headers of level four, but there are no A scene file. This file should have a header of level three. Further sections can have headers
file layout specifically for sections. of level four, but there are no file layout specifically for sections.
Note :guilabel:`Note`
A generic file that is optionally ignored when the novel is exported. Use these files for descriptions of content in the A generic file that is optionally ignored when the novel is exported. Use these files for
supporting root folders. Note files can also be added to the Novel root folder if you need to insert notes there. Note file descriptions of content in the supporting root folders. Note files can also be added to the Novel
headers receive no formatting when building the project. They are always exported as-is. root folder if you need to insert notes there. Note file headers receive no special formatting
when building the project. They are always exported as-is.
.. note:: .. note::
The layout granularity is entirely optional. In principle, you can write the entire novel in a single file with layout "Book". The layout granularity is entirely optional. In principle, you can write the entire novel in a
You can also have a single file per chapter if that suits you better. The :guilabel:`Outline` will show your structure of single file with layout :guilabel:`Book`. You can also have a single file per chapter if that
chapters and scenes regardless of how your files are organised. suits you better. The :guilabel:`Outline` will show your structure of chapters and scenes
regardless of how your files are organised.
.. tip::
You can always start writing with a coarse file layout with one or a few files, and then later
use the split tool to automatically split the files into chapter and scene files.
+14 -7
View File
@@ -12,7 +12,9 @@ How Data is Stored
All novelWriter files are written with utf-8 encoding. Since Python automatically converts Unix line All novelWriter files are written with utf-8 encoding. Since Python automatically converts Unix line
endings to Windows line endings on Windows systems, novelWriter does not make any adaptations to the endings to Windows line endings on Windows systems, novelWriter does not make any adaptations to the
formatting on Windows systems. This is handled entirely by the Python standard library. formatting on Windows systems. This is handled entirely by the Python standard library. Python also
handles this fairly well when working on the same files on both Windows and Unix-based operating
systems.
Main Project File Main Project File
@@ -32,8 +34,9 @@ this file backed up, either through the built-in backup tool, or your own backup
extensions `.json` as JSON files are used to cache the index and various run-time settings and extensions `.json` as JSON files are used to cache the index and various run-time settings and
are generally large files that change often. You'd also want to exclude the ``cache`` folder. are generally large files that change often. You'd also want to exclude the ``cache`` folder.
The project XML file is indent-formatted, suitable for diff tools and version control, although a The project XML file is indent-formatted, suitable for diff tools and version control since most of
timesetamp is set in the meta section on line 2 each time the file is saved. the file will stay static, although a timesetamp is set in the meta section on line 2 each time the
file is saved.
Project Documents Project Documents
@@ -47,6 +50,7 @@ and the file extension ``.nwd``.
If you wish to find the physical location of a file in the project, you can either look it up in the If you wish to find the physical location of a file in the project, you can either look it up in the
project XML file, select :guilabel:`Show File Details` from the :guilabel:`Document` menu when project XML file, select :guilabel:`Show File Details` from the :guilabel:`Document` menu when
having the document open, or look in one of the ``ToC`` files in the root of the project folder. having the document open, or look in one of the ``ToC`` files in the root of the project folder.
The ``ToC`` files have a list of all document files in the project 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
@@ -56,13 +60,13 @@ file label, is only saved in the project XML 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
desired. Just make sure the file remains in utf-8 encoding, otherwise unicode chatracters may become desired. Just make sure the file remains in utf-8 encoding, otherwise unicode chatracters may become
mangled when opened in novelWriter again. mangled when the file is opened in novelWriter again.
The first line of the file contains some meta data starting with the characters ``%%~``. This line The first line of the file contains some meta data starting with the characters ``%%~``. This line
is mainly there to restore some information if it is lost from the project file, and the information is mainly there to restore some information if it is lost from the project file, and the information
may be helpful if you do open the file in an external editor as it contains the file label as the may be helpful if you do open the file in an external editor as it contains the file label as the
last entry. The line can be deleted without any consequences to the rest of the content of the file, last entry. The line can be deleted without any consequences to the rest of the content of the file,
and will be added back next time the file is saved in novelWriter. and will be added back the next time the file is saved in novelWriter.
The File Saving Process The File Saving Process
@@ -71,5 +75,8 @@ The File Saving Process
When saving the project file, or any of the documents, the data is first saved to a temporary file. When saving the project file, or any of the documents, the data is first saved to a temporary file.
If successful, the old data file is removed, and the temporary file becomes the new file. This If successful, the old data file is removed, and the temporary file becomes the new file. This
ensures that the previously saved data is only replaced when the new data has been successfully ensures that the previously saved data is only replaced when the new data has been successfully
saved. For the project XML file, a ``.bak`` file is kept which will always contain the previous saved.
version of the file, although when auto-save is enabled, they may have the same content.
For the project XML file, a ``.bak`` file is kept which will always contain the previous version of
the file, although when auto-save is enabled, they may have the same content. If the opening of a
project file fails, novelWriter will automatically try to open the ``.bak`` file instead.