Merge the remaining old documents into the new structure

This commit is contained in:
Veronica Berglyd Olsen
2025-05-25 16:01:25 +02:00
parent d3fa06dccc
commit 77662f9505
13 changed files with 187 additions and 353 deletions
-20
View File
@@ -1,20 +0,0 @@
.. _docs_features:
************
Introduction
************
.. _docs_features_scene_breaks:
Soft and Hard Scene Breaks
==========================
.. _docs_features_active:
Active and Inactive Documents
=============================
.. _docs_features_status:
Document Status Labels
======================
+1 -1
View File
@@ -54,6 +54,7 @@ storage for robustness.
:caption: The User Interface
:hidden:
user_interface/main_window
user_interface/projects
user_interface/editor_viewer
user_interface/split_and_merge
@@ -64,7 +65,6 @@ storage for robustness.
:caption: Additional Features
:hidden:
features/introduction
features/shortcuts
features/breaks_and_spaces
features/story_structure
+42
View File
@@ -4,9 +4,51 @@
How Data is Stored
******************
.. _version control: https://en.wikipedia.org/wiki/Version_control
This chapter contains details of how novelWriter stores and handles the project data.
Overview
========
The files of a novelWriter project are stored in a dedicated project folder. The project structure
is kept in a file at the root of this folder called ``nwProject.nwx``. All the document files and
associated meta data are stored in other folders below the project folder.
This way of storing data was chosen for several reasons.
Firstly, all the text you add to your project is saved directly to your project folder in separate
files. Only the project structure and the text you are currently editing is stored in memory at any
given time, which means there is a smaller risk of losing data if the application or your computer
crashes.
Secondly, having multiple small files means it is very easy to synchronise them between computers
with standard file synchronisation tools.
Thirdly, if you use `version control`_ software to track the changes to your project, the file
formats used for the files are well suited. All the JSON documents have line breaks and indents as
well, which makes it easier to track them with version control software.
.. note::
Since novelWriter has to keep track of a bunch of files and folders when a project is open, it
may not run well on some virtual file systems. A file or folder must be accessible with exactly
the path it was saved or created with. An example where this is not the case is the way Google
Drive is mapped on Linux Gnome desktops using gvfs/gio.
.. caution::
You should not add additional files to the project folder yourself. Nor should you, as a rule,
manually edit files within it. If you really must manually edit the text files, e.g. with some
automated task you want to perform, you need to rebuild the Project Index when you open
the project again.
Editing text files in the ``content`` folder is less risky as these are just plain text. Editing
the main project XML file, however, may make the project file unreadable and you may crash
novelWriter and lose project structure information and project settings.
Project Structure
=================
+35 -2
View File
@@ -14,8 +14,8 @@ side of the main window.
The **Project Content** tree populated with example documents.
Each line in the project tree shows the label of each item, its word count (or alternatively
character count), an active/inactive icon (see :ref:`docs_features_active`), and a custom status
icon (see :ref:`docs_features_status`).
character count), an active/inactive icon (see :ref:`docs_usage_project_active`), and a custom
status icon (see :ref:`docs_usage_project_status`).
You can add, view and edit the documents in the project tree by right-clicking on them. Some
features are also located in the buttons along the top next to the **Project Content** label.
@@ -169,3 +169,36 @@ document added to this root folder will show up in the **Add Item** menu in the
toolbar. When selected, a new document is created with its content copied from the chosen template.
.. versionadded:: 2.3
.. _docs_usage_project_active:
Active and Inactive Documents
=============================
A document can be set as "Active" or "Inactive", which alters the icon in the third column. These
are mostly intended for your convenience as they will indicate whether the document is meant to be
included in the manuscript or not. You can think of it as a whole document out-take. It is a less
radical option than to move it to **Archive**.
Inactive documents are by default excluded from your manuscript, but you can override this.
See :ref:`docs_ui_manuscript_selection` for more details.
.. _docs_usage_project_status:
Importance and Status
=====================
Each document or folder in your project can have either a "Status" or "Importance" labels set.
These are labels and icons that you control and define yourself, and novelWriter doesn't use them
for anything. You can modify these labels in **Project Settings**.
See :ref:`docs_ui_projects_settings_status` for more details.
The "Status" labels are intended to tag a novel document as for instance a draft or as completed,
and the "Importance" labels are intended to tag character notes, or other project notes, as for
instance a main, major, or minor character or story element.
Whether a document uses a "Status" or "Importance" label depends on which root folder it lives in.
If it's in a **Novel** type folder, it uses the "Status" label, otherwise it uses an "Importance"
label.
-186
View File
@@ -1,186 +0,0 @@
.. _a_ui_project:
*************
Project Views
*************
This chapter covers in more detail the different project views available in novelWriter.
.. figure:: images/fig_project_tree_detailed.png
The **Project Content** tree as it appears when loading a sample project.
.. _a_ui_tree:
The Project Tree
================
The main window contains a project tree in the left-most panel. It shows the entire structure of
the project, and has four columns.
**Column 1**
The first column shows the icon and label of each folder, document, or note in your project. The
label is not the same as the heading title you set inside the document. However, the document's
label will appear in the header above the document text itself so you know where in the project
an open document belongs. The icon is selected based on the type of item, and for novel
documents, the level of the first heading in the document text.
**Column 2**
The second column shows the word count of the document, or the sum of words of the child items
for folders and documents with sub-documents. If the counts seem incorrect, they can be updated
by rebuilding the `project index` from the **Tools** menu, or by pressing :kbd:`F9`.
**Column 3**
The third column indicates whether the document is considered active or inactive in the project.
You can use this flag to indicate that a document is still in the project, but should not be
considered an active part of it. When you run the **Build Manuscript** tool, you can include or
exclude documents based on this flag. You can change this value from the right-click
`context menu`.
**Column 4**
The fourth column shows the user-defined status or importance labels you've assigned to each
project item. See :ref:`a_ui_tree_status` for more details on how to uses these labels. You can
select these labels from the `context menu`, and define them in **Project Settings**.
Right-clicking an item in the project tree will open a context menu under the cursor, displaying
a selection of actions that can be performed on the selected item.
At the top of the project tree, you will find a set of buttons.
* The first button is a quick links button that will show you a dropdown menu of all the
`root folders<root folder>` in your project. Selecting one will move to that position in
the tree. You can also activate this menu by pressing :kbd:`Ctrl+L`.
* The next two buttons can be used to move items up and down in the project tree. This is the only
way to move root folders.
* The next button opens a dropdown menu for adding new items to the tree. This includes root
folders and template documents. You can also activate this dropdown menu by pressing
:kbd:`Ctrl+N`.
* The last button is a menu of further actions you can apply to the project tree.
Below the project tree you will find a small details panel showing the full information of the
currently selected item. This panel also includes the latest paragraph and character counts in
addition to the word count.
.. tip::
If you want to set the label of a document to be the same as a header within it, you can
right-click a header in the document when it is open in the editor and select
:guilabel:`Set as Document Name` from the context menu.
.. _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 yourself, and novelWriter doesn't use them for anything. To
modify the labels, go to their respective tabs in **Project Settings**.
The "Status" flag is intended to tag a `novel document<novel documents>` as for instance a
draft or as completed, and the "Importance" flag is intended to tag character notes, or other
`project notes`, as for instance a main, major, or minor character or story element.
Whether a document uses a "Status" or "Importance" flag depends on which `root folder` it
lives in. If it's in a **Novel** type folder, it uses the "Status" flag, otherwise it uses an
"Importance" flag.
.. _a_ui_tree_dnd:
Project Tree Drag & Drop
------------------------
The project tree allows drag & drop to allow you to reorder your documents and folders. Moving a
document in the project tree will affect the text's position when you assemble your manuscript in
the **Manuscript Build** tool.
.. versionadded:: 2.2
You can now select multiple items in the project tree by holding down the :kbd:`Ctrl` or
:kbd:`Shift` key while selecting items.
Documents and their folders can be rearranged freely within their root folders. If you move a
**Novel Document** out of a **Novel** folder, it will be converted to a **Project Note**. Notes can
be moved freely between all root folders, but keep in mind that if you move a note into a **Novel**
type root folder, its "Importance" setting will be replaced by a "Status" setting. See
:ref:`a_ui_tree_status`. The old value will not be overwritten though, and should be restored if
you move it back at some point.
Root folders in the project tree cannot be dragged and dropped at all. If you want to reorder them,
you can move them up or down with respect to each other from the arrow buttons at the top of the
project tree, or by pressing :kbd:`Ctrl+Up` or :kbd:`Ctrl+Down` when they are selected.
.. tip::
You can drag and drop documents onto the editor or viewer panel to open them.
.. _a_ui_tree_novel:
The Novel Tree View
===================
.. figure:: images/fig_novel_tree_view.png
A screenshot of the Novel Tree View.
An alternative way to view the project structure is the novel view. You can switch to this view by
selecting the :guilabel:`Novel View` button in the sidebar. This view is a simplified version of
the view in the **Outline View**. 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 view, or add any new documents, as that would
imply restructuring the content of the document files themselves. Any such editing must be done
in the project tree. However, you can add new headings to existing documents, or change
references, which will be updated in this view when the document is saved.
.. _a_ui_outline:
The Novel Outline View
======================
.. figure:: images/fig_outline_view.png
A screenshot of the Novel Outline View.
The project's **Novel Outline View** is available as another view option from the sidebar. 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 representing partitions, chapters, scenes and
sections.
The document containing the heading can also be displayed as a separate column, as well as the line
number where the heading is defined. Double-clicking an entry will open the corresponding document
in the editor and switch to **Project Tree View** mode.
You can select which novel folder to display from the dropdown menu. You can optionally also choose
to show a combination of all novel folders.
.. note::
Since the internal structure of the novel does not depend directly on the folder and document
structure of the project tree, this view will not necessarily look the same, depending on how
you choose to organise your documents. See the :ref:`a_struct` page for more details.
Various meta data and information extracted from `tags<tag>` 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 from
the menu button in the toolbar. The order of the columns can also be rearranged by dragging them to
a different position. You column settings are saved between sessions on a per-project basis.
.. note::
The **Title** column cannot be disabled or moved.
The information viewed in the outline is based on the `project index`. While novelWriter does
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.
The outline view itself can be regenerated by pressing the refresh button. By default, the content
is refreshed each time you switch to this view.
The **Synopsis** column of the outline view takes its information from a specially formatted
comment. See :ref:`docs_usage_comments_synopsis`.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 96 KiB

Before

Width:  |  Height:  |  Size: 243 KiB

After

Width:  |  Height:  |  Size: 243 KiB

Before

Width:  |  Height:  |  Size: 135 KiB

After

Width:  |  Height:  |  Size: 135 KiB

Before

Width:  |  Height:  |  Size: 280 KiB

After

Width:  |  Height:  |  Size: 280 KiB

@@ -1,24 +1,8 @@
.. _a_breakdown:
.. _docs_ui_main:
************
How it Works
************
.. _Fusion: https://doc.qt.io/qt-6/gallery.html
.. _Pandoc: https://pandoc.org/
.. _Open Document: https://en.wikipedia.org/wiki/OpenDocument
.. _Office Open XML: https://en.wikipedia.org/wiki/Office_Open_XML
.. _version control: https://en.wikipedia.org/wiki/Version_control
The main features of novelWriter are listed in the a_intro chapter. In this chapter, we go
into some more details on how they are implemented. This is intended as an overview. Later on in
this documentation these features will be covered in more detail.
.. _a_breakdown_design:
GUI Layout and Design
=====================
***************
The Main Window
***************
The user interface of novelWriter is intended to be as minimalistic as practically possible, while
at the same time provide useful features needed for writing a novel.
@@ -33,25 +17,13 @@ also available in the main menu under **Format**, so you don't have to look up f
every time you need them. For reference, a list of all shortcuts can be found in the
:ref:`docs_features_shortcuts` section.
.. note::
novelWriter is not intended to be a full office type word processor. It doesn't support images,
links, tables, and other complex structures and objects often needed for such documents.
Formatting is limited to headings, in-line basic text formats, text alignment, and a few other
simple features.
On the left side of the main window, you will find a sidebar. This bar has buttons for the standard
views you can switch between, a quick link to the **Build Manuscript** tool, and a set of
project-related tools and quick access to settings at the bottom.
.. versionadded:: 2.2
A number of new formatting options were added in 2.2 to allow for some special formatting cases.
At the same time, a small formatting toolbar was added to the editor. It is hidden by default,
but can be opened by pressing the button in the top--left corner of the editor header.
Project Tree and Editor View
----------------------------
============================
.. figure:: images/fig_project_tree_view.png
@@ -80,8 +52,40 @@ open in the editor.
open them.
Drag & Drop
-----------
The project tree allows drag & drop to allow you to reorder your documents and folders. Moving a
document in the project tree will affect the text's position when you assemble your manuscript in
the **Manuscript Build** tool.
Documents and their folders can be rearranged freely within their root folders. If you move a
**Novel Document** out of a **Novel** folder, it will be converted to a **Project Note**. Notes can
be moved freely between all root folders, but keep in mind that if you move a note into a **Novel**
type root folder, its "Importance" setting will be replaced by a "Status" setting. See
:ref:`docs_usage_project_status` for more details. The old value will not be overwritten though,
and should be restored if you move it back at some point.
Root folders in the project tree cannot be dragged and dropped at all. If you want to reorder them,
you can move them up or down with respect to each other from the arrow buttons at the top of the
project tree, or by pressing :kbd:`Ctrl+Up` or :kbd:`Ctrl+Down` when they are selected.
.. tip::
You can drag and drop documents onto the editor or viewer panel to open them.
.. versionadded:: 2.6
.. tip::
You can now select multiple items in the project tree by holding down the :kbd:`Ctrl` or
:kbd:`Shift` key while selecting items.
.. versionadded:: 2.2
Novel View and Editor View
--------------------------
==========================
.. figure:: images/fig_novel_tree_view.png
@@ -113,25 +117,75 @@ the menu button in the toolbar.
If you click the triangular icon to the right of each item, a tooltip will pop out showing all the
meta data collected for that heading.
.. note::
You cannot reorganise the entries in the novel view, or add any new documents, as that would
imply restructuring the content of the document files themselves. Any such editing must be done
in the project tree. However, you can add new headings to existing documents, or change
references, which will be updated in this view when the document is saved.
Novel Outline View
------------------
==================
.. figure:: images/fig_outline_view.png
A screenshot of the Novel Outline View.
When the application is in **Novel Outline View** mode, the tree, editor and viewer are replaced by
a large table that shows the entire novel structure with all the tags and references listed. Pretty
much all collected meta data is available here in different columns.
a large table that shows the entire novel structure with all the tags and references listed. You
can select which novel folder to display from the dropdown menu. You can optionally choose to show
a combination of all novel folders.
You can select which novel root folder to display from the dropdown box, and you can select which
columns to show or hide from the menu button. You can also rearrange the columns by drag and drop.
The app remembers your column order and sizes between sessions, and for each individual project.
Pretty much all collected meta data is available in this view, and you can select which columns to
display from the menu button. This includes various meta data and information extracted from your
:ref:`docs_usage_tags_refs`. The order of the columns can also be rearranged by dragging them to a
different position. You column settings are saved between sessions on a per-project basis.
.. note::
The **Title** column cannot be disabled or moved.
The information viewed in the outline is based on the project index. While novelWriter does 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.
The outline view itself can be regenerated by pressing the refresh button. By default, the content
is refreshed each time you switch to this view.
The **Synopsis** column of the outline view takes its information from a specially formatted
comment. See :ref:`docs_usage_comments_synopsis`.
Project Search
==============
A global search tool is available from the side bar. It allows you to search through your entire
project. The tool does not provide a replace feature. There is a search and replace tool available
in the document editor that acts on the open document. See :ref:`docs_ui_edit_view_search` for more
details.
.. versionadded:: 2.4
Switching Focus
===============
If the project or novel view does not have focus, pressing :kbd:`Ctrl+T` switches focus to
whichever of the two is visible. If one of them already has focus, the key press will switch
between them instead.
Likewise, pressing :kbd:`Ctrl+E` will switch focus to the document editor or viewer, or if any of
them already have focus, it will switch focus between them,
These two shortcuts make it possible to jump between all these GUI elements without having to reach
for the mouse or touchpad.
See :ref:`docs_features_shortcuts` for more details.
Colour Themes
-------------
=============
By default, novelWriter uses a light colour theme. You can also choose between a standard dark
theme that have neutral colours, or a series of other included themes, from **Preferences**.
@@ -147,99 +201,3 @@ separated because there are a lot more options to choose from for the editor and
If you switch between light and dark mode on the GUI, you should also switch editor theme to
match, otherwise icons may be hard to see in the editor and viewer.
Project Search
--------------
A global search tool is available from the side bar. It allows you to search through your entire
project. The tool does not provide a replace feature. There is a search and replace tool available
in the document editor that acts on the open document.
.. versionadded:: 2.4
Switching Focus
---------------
If the project or novel view does not have focus, pressing :kbd:`Ctrl+T` switches focus to
whichever of the two is visible. If one of them already has focus, the key press will switch
between them instead.
Likewise, pressing :kbd:`Ctrl+E` will switch focus to the document editor or viewer, or if any of
them already have focus, it will switch focus between them,
These two shortcuts make it possible to jump between all these GUI elements without having to reach
for the mouse or touchpad.
.. _a_breakdown_export:
Building a Manuscript
=====================
The project can at any time be assembled into a range of different formats through the
**Build Manuscript** tool. Natively, novelWriter supports `Open Document`_, Microsoft Word Document
(known as `Office Open XML`_), HTML5, and various flavours of Markdown. You can also generate a PDF
document.
The HTML5 format is suitable for conversion by a number of other tools like Pandoc_, or for
importing into word processors if the Open Document or Word Document format isn't suitable. The
Open Document format is supported by most office type applications, so is the Word Document format.
In addition, printing is also possible.
For advanced processing, you can export the content of the project to a JSON file. This is useful
if you want to write your own custom processing script in for instance Python, as the entire novel
can be read into a Python dictionary with a couple of lines of code. The JSON file can be populated
with either HTML formatted text, or with the raw text as typed it into the novel documents.
See :ref:`docs_ui_manuscript` for more details.
.. versionadded:: 2.1
You can now define multiple build definitions in the **Build Manuscript** tool. This allows you
to define specific settings for various types of draft documents, outline documents, and
manuscript formats. See :ref:`docs_ui_manuscript` for more details.
.. _a_breakdown_storage:
Project Storage
===============
The files of a novelWriter project are stored in a dedicated project folder. The project structure
is kept in a file at the root of this folder called ``nwProject.nwx``. All the document files and
associated meta data are stored in other folders below the project folder. For a more technical
description of what all the files mean and how they're organised, see the :ref:`docs_technical_storage` section.
This way of storing data was chosen for several reasons.
Firstly, all the text you add to your project is saved directly to your project folder in separate
files. Only the project structure and the text you are currently editing is stored in memory at any
given time, which means there is a smaller risk of losing data if the application or your computer
crashes.
Secondly, having multiple small files means it is very easy to synchronise them between computers
with standard file synchronisation tools.
Thirdly, if you use `version control`_ software to track the changes to your project, the file
formats used for the files are well suited. All the JSON documents have line breaks and indents as
well, which makes it easier to track them with version control software.
.. note::
Since novelWriter has to keep track of a bunch of files and folders when a project is open, it
may not run well on some virtual file systems. A file or folder must be accessible with exactly
the path it was saved or created with. An example where this is not the case is the way Google
Drive is mapped on Linux Gnome desktops using gvfs/gio.
.. caution::
You should not add additional files to the project folder yourself. Nor should you, as a rule,
manually edit files within it. If you really must manually edit the text files, e.g. with some
automated task you want to perform, you need to rebuild the Project Index when you open
the project again.
Editing text files in the ``content`` folder is less risky as these are just plain text. Editing
the main project XML file, however, may make the project file unreadable and you may crash
novelWriter and lose project structure information and project settings.
@@ -66,6 +66,8 @@ either by double-clicking or by selecting it and pressing the edit button in the
the result, you can close the settings.
.. _docs_ui_manuscript_selection:
Document Selection
------------------
@@ -86,6 +88,9 @@ used to reset the override and return control to the filter settings.
In the figure, the green arrow icon and the blue pin icon indicates which documents are included,
and the red forbidden icon indicates that a document is explicitly excluded.
By default, inactive documents are excluded, but you can override this in the filter settings.
See :ref:`docs_usage_project_active` for more details.
.. _docs_ui_manuscript_head:
+9 -7
View File
@@ -57,8 +57,8 @@ The **Project Settings** can be accessed from the **Project** menu, or by pressi
:kbd:`Ctrl+Shift+,`. This will open a dialog box, with a set of tabs.
Settings Tab
------------
General Settings
----------------
The **Settings** tab holds the project name, author, and language settings.
@@ -77,8 +77,10 @@ menu.
You can also override the automatic backup setting for the project if you wish.
Status and Importance Tabs
--------------------------
.. _docs_ui_projects_settings_status:
Status and Importance
---------------------
Each document or folder of type **Novel** can be given a "Status" label accompanied by a coloured
icon with an optional shape selected from a list of pre-defined shapes. Each document or folder of
@@ -94,7 +96,7 @@ Both status and importance labels can be exported and imported so you can share
projects, or define a standard set for all your writing projects. When you import labels to a
project, they are always added as *new* labels.
See also :ref:`a_ui_tree_status`.
See also :ref:`docs_usage_project_status`.
.. note::
@@ -102,8 +104,8 @@ See also :ref:`a_ui_tree_status`.
they can be edited.
Auto-Replace Tab
----------------
Text Auto-Replace
-----------------
A set of automatically replaced keywords can be added in this tab. The keywords in the left column
will be replaced by the text in the right column when documents are opened in the viewer. They will