From 92f44f0aaa881ab438b160d2d7c57bcd0d3232f1 Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Fri, 1 Jan 2021 18:37:11 +0100 Subject: [PATCH 1/3] Updated the introduction section of the docs --- docs/source/index.rst | 18 +++-- docs/source/int_interface.rst | 125 ++++++++++++++++--------------- docs/source/int_introduction.rst | 55 +++++++------- docs/source/int_started.rst | 107 +++++++++++++++++--------- docs/source/int_typography.rst | 30 ++++---- 5 files changed, 191 insertions(+), 144 deletions(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 172adf5e..41fb2623 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -30,18 +30,19 @@ novelWriter |release| novelWriter is a markdown-like text editor designed for writing novels and larger projects of many smaller plain text documents. It uses its own flavour of markdown that supports a meta data syntax -for comments, synopsis and cross-referencing between files. The idea is to have a simple text editor -which allows for easy organisation of text files and notes, built on a plain text file project -repository for robustness. +for comments, synopsis and cross-referencing between files. The idea is to have a simple text +editor which allows for easy organisation of text files and notes, built on a plain text file +project repository for robustness. 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 -is primarily saved as JSON files. +synchronisation tools. The core project structure is stored in a single project XML file. Other +meta data is primarily saved as JSON files. Any operating system that can run Python 3 and has the Qt 5 libraries should be able to run -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. +novelWriter. It runs fine on Linux, Windows and macOS, and users have tested it on other platforms +too. novelWriter can be run directly from the Python source, or installed from the pip tool or via +the provided setup script. A setup.exe is provided for Windows. See :ref:`a_started` for further +details. **Useful Links** @@ -50,6 +51,7 @@ already familiar with how to run Python applications on your platform. * Source Code: https://github.com/vkbo/novelWriter * Source Releases: https://github.com/vkbo/novelWriter/releases * Issue Tracker: https://github.com/vkbo/novelWriter/issues +* Feature Discussions: https://github.com/vkbo/novelWriter/discussions * PyPi Project: https://pypi.org/project/novelWriter diff --git a/docs/source/int_interface.rst b/docs/source/int_interface.rst index 289b3ac4..37ae793b 100644 --- a/docs/source/int_interface.rst +++ b/docs/source/int_interface.rst @@ -4,21 +4,22 @@ User Interface ************** -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. +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: The Project Tree ================ -The main window contains a project tree in the left-most panel. It shows the entire structure of the -project. It has four columns: +The main window contains a project tree in the left-most panel. It shows the entire structure of +the project. It has four columns: :guilabel:`Label` - 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`. 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. + The first column shows the item icon and its label. The labels can be edited from the menu + :guilabel:`Project` menu, or by 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` The second column shows the word count of the file, or the sum of words in the child items if it @@ -27,42 +28,46 @@ project. It has four columns: :guilabel:`Inc` The third column indicates whether the file is included in the final project build or not. You - may want to filter out files that you no longer want to keep in the final manuscript, but want to - keep in the project for reference. + may want to filter out files that you no longer want to keep in the final manuscript, but want + to keep in the project for reference. :guilabel:`Flags` - 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 - define yourself. They can be changed in :guilabel:`Project Settings` from the :guilabel:`Project` - menu. The first character after the icon indicates the class of the item, that is ``N`` for - **Novel**, ``C`` for **Character**, etc (see :ref:`a_struct_tags`. The second character indicates - the file layout type (see :ref:`a_proj_roots`). + 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 + define yourself. They can be changed in :guilabel:`Project Settings` from the + :guilabel:`Project` menu. The first character after the icon indicates the class of the item, + that is ``N`` for **Novel**, ``C`` for **Character**, etc (see :ref:`a_struct_tags`). The second + character indicates the file layout type (see :ref:`a_proj_roots`). 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. +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. + .. _a_ui_tree_dnd: Project Tree Drag and Drop -------------------------- -The project tree allows dragging and drop to a certain extent. This feature is primarily intended -for rearranging the order of your files within each root folder, and has only limited support for +The project tree allows drag and drop to a certain extent. This feature is primarily intended for +rearranging the order of your files within each root folder, and has only limited support for moving files elsewhere in the project tree. In general, bulk actions are not allowed. This is deliberate to avoid accidentally messing up your project. The project tree has no undo function. Document files and their folders can be rearranged freely within their root folders. Novel files cannot be moved out of the :guilabel:`Novel` folder, except to :guilabel:`Trash` and the -:guilabel:`Outtakes` folder. Note files can be moved freely anywhere. +:guilabel:`Outtakes` folder. Note files can be moved freely between root folders. Folders cannot be moved at all outside their root tree. Neither can a folder containing files be deleted. You must first delete the files. -Root folders in the project tree cannot be dragged and dropped at all. However, if you want to -reorder them, you can move them up or down with respect to eachother from the :guilabel:`Tools` -menu, or by pressing :kbd:`Ctrl`:kbd:`Shift` and the :kbd:`Up` or :kbd:`Down` key. +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 eachother from the :guilabel:`Tools` menu or the +right-click context menu, or by pressing :kbd:`Ctrl`:kbd:`Shift` and the :kbd:`Up` or :kbd:`Down` +key. .. _a_ui_edit: @@ -75,11 +80,12 @@ having it selected. This will open the file in the document editor. The editor u 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. -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 -document viewed does not have to be the same document currently being edited. However, If you *are* -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 +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. If you have a middle mouse button, middle-clicking on the document will also open it in the +viewer. The document viewed does not have to be the same document currently being edited. However, +If you *are* viewing the same document, pressing :kbd:`Ctrl`:kbd:`R` again will update the document +with your latest changes. You can also press the reload button in the top-right corner of the view 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 @@ -91,11 +97,13 @@ location of the file in a large project. Any reference to a tag in the editor can be opened in the viewer by moving the cursor to the label and pressing :kbd:`Ctrl`:kbd:`Return`. In the viewer, the references become clickable links. Clicking them will replace the content of the viewer with the content of the document the reference -points to. +points to. The document viewer keeps a history of viewed documents that you can navigate with the +arrow buttons in the top-left corner of the viewer. If your mouse has navigation buttons, these can +be used as well. -At the bottom of the view panel there is a :guilabel:`References` panel. (If it is hidden, click the -icon to reveal it.) This panel will show links to all documents referring back to it, if any has -been defined. The :guilabel:`Sticky` button will freeze the content of the panel to the current +At the bottom of the view panel there is a :guilabel:`References` panel. (If it is hidden, click +the icon to reveal it.) This panel will show links to all documents referring back to it, if any +has been defined. The :guilabel:`Sticky` button will freeze the content of the panel to the current 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. @@ -187,13 +195,11 @@ A minimal set of text emphasis styles are supported. 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 ``__`` +by using ``**`` for strong and ``_`` for emphasis, although markdown generally also supports ``__`` for strong and ``*`` for 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: - 1. The emphasis and strikethrough formatting tags do not allow spaces between the words and the tag itself. That is, ``**text**`` is valid, ``**text **`` is not. 2. More generally, the delimiters must be on the outer edge of words. That is, ``some **text in @@ -201,6 +207,8 @@ There are also some additional rules: 3. If using both ``**`` and ``_`` to wrap the same text, the underscore must be the inner wrapper. This is due to the underscore also being a valid word character, so if they are on the outside, they violate rule 2. +4. Text emphasis does not span past line breaks. If you need to add emphasis to multiple lines or + paragraphs, you must apply it to each of them in turn. .. _a_ui_md_comm: @@ -211,17 +219,23 @@ Comments and Synopsis 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, 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` in a dedicated column. +the comment is treated specially and will show up in the :ref:`a_ui_outline` in a dedicated column. +The word ``synopsis`` is not case sensitive. If it is correctly formatted, the syntax highlighter +will indicate this by altering the colour of the word. ``% text...`` A comment. The text is not exported by default (this can be overridden), seen in the Viewer, or counted towards word counts. ``% Synopsis: text...`` - A synopsis comment. It is generally treated in the same way as regular comments, except that it - is captured by the indexing algorithm and displayed in the :ref:`a_ui_outline`. It can also be - filtered separately when exporting the project to for instance generate an outline document of - the whole project. + A synopsis comment. It is generally treated in the same way as a regular comment, except that it + is also captured by the indexing algorithm and displayed in the :ref:`a_ui_outline`. It can also + be filtered separately when exporting the project to for instance generate an outline document + of the whole project. + +.. note:: + Only one comment can be flagged as a synopsis comment for each heading. If multiple comments are + flagged as synopsis comments, the last one will be used. .. _a_ui_md_tags: @@ -236,7 +250,8 @@ multiple times under the same heading will just override the previous setting. ``@keyword: value`` A keyword argument followed by a value, or a comma separated list of values. -The available tag and reference keywords are listed in the :ref:`a_struct_tags` section. +The available tag and reference keywords are listed in the :ref:`a_struct_tags` section. They can +also be inserted at the cursor position in the editor via the :guilabel:`Insert` menu. .. _a_ui_md_add: @@ -248,10 +263,11 @@ The editor and viewer also supports markdown standard hard line breaks, and pres 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, - the user can press :kbd:`Ctrl`:kbd:`K`, :kbd:`Return` to insert this. +* 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. * A non-breaking space is inserted with :kbd:`Ctrl`:kbd:`K`, :kbd:`Space`. -* Thin spaces are also supported, and can be inserted with :kbd:`Ctrl`:kbd:`K`, :kbd:`Shift`:kbd:`Space`. +* Thin spaces are also supported, and can be inserted with :kbd:`Ctrl`:kbd:`K`, + :kbd:`Shift`:kbd:`Space`. * Non-breaking thin space can be inserted with :kbd:`Ctrl`:kbd:`K`, :kbd:`Ctrl`:kbd:`Space`. These are all insert features, and the :guilabel:`Insert` menu has more. They are also listed @@ -276,7 +292,7 @@ editor. .. note:: 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, depending how you chose to organise your files. + tree, these will not necessarily look the same, depending how you choose 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. @@ -296,21 +312,8 @@ updating in the :guilabel:`Tools` menu, which will trigger an update whenever th and the :guilabel:`Outline` tab is active. You may want to disable this feature if your project is very large, - -.. _a_ui_outline_synopsis: - -Synopsis Column ---------------- - -The :guilabel:`Synopsis` column of the outline view takes its information from a specially formatted -comment. See :ref:`a_ui_md_comm`. In order to flag a comment as a synopsis, add the word -``Synopsis:`` as the first word of the comment. The ``:`` is required, and the word ``synopsis`` is -not case sensitive. If it is correctly formatted, the syntax highlighter will indicate this by -altering the colour of the word. - -.. note:: - Only one comment can be flagged as a synopsis comment for each heading. If multiple comments are - flagged as a synopsis comment, the last one will be used. +The :guilabel:`Synopsis` column of the outline view takes its information from a specially +formatted comment. See :ref:`a_ui_md_comm`. .. _a_ui_shortcuts: @@ -401,9 +404,9 @@ Most features are available as keyboard shortcuts. These are as follows: Insert Shortcuts ---------------- -A set of insert features are also available through shortcuts, but they require a double combination -of key sequences. The insert feature is activated with :kbd:`Ctrl-K`, followed by a key or -combination for the inserted character or punctuation. +A set of insert features are also available through shortcuts, but they require a double +combination of key sequences. The insert feature is activated with :kbd:`Ctrl-K`, followed by a key +or combination for the inserted character or punctuation. .. csv-table:: Keyboard Shortcuts :header: "Shortcut", "Description" diff --git a/docs/source/int_introduction.rst b/docs/source/int_introduction.rst index 66ca0351..c1d9a6aa 100644 --- a/docs/source/int_introduction.rst +++ b/docs/source/int_introduction.rst @@ -5,20 +5,22 @@ Introduction ************ 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 allows for the component documents to be -ordered freely to create the desired structure of the novel. More details about how projects are -structured is covered on the :ref:`a_struct` page. +simple formatting to the text. It is designed for writing novels, and allows for the component +documents to be ordered freely to create the desired structure of the novel. More details about how +projects are structured is covered on the :ref:`a_struct` page. -In addition, the project can contain notes on the various plot elements, characters, locations, etc, -that make up the story. These notes are organised in a set of category-specific top-level folders, -and each entry can be tagged and cross-referenced from within the novel files and other notes. These -tags make it possible to inter-link documents, and generate an overview of the entire novel project -and how the various files and plot elements are interconnected. This is covered on the :ref:`a_proj` -and :ref:`a_notes` pages. +In addition, the project can contain notes on the various plot elements, characters, locations, +etc, that make up the story. These notes are organised in a set of category-specific top-level +folders (root folders), and each entry can be tagged and cross-referenced from within the novel +files and other note files. These tags make it possible to inter-link documents, and generate an +overview of the entire novel project and how the various files and plot elements are +interconnected. This is covered on the :ref:`a_proj` and :ref:`a_notes` pages. 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 -used correctly. The syntax is covered on the :ref:`a_ui` page. +keywords described on :ref:`a_struct_tags`. Syntax highlighting is provided to make it easier to +verify that the markdown tags are used correctly. + +An overview of the extended markdown syntax is covered on the :ref:`a_ui` page. .. _a_intro_design: @@ -27,12 +29,12 @@ Design Philosophy ================= The user interface of novelWriter is intended to be as minimalistic as practically possible, while -at the same time provide a complete set of features needed for writing a novel. +at the same time provide a complete set of features needed for writing a novel. .. note:: novelWriter is not intended to be a full office type word processor. It doesn't support images, - links, tables, and other complex structure and objects often needed for such document. Formatting - is limited to headers, and bold, italicised and strikethrough text. + links, tables, and other complex structure and objects often needed for such document. + Formatting 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 since the documents are formatted with markdown tags, is more or less redundant. However, all @@ -40,14 +42,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` section. -In addition, novelWriter offers a :guilabel:`Focus Mode` where all the user interface elements other -than the document editor itself are hidden away. +In addition, novelWriter offers a :guilabel:`Distraction Free 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, 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 -icon themes in colour and greyscale are also offered. The icons are based on the Typicons_ icon set -designed by Stephen Hutchings. +menu. A number of syntax highlighting themes are also available in :guilabel:`Preferences`. A set +of icon themes in colour and greyscale are also offered. The icons are based on the Typicons_ icon +set designed by Stephen Hutchings. The main window is split in two, or optionally three, panels. The left-most contains the project tree and all the files in your project. The second panel is the document editor, and the optional @@ -55,7 +57,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 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 from your project tree. Your project tree lists files, your Outline tree lists the structure of the novel itself. .. _Typicons: https://github.com/stephenhutchings/typicons.font @@ -79,7 +81,7 @@ The four heading levels (**H1** to **H4**) are treated as follows: * **H4** is for section titles within scenes, if such granularity is needed. This header level structure is only taken into account for novel files. For the files designated as -project notes, the header levels imply no structural meaning, and the user is free to do whatever +project notes, the header levels have no structural meaning, and the user is free to do whatever they want. See the :ref:`a_struct` page for more details. @@ -88,9 +90,10 @@ they want. See the :ref:`a_struct` page for more details. Project Export ============== -The project can at any time be exported to a range of different formats. Natively, novelWriter -supports export to plain text file, HTML document, novelWriter flavoured markdown, standard -markdown (requires Qt 5.14), and to a basic Open Document. +The project can at any time be exported to a range of different formats through the +:guilabel:`Build Novel Project` tool. Natively, novelWriter supports export to plain text file, +HTML document, novelWriter flavoured markdown, standard markdown (requires Qt 5.14), and to a basic +Open Document format. 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 @@ -108,8 +111,8 @@ formats. .. _a_intro_screenshots: -Screenshot -========== +Screenshots +=========== **novelWriter with default system theme:** diff --git a/docs/source/int_started.rst b/docs/source/int_started.rst index d42962fe..9136ad1b 100644 --- a/docs/source/int_started.rst +++ b/docs/source/int_started.rst @@ -4,13 +4,19 @@ Getting Started *************** -This is a brief guide to how you can get novelWriter running on your computer. These are the methods -currently supported by the developer. Packages may also be available in other package managers, but -those are not managed by me. +This is a brief guide to how you can get novelWriter running on your computer. These are the +methods currently supported by the developer. Packages may also be available in other package +managers, but those are not managed by the developer. A Windows installer file is also provided on +the GitHub page and main website. -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 working with Python projects from command -line. +As novelWriter matures, more options for how to install it and get it running will be added. For +non-Windows users the install process is at the present time best suited for people used to working +with the command line. + +.. note:: + The text below assumes the command ``python`` corresponds to a Python 3 executable. For + operating systems with both Python 2 and 3, the command ``python3`` may be needed instead. On + Linux, the scripts can also be made executable and run without the ``python`` command. .. _a_started_install: @@ -28,6 +34,46 @@ Latest version of novelWriter is |release|. .. _PyPi: https://pypi.org/project/novelWriter/ +.. _a_started_install_win: + +Windows Installer +----------------- + +You can run novelWriter directly from source on Windows, but a Windows installer is also provided +for 64-bit Windows on the `main website`_ and GitHub_ page. This installer bundles all that is +needed for novelWriter to run, including Python and the xml and Qt libraries. + +.. _main website: https://novelwriter.io + +.. note:: + While the majority of virus scanners have no warnings, some scanners will flag the installer. + This is caused by the ``pyinstaller`` tool being used to create the package. The ``pyinstaller`` + binaries bundled with the installer are from the official PyPi repository. + + +.. _a_started_install_source: + +Install from Source on Linux +---------------------------- + +For Linux systems, novelWriter can be installed from source with the provided ``setup.py`` script. +To install novelWriter into the system's default Python install locations, run: + +.. code-block:: console + + python setup.py install + +To set up the novelWriter desktop launcher, the icons and the project file association, run: + +.. code-block:: console + + python setup.py xdg-install + +By default, these commands installs novelWriter and its icons for the current user only. To install +for all users, run the script with the ``sudo`` command. Other options are also available. Run +``python setup.py help`` for a full list of install options. + + .. _a_started_depend: Dependencies @@ -68,11 +114,9 @@ You can of course also install these packages from your operating system's packa PyQt/Qt should be at least 5.2.1, but ideally 5.10 or higher for nearly all features to work. 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. - -There is no known minimum version requirement for package ``lxml``, but the code was originally -written with 4.2, which is therefore set as the minimum. It may work on lower versions. You have to -test it. +expressions requires 5.3, and for full Unicode support, 5.13. There is no known minimum version +requirement for package ``lxml``, but the code was originally written with 4.2, which is therefore +set as the minimum. It may work on lower versions. You have to test it. The spell checking extension is optional, but recommended: @@ -87,9 +131,9 @@ works fine. Building the Documentation -------------------------- -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 -the following Python packages on Debian and Ubuntu. +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 the following Python packages on Debian and Ubuntu. * ``python3-sphinx`` * ``python3-sphinxcontrib.qthelp`` @@ -100,13 +144,20 @@ Or from PyPi: pip install sphinx sphinxcontrib-qthelp -To build the help packages from the documentation source, run +The documentation can then be built from the ``docs`` folder in the source code by running: .. code-block:: console - ./setup.py qthelp + make html -from the root source folder. +If successful, the documentation should then be available in the ``docs/build/html`` folder. + +The documentation can also be built for the Qt Assistant. To build the help packages from the +documentation source, run the following from the root source folder: + +.. code-block:: console + + python setup.py qthelp 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 @@ -121,17 +172,14 @@ locally first, then send you to the website as a fallback. .. _a_started_running: -Running novelWriter +Running from Source =================== -If all the required dependencies are met, you can run novelWriter from the command line in one of -the following ways: +If all the required dependencies are met, you can run novelWriter from the command line: .. code-block:: console python novelWriter.py - python3 novelWriter.py - ./novelWriter.py A few switches are supported from the command line, mostly to assist in debugging if an error is encountered. To list all options, run: @@ -140,10 +188,6 @@ encountered. To list all options, run: python novelWriter.py --help -There are also a couple of install scripts in the setup folder which will assist in setting up a -launch icon and the novelWriter project file mimetype for Gnome desktops on Linux. Currently, -there's one script for Debian and one for Ubuntu. - .. _a_started_standalone: @@ -151,15 +195,10 @@ Building a Standalone Executable ================================ A standalone executable can be built with ``pyinstaller``, using the provided python script -``install.py`` in the source folder. This script will automatically try to install all dependencies -and build the standalone executable of novelWriter. You can run the script by typing the following -into your command prompt: +``make.py`` in the source folder. This script can install dependencies, build a standalone +executable of novelWriter, or build a ``setup.exe`` file with Inno Setup. -.. code-block:: console - - python install.py - -If successful, the executable will be in the "dist" folder. +For a full list of the script's options, run ``python make.py help``. .. _a_started_standalone_win: diff --git a/docs/source/int_typography.rst b/docs/source/int_typography.rst index 1903ba15..43c2e4cd 100644 --- a/docs/source/int_typography.rst +++ b/docs/source/int_typography.rst @@ -4,10 +4,10 @@ Typographical Notes ******************* -novelWriter has some support for typographical symbols that are not usually easily available in many -text editors. This includes for instance the proper unicode quotation marks, dashes, ellipsis, thin -spaces, etc. All these symbols are available from the :guilabel:`Insert` menu, and via keyboard -shortcuts. See :ref:`a_ui_shortcuts_ins`. +novelWriter has some support for typographical symbols that are not usually easily available in +many text editors. This includes for instance the proper unicode quotation marks, dashes, ellipsis, +thin spaces, etc. All these symbols are available from the :guilabel:`Insert` menu, and via +keyboard shortcuts. See :ref:`a_ui_shortcuts_ins`. This chapter provides some additional information on how novelWriter handles these symbols. @@ -24,9 +24,9 @@ Dashes and Ellipsis ------------------- With the auto-replace feature enabled (see :ref:`a_ui_edit_auto`), multiple hyphens are converted -automatically to short and long dashes, and three dots to ellipsis. The last auto-replace can always -be reverted with the undo command :kbd:`Ctrl`:kbd:`Z`, reverting the text to what you typed before -the automatic replacement occurred. +automatically to short and long dashes, and three dots to ellipsis. The last auto-replace can +always be reverted with the undo command :kbd:`Ctrl`:kbd:`Z`, reverting the text to what you typed +before the automatic replacement occurred. Single and Double Quotes @@ -36,14 +36,14 @@ All the different quotation marks listed on the `Quotation Mark`_ Wikipedia page can be selected as auto-replaced symbols for straight single and double quote key strokes. The settings can be found in the :guilabel:`Preferences`. -Ordinarily, text wrapped in quotes are highlighted by the editor. This is meant as a convenience for -highlighting dialogue between characters. This feature can be disabled in the +Ordinarily, text wrapped in quotes are highlighted by the editor. This is meant as a convenience +for highlighting dialogue between characters. This feature can be disabled in the :guilabel:`Preferences` if this feature isn't wanted. The editor distinguishes between text wrapped in straight quotes and with the user-selected double -quote symbols. This is to help the writer recognise which parts of the text are not using the chosen -quote symbols. Two convenience functions in the :guilabel:`Format` menu can be used to re-format a -selected section of text with the correct quote symbols. +quote symbols. This is to help the writer recognise which parts of the text are not using the +chosen quote symbols. Two convenience functions in the :guilabel:`Format` menu can be used to +re-format a selected section of text with the correct quote symbols. .. _Quotation Mark: https://en.wikipedia.org/wiki/Quotation_mark @@ -76,10 +76,10 @@ separate a number from its unit is with a `thin space`_. It is usually 2/3 the w space. For numbers and units, this should in addition be a non-breaking space, that is, the text wrapping should not add a line break on this particular space. -A regular space can also be made into a non-breaking space. +A regular space can also be made into a non-breaking space if needed. -All non-breaking spaces are highlighted with a differently coloured packground. The colour will -depend on the selected colour theme. +All non-breaking spaces are highlighted with a differently coloured background to make it easier to +spot them in the text. The colour will depend on the selected colour theme. The thin and non-breaking spaces are converted to their corresponding HTML codes on export to HTML format. For plain text, they are exported as regular spaces. From 8ad2da30cad552be6a81eb28d041aa4f0a80a74a Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Fri, 1 Jan 2021 19:44:17 +0100 Subject: [PATCH 2/3] Updated the remaining sections of the docs --- docs/source/tech_technical.rst | 49 +++++----- docs/source/write_export.rst | 55 +++++------ docs/source/write_notes.rst | 39 ++++---- docs/source/write_projects.rst | 70 ++++++++------ docs/source/write_structure.rst | 160 +++++++++++++++++--------------- 5 files changed, 200 insertions(+), 173 deletions(-) diff --git a/docs/source/tech_technical.rst b/docs/source/tech_technical.rst index 50209ecc..1e3c8f4d 100644 --- a/docs/source/tech_technical.rst +++ b/docs/source/tech_technical.rst @@ -10,11 +10,11 @@ This section contains details of how novelWriter stores and handles the project How Data is Stored ================== -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 -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. +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 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 @@ -44,29 +44,31 @@ Project Documents The project documents are saved in a folder in the main project folder named ``content``. Each document has a file handle taken from the first 13 characters of a SHA256 hash of the system time -when the file was first created. The documents are saved with a filename assembled from this hash -and the file extension ``.nwd``. +when the document was first created. The documents are saved with a filename assembled from this +hash 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 -project XML file, select :guilabel:`Show File Details` from the :guilabel:`Document` menu when -having the document open, or look in the ``ToC.txt`` file in the root of the project folder. +If you wish to find the physical location of a document 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 having the document open, or look in the ``ToC.txt`` file in the root of the project folder. The ``ToC.txt`` file has a list of all 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 restrictions on different operating systems, and also to have a file name that does not depend on -what the user names the files, or changes it to. The file meta data in the tree view, except the -file label, is only saved in the project XML file. +what the user names the document within the project, or changes it to. The file meta data in the +project tree is mainly saved in the project XML file, although some basic meta data is added to the +header of each document file. Each document file contains a plain text version of the text from the editor. The file can in 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 -mangled when the file is opened in novelWriter again. +desired. Just make sure the file remains in utf-8 encoding, otherwise unicode chatracters may +become 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 -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 -last entry. The line can be deleted without any consequences to the rest of the content of the file, -and will be added back the next time the file is saved in novelWriter. +The first lines of the file may contain some meta data starting with the characters ``%%~``. These +lines are 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 +document label and the document class and layout. The lines can be deleted without any consequences +to the rest of the content of the file, and will be added back the next time the document is saved +in novelWriter. The File Saving Process @@ -75,8 +77,9 @@ The File Saving Process 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 ensures that the previously saved data is only replaced when the new data has been successfully -saved. +saved to the storage medium. -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. +For the project XML file, a ``.bak`` file is in addition 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. diff --git a/docs/source/write_export.rst b/docs/source/write_export.rst index 0628659c..d1817a99 100644 --- a/docs/source/write_export.rst +++ b/docs/source/write_export.rst @@ -23,12 +23,13 @@ a series of keyword–replace steps. They are all on the format ``%keyword%``. ``%ch%`` This is replaced by a chapter number. The number is incremented by one each time the build tool - sees a new heading of level two in a file with layout :guilabel:`Chapter`. If the file has layout - :guilabel:`Unnumbered`, the counter is *not* incremented. The latter is useful for for instance - Prologue and Epilogue chapters. + sees a new heading of level two in a document with layout :guilabel:`Chapter`. If the document + has layout :guilabel:`Unnumbered`, the counter is *not* incremented. The latter is useful for + for instance Prologue and Epilogue chapters. ``%chw%`` - This is like ``%ch%``, but the number is expressed as a word like for instance "One", "Two", etc. + This is like ``%ch%``, but the number is expressed as a word like for instance "One", "Two", + etc. ``%chi%`` This is also like ``%ch%``, but the number is represented as a lower case Roman number. @@ -49,7 +50,7 @@ a series of keyword–replace steps. They are all on the format ``%keyword%``. This inserts a line break within the title. .. note:: - Header formatting only applies to novel files. Headings in note files will will be left as-is on + Header formatting only applies to novel documents. Headings in notes will be left as-is on export. However, heading levels 1 through 4 are converted to the correct heading level in the respective output formats. @@ -65,8 +66,8 @@ a series of keyword–replace steps. They are all on the format ``%keyword%``. Scene Separators ================ -If you don't want any titles for your scenes (and for your sections if you have them), you can leave -the boxes empty, and an empty paragraph will be inserted between the scenes or sections instead. +If you don't want any titles for your scenes (or for your sections if you have them), you can leave +the boxes empty. If so, an empty paragraph will be inserted between the scenes or sections instead. Alternatively, if you want a separator between them, like the common ``* * *``, you can also enter that in the box. In fact, if the format is a piece of static text, it will always be treated as a @@ -78,10 +79,11 @@ separator. File Selection ============== -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 -classified as a note. 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. +Which document files are selected for export can be controlled from the options on the left side of +the dialog window. The switch for :guilabel:`Include novel files` will select any document that +isn't classified as a note. The switch for :guilabel:`Include note files` will select any document +that *is* a 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 exclude the body text itself. @@ -91,11 +93,12 @@ exclude the body text itself. keywords and synopsis export and disable body text, thus getting a document with each heading 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 -out of your manuscript, but don't want to delete, you can un-check the :guilabel:`Include when -building project` option for each file in the project tree. An included file has a checkmark after -the status icon in the :guilabel:`Flags` column. The :guilabel:`Build Novel Project` tool has a -switch to ignore this flag if you need to collectively override these settings. +If you need to exclude specific documents from your exports, like draft documents or documents you +want to take out of your manuscript, but don't want to delete, you can un-check the +:guilabel:`Include when building project` option for each document in the project tree. An included +document has a checkmark after the status icon in the :guilabel:`Flags` column. The +:guilabel:`Build Novel Project` tool has a switch to ignore this flag if you need to collectively +override these settings. .. _a_export_formats: @@ -107,26 +110,26 @@ Currently, six formats are supported for exporting. OpenDocument Format This produces an open document ``.odt`` file. The document produced has very little formatting, - and may require further editing afterwards. For a better formatted office document, you may get a - better result with exporting to HTML and then import that HTML document into your office word - processor. They are generally very good at importing HTML files. + and may require further editing afterwards. For a better formatted office document, you may get + a better result with exporting to HTML and then import that HTML document into your office word + processor. They are generally very good at importing HTML documents. PDF Format 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. + want to export to HTML, and use a word processor to convert the HTML document to PDF. novelWriter HTML 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 document is suitable for further processing by document conversion tools like Pandoc, for 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 - This is simply a concatenation of the files selected by the filters. The files in the project are - stacked together in the order they appear in the tree view, with comments, tags, etc. included if - they are selected. This is a useful format for exporting the project for later import back into - novelWriter. + This is simply a concatenation of the project documents selected by the filters. The documents + are stacked together in the order they appear in the project tree, with comments, tags, etc. + included if they are selected. This is a useful format for exporting the project for later + import back into novelWriter. Standard Markdown If you have Qt 5.14 or higher, the option to export to plain markdown is available. This feature @@ -142,7 +145,7 @@ Additional Export Options ========================= In addition to the above document formats, the novelWriter HTML and Markdown formats can also be -wrapped in a JSON file. The files will have a meta data entry and a body entry. For HTML, also the +wrapped in a JSON file. These files will have a meta data entry and a body entry. For HTML, also 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 diff --git a/docs/source/write_notes.rst b/docs/source/write_notes.rst index 6ead9628..47094fe1 100644 --- a/docs/source/write_notes.rst +++ b/docs/source/write_notes.rst @@ -4,15 +4,16 @@ Supporting Files (Notes) ************************ -novelWriter doesn't have a database and complicated forms to fill in all details about plot elements, -characters, and all sorts of additional information that isn't a part of the novel text itself. -Instead, all such information is saved in notes. The relation between all these additional elements -is extracted from these files by the project indexer based on the tags and references you set. +novelWriter doesn't have a database and complicated forms to fill in all details about plot +elements, characters, and all sorts of additional information that isn't a part of the novel text +itself. Instead, all such information is saved in notes. The relation between all these additional +elements is extracted from these documents 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 adding -a tag to them, makes it possible to use the :guilabel:`Outline` feature to see how each element -intersects with each section of the novel itself, and adds clickable cross-references between -documents in the editor and viewer. +These documents are not required, but making at least minimal files for each such plot element, and +adding a tag to them, makes it possible to use the :guilabel:`Outline` feature to see how each +element intersects with each section of the novel itself, and adds clickable cross-references +between documents in the editor and viewer. .. _a_notes_tags: @@ -20,9 +21,9 @@ documents in the editor and viewer. 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 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 -files, or cross-referenced in other note files, and will show up in the outline view and in the +documents, or cross-referenced in other notes, and will show up in the outline view and in the 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 @@ -30,15 +31,17 @@ allowed, that is, the tag is unique. Duplicate tags should be detected as long a to date. An invalid tag should have a green wiggly line under it, and will not receive the syntax colour that valid tags do. -The tag is the only part of these files that the application uses. The rest of the file content is -there for the writer to use in whatever way they wish. Of course, the content of the files can be -exported if you want to compile a single document of all your notes, or include them in an outline. +The tag is the only part of these notes that the application uses. The rest of the document content +is there for the writer to use in whatever way they wish. Of course, the content of the documents +can be 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 -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 +A note can also reference other notes in the same way novel documents do. When the note is opened +in the view panel, the references become clickable links, making it easier to follow connections in +the plot. Notes 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. .. tip:: - If you cross-reference between notes as well, and export your project as an HTML file using the - export tool, the cross-references become clickable in the exported document. + If you cross-reference between notes and export your project as an HTML document using the + :guilabel:`Build Novel Project` tool, the cross-references become clickable in the exported + HTML document as well. diff --git a/docs/source/write_projects.rst b/docs/source/write_projects.rst index 4ece88e0..af2000e5 100644 --- a/docs/source/write_projects.rst +++ b/docs/source/write_projects.rst @@ -8,9 +8,11 @@ A novelWriter project requires a dedicated folder for storing its files on the l 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 list of recently opened projects is maintained, and displayed in the -:guilabel:`Open Project` dialog. A project can be removed from this list by selecting it and -pressing the :kbd:`Del` key. +:guilabel:`New Project`. This will open the :guilabel:`New Project Wizard` that will assist you in +creating a barebone project suited to your needs. + +A list of recently opened projects is maintained, and displayed in the :guilabel:`Open Project` +dialog. A project can be removed from this list by selecting it and pressing the :kbd:`Del` key. The project specific settings are available in :guilabel:`Project Settings` in the :guilabel:`Project` menu. See further details below in the :ref:`a_proj_settings` section. @@ -28,7 +30,7 @@ The core novel files go into a root folder of type :guilabel:`Novel`. Other supp into the other root folders. These other root folder types are intended for your notes on the various 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 may 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. The root folders are intended for the following use, but aside from the :guilabel:`Novel` folder, @@ -65,8 +67,8 @@ no restrictions are enforced by the application. You can use them however you wa :guilabel:`Entities` Does your plot have many powerful organisations or companies? Or other entities that are part of - the plot? They can be organised here. Tags in this folder can be references using the ``@entity`` - keyword. + the plot? They can be organised here. Tags in this folder can be references using the + ``@entity`` keyword. :guilabel:`Custom` The custom root folder can be used for tracking anything else not covered by the above options. @@ -91,7 +93,7 @@ trash folder can then be deleted permanently, either individually, or by emptyin the menu. Files in this folder are removed from the project index and cannot be referenced. 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 +supported. A document file or a folder can be deleted from the :guilabel:`Project` menu, or by pressing :kbd:`Ctrl`:kbd:`Del`. @@ -123,10 +125,11 @@ into the project if possible. The discovered files are scanned for meta information that gives clues as to where the file may previously have been located in the project. The project loading routines will try to put them back -as close as possible to this location if it still exists. Generally, it will be appended to the end -of the folder where it previously was located. If that folder doesn't exist, it will try to add it -to the correct root folder. If it cannot figure out which root folder is correct, the file will be -added to the :guilabel:`Novel` root folder. +as close as possible to this location, if it still exists. Generally, it will be appended to the +end of the folder where it previously was located. If that folder doesn't exist, it will try to add +it to the correct root folder. If it cannot figure out which root folder is correct, the file will +be added to the :guilabel:`Novel` root folder. Only if the :guilabel:`Novel` folder is missing, it +will give up. If the title of the file can be recovered, the word "Recovered:" will be added as a prefix. If the title cannot be determined, the file will be named "Recovered File N" where N is a sequential @@ -138,11 +141,11 @@ number. Project Lockfile ---------------- -To prevent orphaned files caused by file conflicts when novelWriter projects are synced with file +To prevent lost 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 project which has such a file present, you will be presented with a warning, and some information about where else novelWriter thinks the project is also open. You will be give the option to ignore -this warning, and continue opening the project. +this warning, and continue opening the project at your own risk. .. note:: If, for some reason, novelWriter crashes, the lock file may remain even if there are no other @@ -152,7 +155,8 @@ this warning, and continue 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. + project files, potentially resulting in loss of data and orphaned files. You are not likely to + lose any actual text unless both instances have the same document open in the editor, .. _a_proj_roots_dirs: @@ -178,18 +182,20 @@ Project Files ============= New document files can be created from the :guilabel:`Document` menu, or by pressing -:kbd:`Ctrl`:kbd:`N` while in the Project Tree. This will create a new, empty file, and open the +:kbd:`Ctrl`:kbd:`N` while in the project tree. This will create a new, empty file, and open the :guilabel:`:Item Settings` dialog where the filename and various other settings can be changed. This dialog can also be opened again later from either the :guilabel:`Project` menu, selecting -:guilabel:`Edit Item`, or by pressing :kbd:`Ctrl`:kbd:`E` or :kbd:`F2` with the item selected. +:guilabel:`Edit Project Item`, or by pressing :kbd:`Ctrl`:kbd:`E` or :kbd:`F2` with the item +selected. The layout of the file is also defined here. For Novel files, the full list of layout options are available. For non-Novel files, only "Note" is available. See :ref:`a_struct_layout` for more details. -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. -This is covered in the :ref:`a_export_files` section. +You can also select whether the document 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. This is covered in the :ref:`a_export_files` section. You can also toggle the included +state of a document from the right-click context menu. .. _a_proj_files_counts: @@ -197,10 +203,10 @@ This is covered in the :ref:`a_export_files` section. Word Counts ----------- -A character, word and paragraph count is maintained for each file, as well as for each section of a -file defined by a header. The word count, and change of words in the current session, is displayed -in the footer of any document open in the editor, and all stats are shown in the details panel -below the project tree for any file selected. +A character, word and paragraph count is maintained for each document, as well as for each section +of a document following a header. The word count, and change of words in the current session, is +displayed in the footer of any document open in the editor, and all stats are shown in the details +panel below the project tree for any file selected. The word counts are not updated in real time, but run in the background every five seconds for as long as the document is being actively edited. @@ -228,11 +234,11 @@ The :guilabel:`Settings` tab holds the project title and author settings. The :guilabel:`Working Title` can be set to a different title than the :guilabel:`Book Title`. The difference between them is simply that the :guilabel:`Working Title` is used for the GUI (main window title) and for generating the backup files. The intention is that the :guilabel:`Working -Title` should remain unchanged throughput the project, otherwise the name of exported files and +Title` should remain unchanged throughout the project, otherwise the name of exported files and backup files may change too. The :guilabel:`Book Title` and :guilabel:`Book Authors` settings are currently not used for -anything, so setting then is just for the benefit of the author. Future, planned features will be +anything, so setting then is just for the benefit of the author. Future, planned features may be using them, and they are exported on some export formats in the :guilabel:`Build Novel Project` tool. @@ -254,7 +260,7 @@ that can be applied to each file. These are purely there for the user's convenience, and you are not required to use them for any other feature to work. No other part of novelWriter accesses this information. The intention is to -use these to indicate at what stage of completeion each novel file is, or how important the content +use these to indicate at what stage of completion each novel file is, or how important the content of a note file is to the plot. You don't have to use them this way, that's just what they were intended for, but you can make them whatever you want. @@ -270,6 +276,9 @@ A set of automatically replaced keywords can be added in this tab. The keywords will be replaced by the text in the right column when documents are opened in the viewer. They will also be applied to exports. +The auto-replace feature will replace text in angle brackets that are also in this list. The syntax +highlighter will add an alternate colour to text marching the syntax. + .. note:: A keyword cannot contain any spaces. The angle brackets are added by default, and when used in the text are a part of the keyword to be replaced. This is to ensure that parts of the text @@ -298,17 +307,18 @@ Settings`. :guilabel:`Project Settings`. This value is used to generate the folder name for the zip files. Without it, the backup will not run at all, but produce a warning message. + .. _a_proj_stats: Writing Statistics ================== -When you work on your project, a log file records when you opened it, when you closed it, and how -many words you added to your novel and note files during the session. You can view this file in the -``meta`` folder in the directory where you saved your project. The file is named +When you work on your project, a log file records when you opened it, when you closed it, and the +latest total word counts of your novel and note files after the session. You can view this file in +the ``meta`` folder in the directory where you saved your project. The file is named ``sessionStats.log``. -A small tool to view the content of this file is available in the :guilabel:`Tools` menu under +A tool to view the content of this file is available in the :guilabel:`Tools` menu under :guilabel:`Writing Statistics`. You can also launch it by pressing :kbd:`F6`. The tool will show a list of all your sessions, and a set of filters to apply to it. You can also diff --git a/docs/source/write_structure.rst b/docs/source/write_structure.rst index 58449ddd..bb70be1a 100644 --- a/docs/source/write_structure.rst +++ b/docs/source/write_structure.rst @@ -6,8 +6,8 @@ Novel Structure This section covers the structure of a novel project. -This section concerns files under the Novel type root folder only. There are some restrictions -and features that only apply to these types of files. +It concerns documents under the Novel type root folder only. There are some restrictions and +features that only apply to these types of documents. .. _a_struct_heads: @@ -16,7 +16,7 @@ Importance of Headings ====================== 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 document files. +instead dictated by the heading level of the headers within the documents. 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. @@ -31,29 +31,31 @@ way: ``# Header1`` 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 useful when you want to split the manuscript up into books, parts, or acts. ``## Header2`` 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 choose to split your manuscript up into one file per scene, - you need a single chapter file with just the heading. You can of course also add a synopsis and - reference keywords to the chapter file. If you want to open the chapter with a quote, this is - also where you'd put the text for that. + you must add such a heading. If you choose to split your manuscript up into one document per + scene, you need a single chapter document with just the heading. You can of course also add a + synopsis and reference keywords to the chapter document. If you want to open the chapter with a + quote or other introductory text that isn't part of a scene, this is also where you'd put that + text. ``### Header3`` - Header level three signifies a scene level partition. The title itself can be replaced with a - scene separator or just skipped entirely when you export your manuscript. + Header level three signifies a scene level partition. You must provide a title text, but the + title text can be replaced with a scene separator or just skipped entirely when you export your + manuscript. ``#### Header4`` Header level four signifies a sub-scene level partition, usually called just a section in the documentation and user interface. These can be useful if you want to change tag references mid-scene, like if you change the point-of-view character. You are free to use sections as you - wish also in novel files, and can filter the titles out of the final manuscript just like with - scene titles. + wish, and can filter the titles out of the final manuscript just like with scene titles. -There are multiple options of how to process novel titles when exporting the manuscript. For -instance, chapter numbers can be applied automatically, and so can scene numbers if you want them in -a draft manuscript. See the :ref:`a_export` page for more details. +.. tip:: + There are multiple options of how to process novel titles when exporting the manuscript. For + instance, chapter numbers can be applied automatically, and so can scene numbers if you want + them in a draft manuscript. See the :ref:`a_export` page for more details. .. _a_struct_heads_unnum: @@ -61,11 +63,11 @@ a draft manuscript. See the :ref:`a_export` page for more details. Unnumbered Chapter Headings --------------------------- -If you use file layout types for your files, the automatic numbering feature for your chapters is -controlled by whether you use the :guilabel:`Chapter` or :guilabel:`Unnumbered` layout type for your -file. However, if you have a different file layout where this isn't practical, you can also switch -off chapter numbering for a chapter by making the first character of the chapter title an ``*``. -Like so: +If you use layout types for your documents, the automatic numbering feature for your chapters is +controlled by whether you use the :guilabel:`Chapter` or :guilabel:`Unnumbered` layout type for +your document. However, if you have a different document layout where this isn't practical, you can +also switch off chapter numbering for a chapter by making the first character of the chapter title +an ``*``. Like so: ``## *Unnumbered Chapter Title`` @@ -74,7 +76,8 @@ removed before inserted at the location of the ``%title%`` label. See the :ref:` more details. .. note:: - If you need the first character of the title to be an actual asterisk, you must escape it: ``\*``. + If you need the first character of the title to be an actual asterisk, you must escape it like + so: ``\*``. .. _a_struct_tags: @@ -82,12 +85,13 @@ more details. Tag References ============== -Each text section indicated by a heading of any level, can contain references to tags set in the -supporting files of the project. The references are gathered by the indexer and used to generate the -outline view on the :guilabel:`Outline` tab of how the different parts of the novel are connected. +Each text partition indicated by a heading of any level, can contain references to tags set in the +supporting documents of the project. The references are gathered by the indexer and used to +generate the 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 -between reference notes while writing. Clicked links are always opened in the view panel. +References and tags are also clickable in the document editor and viewer, making it easy to +navigate between reference notes while writing. Clicked links are always opened in the view panel. References are set as a keyword and a list of corresponding tags. The valid keywords are listed below. The format of a reference line is ``@keyword: value1, [value2] ... [valueN]``. All keywords @@ -98,8 +102,8 @@ allow multiple values. :guilabel:`Character` type root folder. ``@char`` - Other characters in the current section. The target must be a note tag in a :guilabel:`Character` - type root folder. This should not include the point-of-view character(s). + Other characters in the current section. The target must be a note tag in a + :guilabel:`Character` type root folder. This should not include the point-of-view character(s). ``@plot`` The plot or subplot advanced in the current section. The target must be a note tag in a @@ -118,50 +122,50 @@ allow multiple values. type root folder. ``@entity`` - Entities present in the current section. The target must be a note tag in an :guilabel:`Entities` - type root folder. + Entities present in the current section. The target must be a note tag in an + :guilabel:`Entities` type root folder. ``@custom`` Custom references in the current section. The target must be a note tag in a :guilabel:`Custom` type root folder. -The syntax highlighter will alert the user that the tags and references are used correctly, and that -the tags referenced exist. +The syntax highlighter will alert the user that the tags and references are used correctly, and +that the tags referenced exist. 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, -the index for a file is regenerated when a file is saved, so this shouldn't normally be necessary. +the index for a document is regenerated when it is saved, so this shouldn't normally be necessary. .. _a_struct_layout: -Novel File Layout -================= +Novel Document Layout +===================== -All files in a novelWriter project can have a layout format set. These layouts are important when -the project is exported as they indicate how to treat the content in terms of formatting, headings, -and page breaks. The layout for each file is indicated as the last set of characters in the -:guilabel:`Flags` column of the project tree. +All documents in a novelWriter project can have a layout format set. These layouts are important +when the project is exported as they indicate how to treat the content in terms of formatting, +headings, and page breaks. The layout for each document is indicated as the last set of characters +in the :guilabel:`Flags` column of the project tree. -Not all layout types are actually treated differently, but they also help to indicate what each file -is for in your project. The :guilabel:`Book` layout is a generic novel file layout that is formatted -identically to :guilabel:`Chapter` and :guilabel:`Scene` layout files, but may help to indicate what -files do in your project. +Not all layout types are actually treated differently, they also help to indicate what each +document is for in your project. The :guilabel:`Book` layout is a generic novel document layout +that is formatted identically to :guilabel:`Chapter` and :guilabel:`Scene` layout documents, but +may help to indicate what each document does in your project. -You can for instance lay out your project using :guilabel:`Book` files for each act, and then later -split those into chapter or scene files by using the :guilabel:`Split Document` tool. Scenes can -also be contained within :guilabel:`Chapter` type files, but you lose the drag and drop feature that -comes with having them in separate files if you organise them this way. +You can for instance lay out your project using :guilabel:`Book` documents for each act, and then +later split those into chapter or scene documents by using the :guilabel:`Split Document` tool. +Scenes can also be contained within :guilabel:`Chapter` type documents, but you lose the drag and +drop feature that comes with having them in separate documents if you organise them this way. -Some layouts *do* have implications on how the project is exported. Files with layout +Some layouts *do* have implications on how the project is exported. Documents with layout :guilabel:`Title Page` and :guilabel:`Partition` have all headings and text centred, while the :guilabel:`Unnumbered` layout disables the automatic chapter numbering feature for everything 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 -of the novel itself should have the Note layout. These files are not getting any special formatting, -and it is possible to collectively filter them out during export. Note files can be used anywhere -in the project, also in the Novel root folder. +The above layout formats are only usable in the Novel root folder. Documents that are not a part of +the novel itself should have the Note layout. These documents are not getting any special +formatting, and it is possible to collectively filter them out during export. Notes can be used +anywhere in the project, also in the Novel root folder. Below is an overview of all available layout formats. @@ -175,45 +179,49 @@ Below is an overview of all available layout formats. exported with a page break before it. :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 novel is controlled by the heading levels, this file will produce - 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. + This is the generic novel format that in principle can be used for all novel documents. Since + the internal structure of the novel is controlled by the heading levels, this layout will + produce the same result as a collection of :guilabel:`Partition`, :guilabel:`Chapter` and + :guilabel:`Scene` layout documents. However, it does not provide the functionality of the + :guilabel:`Unnumbered` layout format by default, but this can still be achieved by prefixing the + chapter title with a ``*``. :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 text and meta data to the page. The :guilabel:`Partition` - file layout will in addition force a page break before the heading, and centre all content on the + layout will in addition force a page break before the heading, and centre all content on the page. :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, comments, synopsis, and tag references for characters, plot, etc. - 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. + Signifies the start of a new chapter. If the text itself is contained in scene documents, these + documents should only contain the title, comments, synopsis, and tag references for characters, + plot, etc. 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. :guilabel:`Unnumbered` - Same as :guilabel:`Chapter`, but when exporting the files and automatic chapter numbering is - enabled, this file will not increment the chapter number. It also has a separate title - formatting setting. This makes the layout suitable for Prologue and Epilogue type chapters. + Same as :guilabel:`Chapter`, but when exporting the documents and automatic chapter numbering is + enabled, documents with this layout will not increment the chapter number. It also has a + separate title formatting setting. This makes the layout suitable for Prologue and Epilogue type + chapters. :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 file layout specifically for sections. + Used for scenes. This document should have a header of level three. Further sections can have + headers of level four, but there are no layout specifically for sections. :guilabel:`Note` - A generic file that is optionally ignored when the novel is exported. Use these files for - descriptions of content in the supporting root folders. Note files can also be added to the Novel - 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. + A generic document that is optionally ignored when the novel is exported. Use this layout for + descriptions of content in the supporting root folders. Notes can also be added to the + :guilabel:`Novel` root folder if you need to insert notes there. Note headers receive no special + formatting when building the project. They are always exported as-is. .. note:: The layout granularity is entirely optional. In principle, you can write the entire novel in a - single file with layout :guilabel:`Book`. You can also have a single file per chapter if that - suits you better. The :guilabel:`Outline` will show your structure of chapters and scenes - regardless of how your files are organised. + single document with layout :guilabel:`Book`. You can also have a single document per chapter if + that suits you better. The :guilabel:`Outline` will show your structure of chapters and scenes + regardless of how your documents 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. + You can always start writing with a coarse layout with one or a few documents, and then later + use the split tool to automatically split the documents into separate chapter and scene + documents. From a9b5d96d65dfa845ba3b51d638869a92c015c9bf Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Fri, 1 Jan 2021 21:23:41 +0100 Subject: [PATCH 3/3] Further docs edits --- docs/source/index.rst | 4 +- docs/source/int_interface.rst | 109 ++++++++++++++------------- docs/source/int_introduction.rst | 35 ++++----- docs/source/int_started.rst | 7 +- docs/source/write_export.rst | 12 +-- docs/source/write_notes.rst | 8 +- docs/source/write_projects.rst | 123 ++++++++++++++++--------------- docs/source/write_structure.rst | 14 ++-- 8 files changed, 156 insertions(+), 156 deletions(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 41fb2623..1fc44954 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -30,8 +30,8 @@ novelWriter |release| novelWriter is a markdown-like text editor designed for writing novels and larger projects of many smaller plain text documents. It uses its own flavour of markdown that supports a meta data syntax -for comments, synopsis and cross-referencing between files. The idea is to have a simple text -editor which allows for easy organisation of text files and notes, built on a plain text file +for comments, synopsis and cross-referencing between documents. The idea is to have a simple text +editor which allows for easy organisation of text documents and notes, built on a plain text file project repository for robustness. The plain text storage is suitable for version control software, and also well suited for file diff --git a/docs/source/int_interface.rst b/docs/source/int_interface.rst index 37ae793b..1bca5873 100644 --- a/docs/source/int_interface.rst +++ b/docs/source/int_interface.rst @@ -16,28 +16,28 @@ The main window contains a project tree in the left-most panel. It shows the ent the project. It has four columns: :guilabel:`Label` - The first column shows the item icon and its label. The labels can be edited from the menu + The first column shows the item icon and its label. The labels can be edited from the :guilabel:`Project` menu, or by 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` - 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 - from the :guilabel:`Tools` menu, or by pressing :kbd:`F9`. + The second column shows the word count of the document, 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 from the :guilabel:`Tools` menu, or by pressing :kbd:`F9`. :guilabel:`Inc` - The third column indicates whether the file is included in the final project build or not. You - may want to filter out files that you no longer want to keep in the final manuscript, but want - to keep in the project for reference. + The third column indicates whether the document is included in the final project build or not. + You may want to filter out documents that you no longer want to keep in the final manuscript, + but want to keep in the project for reference. :guilabel:`Flags` 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 - define yourself. They can be changed in :guilabel:`Project Settings` from the + the importance or status of the document. These are colour coded status levels that you control + and define yourself. They can be changed in :guilabel:`Project Settings` from the :guilabel:`Project` menu. The first character after the icon indicates the class of the item, that is ``N`` for **Novel**, ``C`` for **Character**, etc (see :ref:`a_struct_tags`). The second - character indicates the file layout type (see :ref:`a_proj_roots`). + character indicates the document layout type (see :ref:`a_proj_roots`). 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 @@ -53,16 +53,16 @@ Project Tree Drag and Drop -------------------------- The project tree allows drag and drop to a certain extent. This feature is primarily intended for -rearranging the order of your files within each root folder, and has only limited support for -moving files elsewhere in the project tree. In general, bulk actions are not allowed. This is +rearranging the order of your documents within each root folder, and has only limited support for +moving documents elsewhere in the project tree. In general, bulk actions are not allowed. This is deliberate to avoid accidentally messing up your project. The project tree has no undo function. -Document files and their folders can be rearranged freely within their root folders. Novel files +Documents and their folders can be rearranged freely within their root folders. Novel documents cannot be moved out of the :guilabel:`Novel` folder, except to :guilabel:`Trash` and the -:guilabel:`Outtakes` folder. Note files can be moved freely between root folders. +:guilabel:`Outtakes` folder. Notes can be moved freely between root folders. -Folders cannot be moved at all outside their root tree. Neither can a folder containing files be -deleted. You must first delete the files. +Folders cannot be moved at all outside their root tree. Neither can a folder containing documents +be deleted. You must first delete the containing documents. 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 eachother from the :guilabel:`Tools` menu or the @@ -75,10 +75,11 @@ key. Editing and Viewing Documents ============================= -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 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 -maximise button (activates :guilabel:`Focus Mode`) and a close button in the top-right corner. +To edit a document, double-click it in the project tree, or press the :kbd:`Return` key while +having it selected. This will open the document in the document editor. The editor uses a +simplified markdown format. The format is described in the :ref:`a_ui_md` section below. The editor +has a maximise button (activates :guilabel:`Distraction Free 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. To view a document, press :kbd:`Ctrl`:kbd:`R`, or select :guilabel:`View Document` in the @@ -89,10 +90,10 @@ with your latest changes. You can also press the reload button in the top-right 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 -the edit or view panel. Optionally, the full project path to the file can be shown. This can be set -in the :guilabel:`Preferences` dialog from the :guilabel:`Tools` menu. Clicking on the document -title bar will select and reveal the file in the project tree, making it easier to find the project -location of the file in a large project. +the edit or view panel. Optionally, the full project path to the document can be shown. This can be +set in the :guilabel:`Preferences` dialog from the :guilabel:`Tools` menu. Clicking on the document +title bar will select and reveal its location in the project tree, making it easier to find in a +large project. Any reference to a tag in the editor can be opened in the viewer by moving the cursor to the label and pressing :kbd:`Ctrl`:kbd:`Return`. In the viewer, the references become clickable links. @@ -153,28 +154,28 @@ a synopsis tag, and a set of keyword and value sets used for tags and references Headings -------- -Four levels of headings are allowed. For files of type "Note", they are free to be used as you see -fit, but for all other file layouts used for the novel text itself, they indicate the structural +Four levels of headings are allowed. For documents of layout "Note", they are free to be used as +you see fit, but for all other layouts used for the novel text itself, they indicate the structural level of the novel. See :ref:`a_struct_heads` for more details. ``# Title`` - Heading level one. If the file is a novel file, the header level indicates the start of a new - partition. This heading level can also be used for the title page novel title. + Heading level one. If the document is a novel file, the header level indicates the start of a + new partition. This heading level can also be used for the title page novel title. ``## Title`` - Heading level two. If the file is a novel file, the header level indicates the start of a new - chapter. + Heading level two. If the document is a novel file, the header level indicates the start of a + new chapter. ``### Title`` - Heading level three. If the file is a novel file, the header level indicates the start of a new - scene. + Heading level three. If the document is a novel file, the header level indicates the start of a + new scene. ``#### Title`` - Heading level four. If the file is a novel file, the header level indicates the start of a new - section. + Heading level four. If the document is a novel file, the header level indicates the start of a + new section. .. note:: - The space after the ``#`` characters is mandatory. The syntaxhighlighter will change colour and + The space after the ``#`` characters is mandatory. The syntax highlighter will change colour and font size when the heading is correctly formatted. @@ -198,7 +199,9 @@ In markdown guides it is often recommended to differentiate between strong impor by using ``**`` for strong and ``_`` for emphasis, although markdown generally also supports ``__`` for strong and ``*`` for 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: +recommendation. + +In addition, the following rules apply: 1. The emphasis and strikethrough formatting tags do not allow spaces between the words and the tag itself. That is, ``**text**`` is valid, ``**text **`` is not. @@ -216,12 +219,12 @@ recommendation. The following is therefore the only supported formatting syntax: Comments and Synopsis --------------------- -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, -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` in a dedicated column. -The word ``synopsis`` is not case sensitive. If it is correctly formatted, the syntax highlighter -will indicate this by altering the colour of the word. +In addition to these standard markdown features, novelWriter also allows for comments in document. +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), the comment +is treated specially and will show up in the :ref:`a_ui_outline` in a dedicated column. The word +``synopsis`` is not case sensitive. If it is correctly formatted, the syntax highlighter will +indicate this by altering the colour of the word. ``% text...`` A comment. The text is not exported by default (this can be overridden), seen in the Viewer, or @@ -244,8 +247,8 @@ Tags and References ------------------- The document editor supports a minimal set of keywords used for setting tags, and making references -between files. The tags and references can be set once per section defined by a heading. Using them -multiple times under the same heading will just override the previous setting. +between documents. The tags and references can be set once per section defined by a heading. Using +them multiple times under the same heading will just override the previous setting. ``@keyword: value`` A keyword argument followed by a value, or a comma separated list of values. @@ -261,7 +264,7 @@ Additional Markdown and Non-Standard Features The editor and viewer also supports markdown standard hard line breaks, and preserves non-breaking 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. +the document 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, the user can press :kbd:`Ctrl`:kbd:`K`, :kbd:`Return` to insert this. @@ -284,16 +287,16 @@ Project Outline View 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 -tree hierarchy of the elements of the novel, that is, the level 1 to 4 headings, not the files. +tree hierarchy of the elements of the novel, that is, the level 1 to 4 headings. -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 +The document 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 document in the editor. .. note:: - 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, depending how you choose to organise your files. - See the :ref:`a_struct` page for more details. + Since the internal structure of the novel does not depend directly on the folder and document + structure of the project tree, these will not necessarily look the same, depending how you + choose to organise your documents. 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. A default set of such columns is visible, but you can turn on or off more columns by right clicking @@ -405,8 +408,8 @@ Insert Shortcuts ---------------- A set of insert features are also available through shortcuts, but they require a double -combination of key sequences. The insert feature is activated with :kbd:`Ctrl-K`, followed by a key -or combination for the inserted character or punctuation. +combination of key sequences. The insert feature is activated with :kbd:`Ctrl`:kbd:`K`, followed by +a key or combination for the inserted character or punctuation. .. csv-table:: Keyboard Shortcuts :header: "Shortcut", "Description" diff --git a/docs/source/int_introduction.rst b/docs/source/int_introduction.rst index c1d9a6aa..3fe4dd3e 100644 --- a/docs/source/int_introduction.rst +++ b/docs/source/int_introduction.rst @@ -12,15 +12,15 @@ projects are structured is covered on the :ref:`a_struct` page. In addition, the project can contain notes on the various plot elements, characters, locations, etc, that make up the story. These notes are organised in a set of category-specific top-level folders (root folders), and each entry can be tagged and cross-referenced from within the novel -files and other note files. These tags make it possible to inter-link documents, and generate an -overview of the entire novel project and how the various files and plot elements are -interconnected. This is covered on the :ref:`a_proj` and :ref:`a_notes` pages. +documents and notes. These tags make it possible to inter-link documents, and generate an overview +of the entire novel project and how the various documents and plot elements are interconnected. +This is covered on the :ref:`a_proj` and :ref:`a_notes` pages. These additional features are not standard in markdown, but are available through special meta -keywords described on :ref:`a_struct_tags`. Syntax highlighting is provided to make it easier to +keywords described in :ref:`a_struct_tags`. Syntax highlighting is provided to make it easier to verify that the markdown tags are used correctly. -An overview of the extended markdown syntax is covered on the :ref:`a_ui` page. +An overview of the supported markdown syntax is covered on the :ref:`a_ui` page. .. _a_intro_design: @@ -33,7 +33,7 @@ at the same time provide a complete set of features needed for writing a novel. .. note:: novelWriter is not intended to be a full office type word processor. It doesn't support images, - links, tables, and other complex structure and objects often needed for such document. + links, tables, and other complex structures and objects often needed for such documents. Formatting 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 @@ -52,13 +52,14 @@ of icon themes in colour and greyscale are also offered. The icons are based on set designed by Stephen Hutchings. 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 -third panel is a document viewer which can view any document in your project. +tree and all the documents in your project. The second panel is the document editor, and the +optional third panel is a document viewer which can view any document in your project. 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 -you structure your novel project files, this outline can be quite different from your project tree. -Your project tree lists files, your Outline tree lists the structure of the novel itself. +you structure your novel documents, this outline can be quite different from your project tree. +Your project tree lists individual documents, your Outline tree lists the structure of the novel +itself as it appears in the text of the documents. .. _Typicons: https://github.com/stephenhutchings/typicons.font @@ -68,10 +69,10 @@ Your project tree lists files, your Outline tree lists the structure of the nove Project Layout ============== -You are free to structure your project files as you wish in subfolders, and split the text between -files in whatever way suits you. All that matters to novelWriter is the linear order the 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. +You are free to structure your project documents as you wish in subfolders, and split the text +between documents in whatever way suits you. All that matters to novelWriter is the linear order +the documents appear at in the project tree (top to bottom). The chapters, scenes and sections of +the novel are determined by the headings within those documents. The four heading levels (**H1** to **H4**) are treated as follows: @@ -80,9 +81,9 @@ The four heading levels (**H1** to **H4**) are treated as follows: * **H3** is used for scene titles – optionally replaced by separators. * **H4** is for section titles within scenes, if such granularity is needed. -This header level structure is only taken into account for novel files. For the files designated as -project notes, the header levels have no structural meaning, and the user is free to do whatever -they want. See the :ref:`a_struct` page for more details. +This header level structure is only taken into account for novel documents. For the project notes, +the header levels have no structural meaning, and the user is free to do whatever they want. See +the :ref:`a_struct` and :ref:`a_notes` pages for more details. .. _a_intro_export: diff --git a/docs/source/int_started.rst b/docs/source/int_started.rst index 9136ad1b..c9874c08 100644 --- a/docs/source/int_started.rst +++ b/docs/source/int_started.rst @@ -45,11 +45,6 @@ needed for novelWriter to run, including Python and the xml and Qt libraries. .. _main website: https://novelwriter.io -.. note:: - While the majority of virus scanners have no warnings, some scanners will flag the installer. - This is caused by the ``pyinstaller`` tool being used to create the package. The ``pyinstaller`` - binaries bundled with the installer are from the official PyPi repository. - .. _a_started_install_source: @@ -122,7 +117,7 @@ The spell checking extension is optional, but recommended: * ``pyenchant``, needed for efficient spell checking. -The optional spell check library must be at least 3.0.0 to work with Windows. On Linux, 2.0.0 also +The optional spell check library must be at least 3.0 to work with Windows. On Linux, 2.0 also works fine. diff --git a/docs/source/write_export.rst b/docs/source/write_export.rst index d1817a99..cb8df72a 100644 --- a/docs/source/write_export.rst +++ b/docs/source/write_export.rst @@ -56,7 +56,7 @@ a series of keyword–replace steps. They are all on the format ``%keyword%``. **Example** -* The format ``%title%`` just reproduces the title you set in the document file. +* The format ``%title%`` just reproduces the title you set in the document. * 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. @@ -79,11 +79,11 @@ separator. File Selection ============== -Which document files are selected for export can be controlled from the options on the left side of -the dialog window. The switch for :guilabel:`Include novel files` will select any document that -isn't classified as a note. The switch for :guilabel:`Include note files` will select any document -that *is* a note. This is allows for exporting just the novel, just your notes, or both, as you see -fit. +Which documents and notes are selected for export can be controlled from the options on the left +side of the dialog window. The switch for :guilabel:`Include novel files` will select any document +that isn't classified as a note. The switch for :guilabel:`Include note files` will select any +document that *is* a 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 exclude the body text itself. diff --git a/docs/source/write_notes.rst b/docs/source/write_notes.rst index 47094fe1..2bcb0577 100644 --- a/docs/source/write_notes.rst +++ b/docs/source/write_notes.rst @@ -1,8 +1,8 @@ .. _a_notes: -************************ -Supporting Files (Notes) -************************ +************* +Project Notes +************* novelWriter doesn't have a database and complicated forms to fill in all details about plot elements, characters, and all sorts of additional information that isn't a part of the novel text @@ -10,7 +10,7 @@ itself. Instead, all such information is saved in notes. The relation between al elements is extracted from these documents by the project indexer based on the tags and references you set. -These documents are not required, but making at least minimal files for each such plot element, and +These notes are not required, but making at least minimal files for each such plot element, and adding a tag to them, makes it possible to use the :guilabel:`Outline` feature to see how each element intersects with each section of the novel itself, and adds clickable cross-references between documents in the editor and viewer. diff --git a/docs/source/write_projects.rst b/docs/source/write_projects.rst index af2000e5..a7611da9 100644 --- a/docs/source/write_projects.rst +++ b/docs/source/write_projects.rst @@ -26,9 +26,9 @@ Project Roots Projects are structured into a set of top level folders called *root folders*. They are visible in the project tree at the left side of the main window. -The core novel files go into a root folder of type :guilabel:`Novel`. Other supporting files go -into the other root folders. These other root folder types are intended for your notes on the -various elements of your story. Using these is of course entirely optional. +The core novel documents go into a root folder of type :guilabel:`Novel`. Other supporting +documents go into the other root folders. These other root folder types are intended for your notes +on the various elements of your story. Using these is of course entirely optional. A new project may not have all of the root folders present, but you can add the ones you want from :guilabel:`Create Root Folder` in the :guilabel:`Project` menu. @@ -37,17 +37,17 @@ The root folders are intended for the following use, but aside from the :guilabe no restrictions are enforced by the application. You can use them however you want. :guilabel:`Novel` - 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 - details. + This is the root folder of all text that goes into the final novel. This class of documents have + other rules and features than other documents in the project. See the :ref:`a_struct` page for + more details. :guilabel:`Plot` 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 + dummy notes can be useful in order to tag plot elements for the Outline view. Tags in this folder can be references using the ``@plot`` keyword. :guilabel:`Characters` - Character files go in this root folder. These are especially important if one wants to use the + Character notes 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 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. @@ -58,7 +58,7 @@ no restrictions are enforced by the application. You can use them however you wa :guilabel:`Timeline` 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`` + notes can be used to track this. Tags in this folder can be references using the ``@time`` keyword. :guilabel:`Objects` @@ -88,13 +88,14 @@ information about the tags listed, see :ref:`a_struct_tags`. Deleted Documents ----------------- -Deleted document files will be moved into a special :guilabel:`Trash` root folder. Files in the +Deleted documents will be moved into a special :guilabel:`Trash` root folder. Documents in the trash folder can then be deleted permanently, either individually, or by emptying the trash from -the menu. Files in this folder are removed from the project index and cannot be referenced. +the menu. Documents in the trash folder are removed from the project index and cannot be +referenced. 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`. +supported. A document or a folder can be deleted from the :guilabel:`Project` menu, or by pressing +:kbd:`Ctrl`:kbd:`Del`. .. _a_proj_roots_out: @@ -102,15 +103,15 @@ pressing :kbd:`Ctrl`:kbd:`Del`. Archived Documents (Outtakes) ----------------------------- -If you don't want to delete a file, or put it in the :guilabel:`Trash` folder where it may be +If you don't want to delete a document, or put it in the :guilabel:`Trash` folder where it may be deleted, but still want it out of your main project tree, you can create an :guilabel:`Outtakes` root folder from the :guilabel:`Project` menu. You are not allowed to move folders to this root -folder, only files. If you need folders in it to organise your files, you can of course create new -ones there. +folder, only documents. If you need folders in it to organise your documents, you can of course +create new ones there. -You can drag any file to this folder and preserve its settings. The file will always be excluded -from the :guilabel:`Build Novel Project` builds. The file is also removed from the project index, -so the tags and references defined in it will not show up anywhere else. +You can drag any document to this folder and preserve its settings. The document will always be +excluded from the :guilabel:`Build Novel Project` builds. It is also removed from the project +index, so the tags and references defined in it will not show up anywhere else. .. _a_proj_roots_orph: @@ -123,17 +124,17 @@ file synchronisation tool that runs out of sync, there may be files in the proje aren't tracked in the core project file. These files, when discovered, are recovered and added back into the project if possible. -The discovered files are scanned for meta information that gives clues as to where the file may +The discovered files are scanned for meta information that gives clues as to where the document may previously have been located in the project. The project loading routines will try to put them back as close as possible to this location, if it still exists. Generally, it will be appended to the end of the folder where it previously was located. If that folder doesn't exist, it will try to add -it to the correct root folder. If it cannot figure out which root folder is correct, the file will -be added to the :guilabel:`Novel` root folder. Only if the :guilabel:`Novel` folder is missing, it -will give up. +it to the correct root folder. If it cannot figure out which root folder is correct, the document +will be added to the :guilabel:`Novel` root folder. Only if the :guilabel:`Novel` folder is +missing will it give up. -If the title of the file can be recovered, the word "Recovered:" will be added as a prefix. If the -title cannot be determined, the file will be named "Recovered File N" where N is a sequential -number. +If the title of the document can be recovered, the word "Recovered:" will be added as a prefix. If +the title cannot be determined, the document will be named "Recovered File N" where N is a +sequential number. .. _a_proj_roots_lock: @@ -141,7 +142,7 @@ number. Project Lockfile ---------------- -To prevent lost files caused by file conflicts when novelWriter projects are synced with file +To prevent lost documents caused by file conflicts when novelWriter projects are synced with file synchronisation tools, a project lockfile is written to the project folder. If you try to open a project which has such a file present, you will be presented with a warning, and some information about where else novelWriter thinks the project is also open. You will be give the option to ignore @@ -165,32 +166,33 @@ Using Folders in the Project Tree --------------------------------- 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. -Only the order of the document files themselves matter. +is processing the documents in the novel, like for instance during export, these folders are +ignored. Only the order of the documents themselves matter. -The folders are there purely as a way for the user to organise the files in meaningful sections and -to be able to collapse and hide them in the project tree when you're not working on those files. +The folders are there purely as a way for the user to organise the documents in meaningful sections +and to be able to collapse and hide them in the project tree when you're not working on those +documents. .. tip:: - You can use folders to sort your scene files into chapters. You will then need to add a chapter - file as the first file of your folder, and the scene files as the following files. + You can use folders to sort your scene documents into chapters. You will then need to add a + chapter documents as the first item of your folder, and the scene documents as the following + items. .. _a_proj_files: -Project Files -============= +Project Documents +================= -New document files can be created from the :guilabel:`Document` menu, or by pressing -:kbd:`Ctrl`:kbd:`N` while in the project tree. This will create a new, empty file, and open the -:guilabel:`:Item Settings` dialog where the filename and various other settings can be changed. -This dialog can also be opened again later from either the :guilabel:`Project` menu, selecting -:guilabel:`Edit Project Item`, or by pressing :kbd:`Ctrl`:kbd:`E` or :kbd:`F2` with the item -selected. +New documents can be created from the :guilabel:`Document` menu, or by pressing :kbd:`Ctrl`:kbd:`N` +while in the project tree. This will create a new, empty document, and open the :guilabel:`Item +Settings` dialog where the document label and various other settings can be changed. This dialog +can also be opened again later from either the :guilabel:`Project` menu, selecting :guilabel:`Edit +Project Item`, or by pressing :kbd:`Ctrl`:kbd:`E` or :kbd:`F2` with the item selected. -The layout of the file is also defined here. For Novel files, the full list of layout options are -available. For non-Novel files, only "Note" is available. See :ref:`a_struct_layout` for more -details. +The layout of the document is also defined here. For Novel documents, the full list of layout +options are available. For non-Novel documents, only :guilabel:`Note` is available. See +:ref:`a_struct_layout` for more details. You can also select whether the document 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 @@ -206,7 +208,7 @@ Word Counts A character, word and paragraph count is maintained for each document, as well as for each section of a document following a header. The word count, and change of words in the current session, is displayed in the footer of any document open in the editor, and all stats are shown in the details -panel below the project tree for any file selected. +panel below the project tree for any document selected in the project tree. The word counts are not updated in real time, but run in the background every five seconds for as long as the document is being actively edited. @@ -238,35 +240,34 @@ Title` should remain unchanged throughout the project, otherwise the name of exp backup files may change too. The :guilabel:`Book Title` and :guilabel:`Book Authors` settings are currently not used for -anything, so setting then is just for the benefit of the author. Future, planned features may be -using them, and they are exported on some export formats in the :guilabel:`Build Novel Project` -tool. +anything, so setting then is just for the benefit of the author. Future features may be using them, +and they are exported on some export formats in the :guilabel:`Build Novel Project` tool. Details Tab ----------- This tab presents an overview of meta data for the project. It states where on your file system the -project is saved, how may times it has been saved, how many folders and files it contains, and how -many words exist in the entire project. +project is saved, how may times it has been saved, how many folders and documents it contains, and +how many words exist in the entire project. Status and Importance Tabs -------------------------- -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 can be applied to each file. +Each document or folder of type :guilabel:`Novel` can be given a status level, signified by a +coloured icon, and each document or folder of the remaining types can be given an importance level. +These are colour coded icons and labels that can be applied to each document or folder. These are purely there for the user's convenience, and you are not required to use them for any -other feature to work. No other part of novelWriter accesses this information. The intention is to -use these to indicate at what stage of completion each novel file is, or how important the content -of a note file is to the plot. You don't have to use them this way, that's just what they were +other features to work. No other part of novelWriter accesses this information. The intention is to +use these to indicate at what stage of completion each novel document is, or how important the +content of a note is to the plot. You don't have to use them this way, that's just what they were intended for, but you can make them whatever you want. .. note:: - The status or importance level currently in use by one or more files cannot be deleted, but they - can be edited. + The status or importance level currently in use by one or more documents cannot be deleted, but + they can be edited. Auto-Replace Tab @@ -313,9 +314,9 @@ Settings`. Writing Statistics ================== -When you work on your project, a log file records when you opened it, when you closed it, and the -latest total word counts of your novel and note files after the session. You can view this file in -the ``meta`` folder in the directory where you saved your project. The file is named +When you work on a project, a log file records when you opened it, when you closed it, and the +total word counts of your novel documents and notes at the end of the session. You can view this +file in the ``meta`` folder in the directory where you saved your project. The file is named ``sessionStats.log``. A tool to view the content of this file is available in the :guilabel:`Tools` menu under diff --git a/docs/source/write_structure.rst b/docs/source/write_structure.rst index bb70be1a..9af479a9 100644 --- a/docs/source/write_structure.rst +++ b/docs/source/write_structure.rst @@ -6,8 +6,8 @@ Novel Structure This section covers the structure of a novel project. -It concerns documents under the Novel type root folder only. There are some restrictions and -features that only apply to these types of documents. +It concerns documents under the :guilabel:`Novel` type root folder only. There are some +restrictions and features that only apply to these types of documents. .. _a_struct_heads: @@ -76,8 +76,8 @@ removed before inserted at the location of the ``%title%`` label. See the :ref:` more details. .. note:: - If you need the first character of the title to be an actual asterisk, you must escape it like - so: ``\*``. + If you need the first character of the title to be an actual asterisk, you must escape it: + ``\*``. .. _a_struct_tags: @@ -86,9 +86,9 @@ Tag References ============== Each text partition indicated by a heading of any level, can contain references to tags set in the -supporting documents of the project. The references are gathered by the indexer and used to -generate the outline view on the :guilabel:`Outline` tab of how the different parts of the novel -are connected. +supporting notes of the project. The references are gathered by the indexer and used to generate +the 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 between reference notes while writing. Clicked links are always opened in the view panel.