diff --git a/docs/source/features/shortcuts.rst b/docs/source/features/shortcuts.rst index 1ed000d0..dda89d91 100644 --- a/docs/source/features/shortcuts.rst +++ b/docs/source/features/shortcuts.rst @@ -114,7 +114,7 @@ Other Editor Shortcuts ":kbd:`Ctrl+.`", "Open the context menu at the current cursor location" ":kbd:`Ctrl+A`", "Select all text in the document" ":kbd:`Ctrl+C`", "Copy selected text to clipboard" - ":kbd:`Ctrl+K`", "Activate the insert commands (see list in :ref:`a_kb_ins`)" + ":kbd:`Ctrl+K`", "Activate the insert commands (see list in :ref:`docs_features_shortcuts_insert`)" ":kbd:`Ctrl+R`", "Open or reload the current document in the viewer" ":kbd:`Ctrl+S`", "Save the current document" ":kbd:`Ctrl+V`", "Paste text from clipboard to cursor position" @@ -129,6 +129,8 @@ Other Editor Shortcuts ":kbd:`Ctrl+Shift+A`", "Select all text in the current paragraph" +.. _docs_features_shortcuts_insert: + Insert Shortcuts ---------------- diff --git a/docs/source/more/howto.rst b/docs/source/howto.rst similarity index 98% rename from docs/source/more/howto.rst rename to docs/source/howto.rst index d63d6569..da64e2fe 100644 --- a/docs/source/more/howto.rst +++ b/docs/source/howto.rst @@ -33,7 +33,7 @@ Managing the Project and :guilabel:`Merge Documents in Folder`. In the dialog that pops up, the documents will be in the same order as in the folder, but you - can rearrange them here of you wish. See :ref:`a_ui_tree_split_merge` for more details. + can rearrange them here of you wish. See :ref:`docs_ui_split_merge` for more details. .. dropdown:: How do I share status or importance labels between projects? :animate: fade-in-slide-down diff --git a/docs/source/index.rst b/docs/source/index.rst index 8a3d8d53..252dadec 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -34,6 +34,7 @@ storage for robustness. Main Page More Documents + howto .. toctree:: :caption: Using novelWriter @@ -53,7 +54,11 @@ storage for robustness. :hidden: user_interface/introduction + user_interface/projects + user_interface/editor_viewer + user_interface/split_and_merge user_interface/manuscript + user_interface/statistics .. toctree:: :caption: Additional Features @@ -69,10 +74,10 @@ storage for robustness. :caption: Special Topics :hidden: - more/howto more/counting more/typography more/customise + more/handling_errors more/project_format .. toctree:: @@ -84,24 +89,3 @@ storage for robustness. technical/storage technical/source technical/tests - - - - -.. toctree:: - :maxdepth: 1 - :caption: Using novelWriter - :hidden: - - usage_breakdown - usage_project - usage_writing - usage_shortcuts - -.. toctree:: - :maxdepth: 1 - :caption: Organising Your Project - :hidden: - - project_overview - project_structure diff --git a/docs/source/more/handling_errors.rst b/docs/source/more/handling_errors.rst new file mode 100644 index 00000000..559fdaf6 --- /dev/null +++ b/docs/source/more/handling_errors.rst @@ -0,0 +1,62 @@ +.. _docs_more_errors: + +*************** +Handling Errors +*************** + +In case something goes wrong, novelWriter has a few built-in features to reduce the change your +work is lost. In case of a crash, it will also try to save whatever changes you have made before +existing, if this is at all possible. + +The storage solution is designed to save each text document independently, so only the document +you're working on is actually at a risk of losing data in the event of a crash. + + +.. _docs_more_errors_orphaned: + +Recovered Documents +=================== + +If novelWriter crashes or otherwise exits without saving the project state, or if you're using a +file synchronisation tool that runs out of sync, there may be files in the project storage folder +that aren't tracked in the core project file. These files, when discovered, are recovered and added +back into the project when a project is opened. + +The discovered files are scanned for metadata that give clues as to where the document may +previously have been located in the project. The project loading routine 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 type. If it cannot figure out which root folder is correct, the +document will be added to the **Novel** root folder. Finally, if a **Novel** does not exist, one +will be created. + +If the title of the document can be recovered, the word "Recovered:" will be added as a prefix to +indicate that it may need further attention. If the title cannot be determined, the document will +be named after its internal key, which is a string of characters and numbers. + + +.. _docs_more_errors_lock: + +Project Lockfile +================ + +To prevent data loss caused by file conflicts when novelWriter projects are synchronised via file +synchronisation tools, a project lockfile is written to the project storage folder when a project +is open. If you try to open a project which already 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 given the option to ignore this warning, and continue opening the project at your own +risk. + +.. note:: + + If, for some reason, novelWriter or your computer crashes, the lock file may remain even if + there are no other instances keeping the project open. In such a case it is safe to ignore the + lock file warning when re-opening the project. + +.. warning:: + + If you choose to ignore the warning and continue opening the project, and multiple instances of + the project are in fact open, you are likely to cause inconsistencies and create diverging + project files, potentially resulting in loss of data and orphaned files. You are not likely to + lose any actual text unless both instances have the same document open in the editor, and + novelWriter will try to resolve project inconsistencies the next time you open the project. diff --git a/docs/source/more/typography.rst b/docs/source/more/typography.rst index 99db637a..d598dbf7 100644 --- a/docs/source/more/typography.rst +++ b/docs/source/more/typography.rst @@ -12,7 +12,7 @@ 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 **Insert** menu, and via -keyboard shortcuts. See :ref:`a_kb_ins`. +keyboard shortcuts. See :ref:`docs_features_shortcuts_insert`. This chapter provides some additional information on how novelWriter handles these symbols. @@ -28,10 +28,10 @@ This section contains additional notes on the available special symbols. 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+Z`, reverting the text to what you typed before -the automatic replacement occurred. +With the auto-replace feature enabled (see :ref:`docs_ui_edit_view_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+Z`, reverting the text to what you typed +before the automatic replacement occurred. In addition, "Figure Dash" is available. The Figure Dash is a dash that has the same width as the numbers of the same font, for most fonts. It helps to align numbers nicely in columns when you need diff --git a/docs/source/project_overview.rst b/docs/source/project_overview.rst deleted file mode 100644 index 9cbf2c59..00000000 --- a/docs/source/project_overview.rst +++ /dev/null @@ -1,311 +0,0 @@ -.. _a_proj: - -***************** -Managing Projects -***************** - -Your text in novelWriter is organised into projects. Each project is meant to contain one novel -and associated notes. If you have multiple novels in a series, with the same characters and shared -notes, it is also possible to keep all of them in the same project. - -.. _a_proj_new: - -Creating Project -================ - -New projects can be created from the **Project** menu by selecting **Create or Open Project**. This -will open the **Welcome** dialog, where you can select the :guilabel:`New` button that will assist -you in creating a new project. This dialog is also displayed when you start novelWriter. - -A novelWriter project requires a dedicated folder for storing its files on the local file system. -If you're interested in the details, you can have a look at the chapter :ref:`docs_technical_storage`. - -A list of recently opened projects is maintained, and displayed in the **Welcome** dialog. A -project can be removed from this list by selecting it and pressing the :kbd:`Del` key or by -right-clicking it and selecting the **Remove Project** option. - -.. figure:: images/fig_welcome.jpg - - The project list (left) and new project form (right) of the :guilabel:`Welcome` dialog. - -Project-specific settings are available in **Project Settings** in the **Project** menu. See -further details below in the :ref:`a_proj_settings` section. - -Details about the project's novel text, including word counts, and a table of contents with word -and page counts, is available through the **Novel Details** dialog. Statistics about the project -is also available in the **Manuscript Build** tool. - - -Template Projects ------------------ - -From the Welcome dialog you can also create a new from another existing project. If you have a -specific structure you want to use for all your new projects, you can create a dedicated project to -be used as a template, and select to copy an existing project from the :guilabel:"Prefill Project" -option from the **New Project** form. - - -.. _a_proj_roots: - -Project Structure -================= - - -.. _a_proj_roots_del: - -Deleted Documents ------------------ - -Deleted documents are moved into a special **Trash** root folder. Documents in the trash folder can -then be deleted permanently, either individually, or by emptying the trash from the menu. Documents -in the trash folder are removed from the project index and cannot be referenced. - -A document or a folder can be moved to trash from the **Project** menu, or by pressing -:kbd:`Ctrl+Shift+Del`. Root folders can only be removed when they are empty. - - -.. _a_proj_roots_out: - -Archived Documents ------------------- - - -.. _a_proj_roots_dirs: - -Using Folders in the Project Tree ---------------------------------- - - -.. _a_proj_roots_orphaned: - -Recovered Documents -------------------- - -If novelWriter crashes or otherwise exits without saving the project state, or if you're using a -file synchronisation tool that runs out of sync, there may be files in the project storage folder -that aren't tracked in the core project file. These files, when discovered, are recovered and added -back into the project when a project is opened. - -The discovered files are scanned for metadata that give clues as to where the document may -previously have been located in the project. The project loading routine 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 type. If it cannot figure out which root folder is correct, the -document will be added to the **Novel** root folder. Finally, if a **Novel** does not exist, one -will be created. - -If the title of the document can be recovered, the word "Recovered:" will be added as a prefix to -indicate that it may need further attention. If the title cannot be determined, the document will -be named after its internal key, which is a string of characters and numbers. - - -.. _a_proj_roots_lock: - -Project Lockfile ----------------- - -To prevent data loss caused by file conflicts when novelWriter projects are synchronised via file -synchronisation tools, a project lockfile is written to the project storage folder when a project -is open. If you try to open a project which already 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 given the option to ignore this warning, and continue opening the project at your own -risk. - -.. note:: - - If, for some reason, novelWriter or your computer crashes, the lock file may remain even if - there are no other instances keeping the project open. In such a case it is safe to ignore the - lock file warning when re-opening the project. - -.. warning:: - - If you choose to ignore the warning and continue opening the project, and multiple instances of - the project are in fact open, you are likely to cause inconsistencies and create diverging - project files, potentially resulting in loss of data and orphaned files. You are not likely to - lose any actual text unless both instances have the same document open in the editor, and - novelWriter will try to resolve project inconsistencies the next time you open the project. - - -.. _a_proj_files: - -Project Documents -================= - -New documents can be created from the toolbar in the project tree, or by pressing :kbd:`Ctrl+N`. -This will open the create new item menu and let you choose between a number of pre-defined -documents and folders. You will be prompted for a label for the new item. - -You can always rename an item by selecting **Rename Item** from the **Project** menu, or by -pressing :kbd:`F2` when a document or folder is selected. - -Other settings for project documents and folders are available from the context menu that you can -activate by right-clicking on an it in the tree. The **Transform** submenu includes options for -converting, splitting, or merging documents. See :ref:`a_ui_tree_split_merge` for more details on -the latter two. - - -Document Templates ------------------- - -If you wish to create template documents to be used when creating new project documents, like for -instance a character note template, you can add a **Templates** root folder to your project. Any -document added to this root folder will show up in the **Add Item** menu in the project tree -toolbar. When selected, a new document is created with its content copied from the chosen template. - -.. versionadded:: 2.3 - - -.. _a_proj_files_counts: - -Word Counts ------------ - -A character, word and paragraph count is maintained for each document, as well as for each section -of a document following a heading. The word count and change of words in the -current session is displayed in the footer of any document open in the editor, and all stats are -shown in the details panel below the project tree for any document selected in the project or novel -trees. - -The word counts are not updated in real time, but run in the background every few seconds for as -long as the document is being actively edited. - -A total project word count is displayed in the status bar. The total count depends on the sum of -the values in the project tree, which again depend on an up to date project index. If the -counts seem wrong, a full project word recount can be initiated by rebuilding the project's index. -Either from the **Tools** menu, or by pressing :kbd:`F9`. - -The rules for how the counts are made is covered in more detail in :ref:`docs_more_counting`. - - -.. _a_proj_settings: - -Project Settings -================ - -The **Project Settings** can be accessed from the **Project** menu, or by pressing -:kbd:`Ctrl+Shift+,`. This will open a dialog box, with a set of tabs. - - -Settings Tab ------------- - -The **Settings** tab holds the project name, author, and language settings. - -The **Project Name** can be edited here. It is used for the main window title and for generating -backup files. So keep in mind that if you do change this setting, the backup file names will change -too. - -You can also change the **Authors** and **Project Language** setting. These are only used when -building the manuscript, for some formats. The language setting is also used when inserting text -into documents in the viewer, like for instance labels for keywords and special comments. - -If your project is in a different language than your main spell checking language is set to, you -can override the default setting here. The project language can also be changed from the **Tools** -menu. - -You can also override the automatic backup setting for the project if you wish. - - -Status and Importance Tabs --------------------------- - -Each document or folder of type **Novel** can be given a "Status" label accompanied by a coloured -icon with an optional shape selected from a list of pre-defined shapes. Each document or folder of -the remaining types can be given an "Importance" label with the same customisation options. - -These labels are there purely for your convenience, and you are not required to use them for any -other features to work. No other part of novelWriter accesses this information. The intention is to -use these to indicate at what stage of completion each novel document is, or how important the -content of a note is to the story. You don't have to use them this way, that's just what they were -intended for, but you can make them whatever you want. - -Both status and importance labels can be exported and imported so you can share them between -projects, or define a standard set for all your writing projects. When you import labels to a -project, they are always added as *new* labels. - -See also :ref:`a_ui_tree_status`. - -.. note:: - - The status or importance level currently in use by one or more documents cannot be deleted, but - they can be edited. - - -Auto-Replace Tab ----------------- - -A set of automatically replaced keywords can be added in this tab. The keywords in the left column -will be replaced by the text in the right column when documents are opened in the viewer. They will -also be applied to manuscript builds. - -The auto-replace feature will replace text in angle brackets that is in this list. The syntax -highlighter will add an alternate colour to text matching the syntax, but it doesn't check if the -text is in this list. - -.. note:: - A keyword cannot contain spaces. The angle brackets are added by default, and when used in the - text are a part of the keyword to be replaced. This is to ensure that parts of the text aren't - unintentionally replaced by the content of the list. - - -.. _a_proj_backup: - -Backup -====== - -An automatic backup system is built into novelWriter. In order to use it, a backup path to where -the backup files are to be stored must be provided in **Preferences**. The path defaults to a -folder named "Backups" in your home directory. - -Backups can be run automatically when a project is closed, which also implies it is run when the -application itself is closed. Backups are date stamped zip files of the project files in the -project folder (files not strictly a part of the project are ignored). The zip archives are stored -in a subfolder of the backup path. The subfolder will have the same name as the **Project Name** as -defined in :ref:`a_proj_settings`. - -The backup feature, when configured, can also be run manually from the **Tools** menu. It is also -possible to disable automated backups for a given project in **Project Settings**. - -.. note:: - For the backup to be able to run, the **Project Name** must be set in **Project Settings**. This - value is used to generate the name and path of the backups. Without it, the backup will not run - at all, but it will produce a warning message. - - -.. _a_proj_stats: - -Writing Statistics -================== - -When you work on a project, a log file records when you opened it, when you closed it, and the -total word counts of your novel documents and notes at the end of the session, provided that the -session lasted either more than 5 minutes, or that the total word count changed. For more details -about the log file, see :ref:`docs_technical_storage`. - -A tool to view the content of the log file is available in the **Tools** menu under **Writing -Statistics**. You can also launch it by pressing :kbd:`F6`, or find it on the sidebar. - -The tool will show a list of all your sessions, and a set of filters to apply to the data. You can -also export the filtered data to a JSON file or to a CSV file that can be opened by a spreadsheet -application like for instance Libre Office Calc or Excel. - -.. versionadded:: 1.2 - - As of version 1.2, the log file also stores how much of the session time was spent idle. The - definition of idle here is that the novelWriter main window loses focus, or the user hasn't made - any changes to the currently open document in five minutes. The number of minutes can be altered - in **Preferences**. - - -Session Timer -------------- - -A session timer is by default visible in the status bar. The icon will show you a clock icon when -you are active, and a pause icon when you are considered "idle" per the criteria mentioned above. - -If you do not wish to see the timer, you can click on it once to hide it. The icon will still be -visible. Click the icon once more to display the timer again. - -.. versionadded:: 2.6 - - As of version 2.6, clicking the timer text or icon in the status bar will toggle its visibility. diff --git a/docs/source/usage/organising_project.rst b/docs/source/usage/organising_project.rst index f7030e0c..8c7bf0ba 100644 --- a/docs/source/usage/organising_project.rst +++ b/docs/source/usage/organising_project.rst @@ -116,3 +116,32 @@ manuscript from it, these folders are ignored. Only the order of the documents t The folders are there purely as a way for you 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. + + +.. _docs_usage_project_documents: + +Project Documents +================= + +New documents can be created from the toolbar in the project tree, or by pressing :kbd:`Ctrl+N`. +This will open the create new item menu and let you choose between a number of pre-defined +documents and folders. You will be prompted for a label for the new item. + +You can always rename an item by selecting **Rename Item** from the **Project** menu, or by +pressing :kbd:`F2` when a document or folder is selected. + +Other settings for project documents and folders are available from the context menu that you can +activate by right-clicking on an it in the tree. The **Transform** submenu includes options for +converting, splitting, or merging documents. See :ref:`docs_ui_split_merge` for more details on +the latter two. + + +Document Templates +------------------ + +If you wish to create template documents to be used when creating new project documents, like for +instance a character note template, you can add a **Templates** root folder to your project. Any +document added to this root folder will show up in the **Add Item** menu in the project tree +toolbar. When selected, a new document is created with its content copied from the chosen template. + +.. versionadded:: 2.3 diff --git a/docs/source/usage_breakdown.rst b/docs/source/usage_breakdown.rst index d1443924..5601139f 100644 --- a/docs/source/usage_breakdown.rst +++ b/docs/source/usage_breakdown.rst @@ -30,8 +30,8 @@ the header of the document editor. It gives quick access to standard formatting Most formatting features supported are available through convenient keyboard shortcuts. They are also available in the main menu under **Format**, so you don't have to look up formatting codes -every time you need them. For reference, a list of all shortcuts can be found in the :ref:`a_kb` -chapter. +every time you need them. For reference, a list of all shortcuts can be found in the +:ref:`docs_features_shortcuts` section. .. note:: novelWriter is not intended to be a full office type word processor. It doesn't support images, diff --git a/docs/source/usage_project.rst b/docs/source/usage_project.rst index db916520..2927848e 100644 --- a/docs/source/usage_project.rst +++ b/docs/source/usage_project.rst @@ -69,55 +69,6 @@ addition to the word count. :guilabel:`Set as Document Name` from the context menu. -.. _a_ui_tree_split_merge: - -Splitting and Merging Documents -------------------------------- - -Under the **Transform** submenu in the context menu of an item in the project tree, you will find -several options on how to change a document or folder. This includes changing between document and -note, but also splitting them into multiple documents, or merging child items into a single -document. - - -Splitting Documents -^^^^^^^^^^^^^^^^^^^ - -.. figure:: images/fig_project_split_tool.png - - The **Split Document** dialog. - -The **Split Document by Headings** option will open a dialog that allows you to split the selected -document into multiple new documents based on the headings it contains. You can select at which -heading level the split is to be performed from the dropdown box. The list box will preview which -headings will be split into new documents. - -You are given the option to create a folder for these new documents, and whether or not to create a -hierarchy of documents. That is, put sections under scenes, and scenes under chapters. - -The source document **is not** deleted in the process, but you have the option to let the tool move -the source document to the :guilabel:`Trash` folder. - - -Merging Documents -^^^^^^^^^^^^^^^^^ - -.. figure:: images/fig_project_merge_tool.png - - The **Merge Documents** dialog. - -You have two options for merging documents that are child elements of another document. You can -either **Merge Child Items into Self** and **Merge Child Items into New**. The first option will -pull all content of child items and merge them into the parent document, while the second option -will create a new document in the process. - -When merging documents in a folder, you only have the latter process is possible, so only the -choice **Merge Documents in Folder** is available. - -In either case, the **Merge Documents** dialog will let you exclude documents you don't want to -include, and it also lets you reorder them if you wish. - - .. _a_ui_tree_status: Document Importance and Status diff --git a/docs/source/usage_shortcuts.rst b/docs/source/usage_shortcuts.rst deleted file mode 100644 index 8aa93e72..00000000 --- a/docs/source/usage_shortcuts.rst +++ /dev/null @@ -1,199 +0,0 @@ -.. _a_kb: - -****************** -Keyboard Shortcuts -****************** - -Most features in novelWriter are available as keyboard shortcuts. This is a reference list of those -shortcuts. Most of them are also listed in the application's user interface. - -.. note:: - On MacOS, replace :kbd:`Ctrl` with :kbd:`Cmd`. - - -.. _a_kb_main: - -Main Window Shortcuts -===================== - -.. csv-table:: - :header: "Shortcut", "Description" - - ":kbd:`F1`", "Open the online user manual" - ":kbd:`F5`", "Open the **Build Manuscript** tool" - ":kbd:`F6`", "Open the **Writing Statistics** tool" - ":kbd:`F8`", "Toggle **Focus Mode**" - ":kbd:`F9`", "Re-build the project's index" - ":kbd:`F11`", "Toggle full screen mode" - ":kbd:`Ctrl+,`", "Open the **Preferences** dialog" - ":kbd:`Ctrl+E`", "Switch or toggle focus for the editor or viewer" - ":kbd:`Ctrl+T`", "Switch or toggle focus for the project tree or novel view" - ":kbd:`Ctrl+Q`", "Exit novelWriter" - ":kbd:`Ctrl+Shift+,`", "Open the **Project Settings** dialog" - ":kbd:`Ctrl+Shift+O`", "Open the Welcome dialog to open or create a project" - ":kbd:`Ctrl+Shift+S`", "Save the current project" - ":kbd:`Ctrl+Shift+T`", "Switch focus to the outline view" - ":kbd:`Ctrl+Shift+W`", "Close the current project" - ":kbd:`Shift+F1`", "Open the local user manual (PDF) if it is available" - ":kbd:`Shift+F6`", "Open the **Project Details** dialog" - - -.. _a_kb_tree: - -Project Tree Shortcuts -====================== - -.. csv-table:: - :header: "Shortcut", "Description" - - ":kbd:`F2`", "Edit the label of the selected item" - ":kbd:`Return`", "Open the selected document in the editor" - ":kbd:`Alt+Up`", "Jump or go to the previous item at same level in the tree" - ":kbd:`Alt+Down`", "Jump or go to the next item at same level in the tree" - ":kbd:`Alt+Left`", "Jump to the parent item in the tree" - ":kbd:`Alt+Right`", "Jump to the first child item in the project tree" - ":kbd:`Ctrl+.`", "Open the context menu on the selected item" - ":kbd:`Ctrl+L`", "Open the **Quick Links** menu" - ":kbd:`Ctrl+N`", "Open the **Create New Item** menu" - ":kbd:`Ctrl+O`", "Open the selected document in the editor" - ":kbd:`Ctrl+R`", "Open the selected document in the viewer" - ":kbd:`Ctrl+Up`", "Move selected item one step up in the tree" - ":kbd:`Ctrl+Down`", "Move selected item one step down in the tree" - ":kbd:`Ctrl+Shift+Del`", "Move the selected item to Trash" - - -.. _a_kb_editor: - -Document Editor Shortcuts -========================= - - -Text Search Shortcuts ---------------------- - -.. csv-table:: - :header: "Shortcut", "Description" - - ":kbd:`F3`", "Find the next occurrence of the search word" - ":kbd:`Ctrl+F`", "Open search and look for the selected word" - ":kbd:`Ctrl+G`", "Find the next occurrence of the search word" - ":kbd:`Ctrl+H`", "Open replace and look for the selected word (Mac :kbd:`Cmd+=`)" - ":kbd:`Ctrl+Shift+1`", "Replace selected occurrence, and move to the next" - ":kbd:`Ctrl+Shift+G`", "Find the previous occurrence of the search word" - ":kbd:`Ctrl+Shift+F`", "Open project search and look for the selected word" - ":kbd:`Shift+F3`", "Find the previous occurrence of the search word" - - -Text Formatting Shortcuts -------------------------- - -.. csv-table:: - :header: "Shortcut", "Description" - - ":kbd:`Ctrl+'`", "Wrap selected text, or word under cursor, in single quotes" - ":kbd:`Ctrl+""`", "Wrap selected text, or word under cursor, in double quotes" - ":kbd:`Ctrl+/`", "Toggle comment format for block or selected text" - ":kbd:`Ctrl+0`", "Remove format for block or selected text" - ":kbd:`Ctrl+1`", "Change block format to heading level 1" - ":kbd:`Ctrl+2`", "Change block format to heading level 2" - ":kbd:`Ctrl+3`", "Change block format to heading level 3" - ":kbd:`Ctrl+4`", "Change block format to heading level 4" - ":kbd:`Ctrl+5`", "Change block alignment to left-aligned" - ":kbd:`Ctrl+6`", "Change block alignment to centred" - ":kbd:`Ctrl+7`", "Change block alignment to right-aligned" - ":kbd:`Ctrl+8`", "Add a left margin to the block" - ":kbd:`Ctrl+9`", "Add a right margin to the block" - ":kbd:`Ctrl+B`", "Format selected text, or word under cursor, with bold" - ":kbd:`Ctrl+D`", "Format selected text, or word under cursor, with strike through" - ":kbd:`Ctrl+I`", "Format selected text, or word under cursor, with italic" - ":kbd:`Ctrl+Shift+/`", "Remove format for block or selected text" - ":kbd:`Ctrl+Shift+D`", "Toggle ignored text format for block or selected text" - - -Other Editor Shortcuts ----------------------- - -.. csv-table:: - :header: "Shortcut", "Description" - - ":kbd:`F7`", "Re-run the spell checker on the document" - ":kbd:`Ctrl+.`", "Open the context menu at the current cursor location" - ":kbd:`Ctrl+A`", "Select all text in the document" - ":kbd:`Ctrl+C`", "Copy selected text to clipboard" - ":kbd:`Ctrl+K`", "Activate the insert commands (see list in :ref:`a_kb_ins`)" - ":kbd:`Ctrl+R`", "Open or reload the current document in the viewer" - ":kbd:`Ctrl+S`", "Save the current document" - ":kbd:`Ctrl+V`", "Paste text from clipboard to cursor position" - ":kbd:`Ctrl+W`", "Close the current document" - ":kbd:`Ctrl+X`", "Cut selected text to clipboard" - ":kbd:`Ctrl+Y`", "Redo latest undo" - ":kbd:`Ctrl+Z`", "Undo latest changes" - ":kbd:`Ctrl+Backspace`", "Delete the word before the cursor" - ":kbd:`Ctrl+Del`", "Delete the word after the cursor" - ":kbd:`Ctrl+F7`", "Toggle spell checking" - ":kbd:`Ctrl+Return`", "Open the tag or reference under the cursor in the viewer" - ":kbd:`Ctrl+Shift+A`", "Select all text in the current paragraph" - - -.. _a_kb_ins: - -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 key combination for the inserted content. - -.. csv-table:: - :header: "Shortcut", "Description" - - ":kbd:`Ctrl+K`, :kbd:`Space`", "Insert a non-breaking space" - ":kbd:`Ctrl+K`, :kbd:`_`", "Insert a long dash (em dash)" - ":kbd:`Ctrl+K`, :kbd:`.`", "Insert an ellipsis" - ":kbd:`Ctrl+K`, :kbd:`'`", "Insert a modifier apostrophe" - ":kbd:`Ctrl+K`, :kbd:`*`", "Insert a list bullet" - ":kbd:`Ctrl+K`, :kbd:`%`", "Insert a per mille symbol" - ":kbd:`Ctrl+K`, :kbd:`~`", "Insert a figure dash (same width as a number)" - ":kbd:`Ctrl+K`, :kbd:`−`", "Insert a short dash (en dash)" - ":kbd:`Ctrl+K`, :kbd:`1`", "Insert a left single quote" - ":kbd:`Ctrl+K`, :kbd:`2`", "Insert a right single quote" - ":kbd:`Ctrl+K`, :kbd:`3`", "Insert a left double quote" - ":kbd:`Ctrl+K`, :kbd:`4`", "Insert a right double quote" - ":kbd:`Ctrl+K`, :kbd:`C`", "Insert a ``@char`` keyword" - ":kbd:`Ctrl+K`, :kbd:`E`", "Insert an ``@entity`` keyword" - ":kbd:`Ctrl+K`, :kbd:`F`", "Insert a ``@focus`` keyword" - ":kbd:`Ctrl+K`, :kbd:`G`", "Insert a ``@tag`` keyword" - ":kbd:`Ctrl+K`, :kbd:`H`", "Insert a short description comment" - ":kbd:`Ctrl+K`, :kbd:`L`", "Insert a ``@location`` keyword" - ":kbd:`Ctrl+K`, :kbd:`M`", "Insert a ``@mention`` keyword" - ":kbd:`Ctrl+K`, :kbd:`O`", "Insert an ``@object`` keyword" - ":kbd:`Ctrl+K`, :kbd:`P`", "Insert a ``@plot`` keyword" - ":kbd:`Ctrl+K`, :kbd:`S`", "Insert a synopsis comment" - ":kbd:`Ctrl+K`, :kbd:`T`", "Insert a ``@time`` keyword" - ":kbd:`Ctrl+K`, :kbd:`V`", "Insert a ``@pov`` keyword" - ":kbd:`Ctrl+K`, :kbd:`X`", "Insert a ``@custom`` keyword" - ":kbd:`Ctrl+K`, :kbd:`Ctrl+Space`", "Insert a thin non-breaking space" - ":kbd:`Ctrl+K`, :kbd:`Ctrl+_`", "Insert a horizontal bar (quotation dash)" - ":kbd:`Ctrl+K`, :kbd:`Ctrl+'`", "Insert a prime" - ":kbd:`Ctrl+K`, :kbd:`Ctrl+""`", "Insert a double prime" - ":kbd:`Ctrl+K`, :kbd:`Ctrl+*`", "Insert a flower mark (alternative bullet)" - ":kbd:`Ctrl+K`, :kbd:`Ctrl+−`", "Insert a hyphen bullet (alternative bullet)" - ":kbd:`Ctrl+K`, :kbd:`Ctrl+D`", "Insert a division sign" - ":kbd:`Ctrl+K`, :kbd:`Ctrl+O`", "Insert a degree symbol" - ":kbd:`Ctrl+K`, :kbd:`Ctrl+X`", "Insert a times sign" - ":kbd:`Ctrl+K`, :kbd:`Shift+Space`", "Insert a thin space" - - -.. _a_kb_viewer: - -Document Viewer Shortcuts -========================= - -.. csv-table:: - :header: "Shortcut", "Description" - - ":kbd:`Alt+Left`", "Move backward in the view history" - ":kbd:`Alt+Right`", "Move forward in the view history" - ":kbd:`Ctrl+C`", "Copy selected text to clipboard" - ":kbd:`Ctrl+Shift+A`", "Select all text in the current paragraph" - ":kbd:`Ctrl+Shift+R`", "Close the document viewer" diff --git a/docs/source/usage_writing.rst b/docs/source/user_interface/editor_viewer.rst similarity index 84% rename from docs/source/usage_writing.rst rename to docs/source/user_interface/editor_viewer.rst index 710a8bc9..d409db14 100644 --- a/docs/source/usage_writing.rst +++ b/docs/source/user_interface/editor_viewer.rst @@ -1,4 +1,4 @@ -.. _a_ui_writing: +.. _docs_ui_edit_view: ********************* The Editor and Viewer @@ -9,7 +9,7 @@ The Editor and Viewer This chapter covers in more detail how the document editor and viewer panels work. -.. _a_ui_edit: +.. _docs_ui_edit_view_edit: Editing a Document ================== @@ -37,7 +37,7 @@ be shown. This can be set in **Preferences**. Clicking on the document title bar will select the document in the project tree and thus reveal its location there, making it easier to find in a large project. -Any `references` in the editor can be opened in the viewer by moving the cursor to +Any references in the editor can be opened in the viewer by moving the cursor to the label and pressing :kbd:`Ctrl+Return`. You can also control-click them with your mouse. @@ -62,7 +62,26 @@ edited from the **Project Word List** tool available from the **Tools** menu. .. versionadded:: 2.2 -.. _a_ui_view: +Word Counts +----------- + +A character, word and paragraph count is maintained for each document, as well as for each section +of a document following a heading. The word count and change of words in the current session is +displayed in the footer of any document open in the editor, and all stats are shown in the details +panel below the project tree for any document selected in the project or novel trees. + +The word counts are not updated in real time, but run in the background every few seconds for as +long as the document is being actively edited. + +A total project word count is displayed in the status bar. The total count depends on the sum of +the values in the project tree, which again depend on an up to date project index. If the +counts seem wrong, a full project word recount can be initiated by rebuilding the project's index. +Either from the **Tools** menu, or by pressing :kbd:`F9`. + +The rules for how the counts are made is covered in more detail in :ref:`docs_more_counting`. + + +.. _docs_ui_edit_view_view: Viewing a Document ================== @@ -108,7 +127,7 @@ these will appear as additional tabs in this panel. The reference panel was redesigned and the additional tabs added. -.. _a_ui_edit_search: +.. _docs_ui_edit_view_search: Search & Replace ================ @@ -138,7 +157,7 @@ match the word being replaced. class. -.. _a_ui_edit_auto: +.. _docs_ui_edit_view_auto: Auto-Replace as You Type ======================== @@ -149,8 +168,8 @@ auto-replace feature from **Preferences**. You can also disable this feature ent .. tip:: If you don't like auto-replacement, all symbols inserted by this feature are also available in - the :guilabel:`Insert` menu, and via :ref:`a_kb_ins`. You may also be using a `Compose Key`_ - setup, which means you may not need the auto-replace feature at all. + the :guilabel:`Insert` menu, and via :ref:`docs_features_shortcuts_insert`. You may also be + using a `Compose Key`_ setup, which means you may not need the auto-replace feature at all. The editor is able to replace two and three hyphens with short and long dashes, triple points with ellipsis, and replace straight single and double quotes with user-defined quote symbols. It will @@ -165,7 +184,7 @@ tricky for languages that use the same symbol for these, like English does. you typed before it. -.. _a_ui_edit_dialogue: +.. _docs_ui_edit_view_dialogue: Dialogue Highlighting ===================== diff --git a/docs/source/images/fig_editor.png b/docs/source/user_interface/images/fig_editor.png similarity index 100% rename from docs/source/images/fig_editor.png rename to docs/source/user_interface/images/fig_editor.png diff --git a/docs/source/images/fig_editor_search.png b/docs/source/user_interface/images/fig_editor_search.png similarity index 100% rename from docs/source/images/fig_editor_search.png rename to docs/source/user_interface/images/fig_editor_search.png diff --git a/docs/source/images/fig_project_merge_tool.png b/docs/source/user_interface/images/fig_project_merge_tool.png similarity index 100% rename from docs/source/images/fig_project_merge_tool.png rename to docs/source/user_interface/images/fig_project_merge_tool.png diff --git a/docs/source/images/fig_project_split_tool.png b/docs/source/user_interface/images/fig_project_split_tool.png similarity index 100% rename from docs/source/images/fig_project_split_tool.png rename to docs/source/user_interface/images/fig_project_split_tool.png diff --git a/docs/source/images/fig_viewer.png b/docs/source/user_interface/images/fig_viewer.png similarity index 100% rename from docs/source/images/fig_viewer.png rename to docs/source/user_interface/images/fig_viewer.png diff --git a/docs/source/images/fig_welcome.jpg b/docs/source/user_interface/images/fig_welcome.jpg similarity index 100% rename from docs/source/images/fig_welcome.jpg rename to docs/source/user_interface/images/fig_welcome.jpg diff --git a/docs/source/user_interface/projects.rst b/docs/source/user_interface/projects.rst new file mode 100644 index 00000000..dfa07e75 --- /dev/null +++ b/docs/source/user_interface/projects.rst @@ -0,0 +1,143 @@ +.. _docs_ui_projects: + +***************** +Managing Projects +***************** + +Your text in novelWriter is organised into projects. Each project is meant to contain one novel +and associated notes. If you have multiple novels in a series, with the same characters and shared +notes, it is also possible to keep all of them in the same project by creating multiple **Novel** +root folders. See :ref:`docs_usage_project_roots` for more details. + + +.. _docs_ui_projects_new: + +Creating A New Project +====================== + +You can create a new project from the **Project** menu by selecting **Create or Open Project**. +This will open the **Welcome** dialog, where you can select the :guilabel:`New` button that will +assist you in creating a project. This dialog is also displayed when you start novelWriter. + +A novelWriter project requires a dedicated folder for storing its files on the local file system. +If you're interested in the details, you can have a look at the section +:ref:`docs_technical_storage`. + +A list of recently opened projects is maintained, and displayed in the **Welcome** dialog. A +project can be removed from this list by selecting it and pressing the :kbd:`Del` key or by +right-clicking it and selecting the **Remove Project** option. + +.. figure:: images/fig_welcome.jpg + + The project list (left) and new project form (right) of the **Welcome** dialog. + +Project-specific settings are available in **Project Settings** in the **Project** menu. See +further details below in the :ref:`docs_ui_projects_settings` section. + +Details about the project's novel text, including word counts, and a table of contents with word +and page counts, is available through the **Novel Details** dialog. Statistics about the project +is also available in the **Manuscript Build** tool. + + +Template Projects +----------------- + +From the Welcome dialog you can also create a new from another existing project. If you have a +specific structure you want to use for all your new projects, you can create a dedicated project to +be used as a template, and select to copy an existing project from the :guilabel:"Prefill Project" +option from the **New Project** form. + + +.. _docs_ui_projects_settings: + +Project Settings +================ + +The **Project Settings** can be accessed from the **Project** menu, or by pressing +:kbd:`Ctrl+Shift+,`. This will open a dialog box, with a set of tabs. + + +Settings Tab +------------ + +The **Settings** tab holds the project name, author, and language settings. + +The **Project Name** can be edited here. It is used for the main window title and for generating +backup files. So keep in mind that if you do change this setting, the backup file names will change +too. + +You can also change the **Authors** and **Project Language** setting. These are only used when +building the manuscript, for some formats. The language setting is also used when inserting text +into documents in the viewer, like for instance labels for keywords and special comments. + +If your project is in a different language than your main spell checking language is set to, you +can override the default setting here. The project language can also be changed from the **Tools** +menu. + +You can also override the automatic backup setting for the project if you wish. + + +Status and Importance Tabs +-------------------------- + +Each document or folder of type **Novel** can be given a "Status" label accompanied by a coloured +icon with an optional shape selected from a list of pre-defined shapes. Each document or folder of +the remaining types can be given an "Importance" label with the same customisation options. + +These labels are there purely for your convenience, and you are not required to use them for any +other features to work. No other part of novelWriter accesses this information. The intention is to +use these to indicate at what stage of completion each novel document is, or how important the +content of a note is to the story. You don't have to use them this way, that's just what they were +intended for, but you can make them whatever you want. + +Both status and importance labels can be exported and imported so you can share them between +projects, or define a standard set for all your writing projects. When you import labels to a +project, they are always added as *new* labels. + +See also :ref:`a_ui_tree_status`. + +.. note:: + + The status or importance level currently in use by one or more documents cannot be deleted, but + they can be edited. + + +Auto-Replace Tab +---------------- + +A set of automatically replaced keywords can be added in this tab. The keywords in the left column +will be replaced by the text in the right column when documents are opened in the viewer. They will +also be applied to manuscript builds. + +The auto-replace feature will replace text in angle brackets that is in this list. The syntax +highlighter will add an alternate colour to text matching the syntax, but it doesn't check if the +text is in this list. + +.. note:: + A keyword cannot contain spaces. The angle brackets are added by default, and when used in the + text are a part of the keyword to be replaced. This is to ensure that parts of the text aren't + unintentionally replaced by the content of the list. + + +.. _docs_ui_projects_backup: + +Backup +====== + +An automatic backup system is built into novelWriter. In order to use it, a backup path to where +the backup files are to be stored must be provided in **Preferences**. The path defaults to a +folder named "Backups" in your home directory. + +Backups can be run automatically when a project is closed, which also implies it is run when the +application itself is closed. Backups are date stamped zip files of the project files in the +project folder (files not strictly a part of the project are ignored). The zip archives are stored +in a subfolder of the backup path. The subfolder will have the same name as the **Project Name** as +defined in :ref:`docs_ui_projects_settings`. + +The backup feature, when configured, can also be run manually from the **Tools** menu. It is also +possible to disable automated backups for a given project in **Project Settings**. + +.. note:: + For the backup to be able to run, the **Project Name** must be set in **Project Settings**. This + value is used to generate the name and path of the backups. Without it, the backup will not run + at all, but it will produce a warning message. diff --git a/docs/source/user_interface/split_and_merge.rst b/docs/source/user_interface/split_and_merge.rst new file mode 100644 index 00000000..97422715 --- /dev/null +++ b/docs/source/user_interface/split_and_merge.rst @@ -0,0 +1,48 @@ +.. _docs_ui_split_merge: + +************************* +Split and Merge Documents +************************* + +Under the **Transform** submenu in the context menu of an item in the project tree, you will find +several options on how to change a document or folder. This includes changing between document and +note, but also splitting them into multiple documents, or merging child items into a single +document. + + +Splitting Documents +=================== + +.. figure:: images/fig_project_split_tool.png + + The **Split Document** dialog. + +The **Split Document by Headings** option will open a dialog that allows you to split the selected +document into multiple new documents based on the headings it contains. You can select at which +heading level the split is to be performed from the dropdown box. The list box will preview which +headings will be split into new documents. + +You are given the option to create a folder for these new documents, and whether or not to create a +hierarchy of documents. That is, put sections under scenes, and scenes under chapters. + +The source document **is not** deleted in the process, but you have the option to let the tool move +the source document to the **Trash** folder. + + +Merging Documents +================= + +.. figure:: images/fig_project_merge_tool.png + + The **Merge Documents** dialog. + +You have two options for merging documents that are child elements of another document. You can +either **Merge Child Items into Self** and **Merge Child Items into New**. The first option will +pull all content of child items and merge them into the parent document, while the second option +will create a new document in the process. + +When merging documents in a folder, you only have the latter process is possible, so only the +choice **Merge Documents in Folder** is available. + +In either case, the **Merge Documents** dialog will let you exclude documents you don't want to +include, and it also lets you reorder them if you wish. diff --git a/docs/source/user_interface/statistics.rst b/docs/source/user_interface/statistics.rst new file mode 100644 index 00000000..024daea2 --- /dev/null +++ b/docs/source/user_interface/statistics.rst @@ -0,0 +1,38 @@ +.. _docs_ui_statistics: + +****************** +Writing Statistics +****************** + +When you work on a project, a log file records when you opened it, when you closed it, and the +total word counts of your novel documents and notes at the end of the session, provided that the +session lasted either more than 5 minutes, or that the total word count changed. For more details +about the log file, see :ref:`docs_technical_storage`. + +A tool to view the content of the log file is available in the **Tools** menu under **Writing +Statistics**. You can also launch it by pressing :kbd:`F6`, or find it on the sidebar. + +The tool will show a list of all your sessions, and a set of filters to apply to the data. You can +also export the filtered data to a JSON file or to a CSV file that can be opened by a spreadsheet +application like for instance Libre Office Calc or Excel. + +.. versionadded:: 1.2 + + As of version 1.2, the log file also stores how much of the session time was spent idle. The + definition of idle here is that the novelWriter main window loses focus, or the user hasn't made + any changes to the currently open document in five minutes. The number of minutes can be altered + in **Preferences**. + + +Session Timer +============= + +A session timer is by default visible in the status bar. The icon will show you a clock icon when +you are active, and a pause icon when you are considered "idle" per the criteria mentioned above. + +If you do not wish to see the timer, you can click on it once to hide it. The icon will still be +visible. Click the icon once more to display the timer again. + +.. versionadded:: 2.6 + + As of version 2.6, clicking the timer text or icon in the status bar will toggle its visibility.