diff --git a/docs/FileFormatSpec-1.5.fodt b/docs/FileFormatSpec-1.5.fodt index 37169408..67ceb247 100644 --- a/docs/FileFormatSpec-1.5.fodt +++ b/docs/FileFormatSpec-1.5.fodt @@ -1,24 +1,24 @@ - Veronica Olsen2022-11-05T18:25:44.8874731592022-11-27T16:59:09.712224049Veronica OlsenPT3H37M58S40LibreOffice/7.0.4.2$Linux_X86_64 LibreOffice_project/00$Build-2 + Veronica Olsen2022-11-05T18:25:44.8874731592023-02-09T13:03:44.196703858Veronica OlsenPT3H48M55S42LibreOffice/7.0.4.2$Linux_X86_64 LibreOffice_project/00$Build-2 - 0 + 9825 0 - 26555 - 20394 + 35909 + 19657 true false view2 - 10569 - 2925 + 23216 + 176844 0 - 0 - 26554 - 20392 + 9825 + 35907 + 29480 0 1 false @@ -85,7 +85,7 @@ true true - 421923 + 695346 true false @@ -149,7 +149,7 @@ - + @@ -1203,6 +1203,12 @@ + + + + + + @@ -1228,50 +1234,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + @@ -1293,12 +1311,12 @@ novelWriter - Project File Format 1.5 Specification + Project File Format 1.5 Specification This document covers the file format specification for the 1.5 file format for novelWriter project files. See the documentation1 See: https://novelwriter.readthedocs.io/ for a full description of the app’s functionality. The target audience of this document is developers who intend to write a tool or script that generates valid novelWriter project files from data from other applications, or for templating purposes. - Note that flags are generally written out as yes/no values, but also true/false and on/off are understood by the application. The None value that occasionally occurs is the text representation of the Python None value, and must be used in those cases. + Note that flags are generally written out as yes/no values, but also true/false and on/off are understood by the application. The None value that occasionally occurs in actual project files is the text representation of the Python None value, and indicates that there is no value set. XML Root Tag: novelWriterXML The root tag of a novelWriter project file must be named “novelWriterXML”. This value is case sensitive. The fileVersion attribute must also be set to the appropriate format version in order to be parsed correctly. @@ -1318,7 +1336,7 @@ Description - + appVersion @@ -1329,7 +1347,7 @@ A string representation of the novelWriter version used to write the file. The value is not required, but is used to report to the user when the file format is converted. - + hexVersion @@ -1340,7 +1358,7 @@ A hex representation of the novelWriter version used to write the file. The value is used to check if the project is opened by a lower version than was used to write it, which issues a warning. Defaults to 0x0. - + fileVersion @@ -1348,10 +1366,10 @@ Yes - The file format version used when writing the project file. This determines how the file is parsed, so it is important that it is set correctly. + The file format version used when writing the project file. This determines how the file is parsed, so it is important that it is set correctly. Valid values are “1.0”, “1.1”, “1.2”, “1.3”, “1.4”, and “1.5”. - + timeStamp @@ -1364,12 +1382,12 @@ Example - <novelWriterXML appVersion="2.0-rc1" hexVersion="0x020000c1" - fileVersion="1.5" timeStamp="2022-11-05 17:46:51"> + <novelWriterXML appVersion="2.0-rc1" hexVersion="0x020000c1" + fileVersion="1.5" timeStamp="2022-11-05 17:46:51"> Project Node Tag: project - The project section is a level one node under the root. It stores the primary settings for the project. The only required values are the id attribute and the name value. All other entries are set to default values during parsing and can be ommitted from the XML. + The project section is a level one node under the root. It stores the primary settings for the project. The only required values are the id attribute and the name value. All other entries are set to default values during parsing if ommitted from the XML. Attributes @@ -1386,7 +1404,7 @@ Description - + id @@ -1394,10 +1412,10 @@ Yes - A UUID that is unique for the project and does not change during the lifetime of the project. It is used by novelWriter for to keep track of temporary files and associate cross-project settings with different projects without relying on the project name. + A UUID that is unique for the project and does not change during the lifetime of the project. It is used by novelWriter to keep track of temporary files and to associate cross-project settings with specific projects without relying on the project name. - + saveCount @@ -1408,7 +1426,7 @@ A number representing the number of times the project file has been written as a result of user interaction with the application. - + autoCount @@ -1419,7 +1437,7 @@ A number representing the number of times the project file has been written as a result of internal timed automatic operations of the application. - + editTime @@ -1447,7 +1465,7 @@ Description - + name @@ -1458,7 +1476,7 @@ The name the user has given to the project. - + title @@ -1469,7 +1487,7 @@ The title the user has given to the project, which may differ from the project name. The value is used in some places in the user interface, and can be added to manuscript builds. - + author @@ -1482,16 +1500,16 @@ Example - <project id="e2be99af-f9bf-4403-857a-c3d1ac25abea" - saveCount="5" autoCount="10" editTime="1000"> - <name>Sample Project</name> - <title>Sample Project</title> - <author>Jane Smith</author> + <project id="e2be99af-f9bf-4403-857a-c3d1ac25abea" + saveCount="5" autoCount="10" editTime="1000"> + <name>Sample Project</name> + <title>Sample Project</title> + <author>Jane Smith</author> </project> - Settings Node + Settings Node Tag: settings - The settings section is a level one node under the root. It stores the various runtime values for the project, and the settings available from the Project Settings panel. None of these settings are required, and if missing, will be set to default values. The entire settings section can thus be ommitted. + The settings section is a level one node under the root. It stores the various runtime values for the project, and the settings available from the Project Settings panel. None of these settings are required, and if missing, will be set to default values. The entire settings section can thus be ommitted. Attributes None Values @@ -1510,7 +1528,7 @@ Description - + doBackup @@ -1521,7 +1539,7 @@ User-controlled setting for whether or not to run backup when the project is closed. - + language @@ -1529,10 +1547,10 @@ No - The language used when building the manuscript. The settings is controlled from the Build Novel Project tool. + The language used when building the manuscript. The setting is controlled from the Build Novel Project tool. - + spellChecking @@ -1545,7 +1563,7 @@ Attribute auto: A flag determining whether the spell checking is automatic or not. - + lastHandle @@ -1556,7 +1574,7 @@ An auto-generated list of the last documents open in the editor and viewer, and which novel root folder was last viewed in the Novel Tree and Outline View. These are saved as key/value pairs. See separate section for how they are stored as XML. - + autoReplace @@ -1564,10 +1582,10 @@ No - The entries of the auto-replace feature available from the Project Settings. These are saved as key/value pairs. See separate section for how they are stored as XML. + The entries of the auto-replace feature available from Project Settings. These are saved as key/value pairs. See separate section for how they are stored as XML. - + titleFormat @@ -1578,7 +1596,7 @@ The formatting specifications set by the user in the Build Novel Project tool for formatting headers in the manuscript. These are saved as key/value pairs. See separate section for how they are stored as XML. - + status @@ -1589,7 +1607,7 @@ The status labels as defined by the user in Project Settings. These are saved as special key/value pars. See separate section for how they are stored as XML. - + importance @@ -1603,9 +1621,9 @@ Example <settings> - <doBackup>yes</doBackup> - <language>en_GB</language> - <spellChecking auto="yes">en_GB</spellChecking> + <doBackup>yes</doBackup> + <language>en_GB</language> + <spellChecking auto="yes">en_GB</spellChecking> <lastHandle /> <autoReplace /> <titleFormat /> @@ -1613,7 +1631,7 @@ <importance /> </settings> - Key/Value Nodes + Key/Value Nodes The key/value nodes are used for lastHandle, autoReplace and titleFormat settings. The lookup key is stored as an attribute, and the value is the text of the node. Attributes @@ -1631,7 +1649,7 @@ Description - + key @@ -1645,13 +1663,13 @@ Example <lastHandle> - <entry key="editor">636b6aa9b697b</entry> - <entry key="viewer">636b6aa9b697b</entry> - <entry key="novelTree">7031beac91f75</entry> - <entry key="outline">7031beac91f75</entry> + <entry key="editor">636b6aa9b697b</entry> + <entry key="viewer">636b6aa9b697b</entry> + <entry key="novelTree">7031beac91f75</entry> + <entry key="outline">7031beac91f75</entry> </lastHandle> Status/Importance Key/Value Nodes - The status and importance settings anre stored as key/value nodes with additional data attributes. + The status and importance settings are stored as key/value nodes with additional data attributes. The label of the status or importance setting is saved as the node text value. Attributes @@ -1668,7 +1686,7 @@ Description - + key @@ -1676,10 +1694,10 @@ Yes - The lookup key. For status labels, it must consist of an “s” followed by six hexadecimal numbers. These must be unique for each entry. For importance labels it must consist of an “i” followed by six hexadecimal numbers. + The lookup key. For status labels, it must consist of an “s” followed by six hexadecimal numbers. For importance labels it must consist of an “i” followed by six hexadecimal numbers. Each key string must be unique. Internally, they are random numbers, but also sequential values are valid. - + count @@ -1690,7 +1708,7 @@ A record of the number of times each label is used in the project content. - + red @@ -1701,7 +1719,7 @@ A number between 0 and 255 representing the red component of the label colour. - + green @@ -1712,7 +1730,7 @@ A number between 0 and 255 representing the green component of the label colour. - + blue @@ -1726,25 +1744,25 @@ Example <status> - <entry key="sf12341" count="4" - red="100" green="100" blue="100">New</entry> - <entry key="sd51c5b" count="0" - red="193" green="129" blue="0">Draft</entry> - <entry key="s78ea90" count="1" - red="58" green="180" blue="58">Finished</entry> + <entry key="sf12341" count="4" + red="100" green="100" blue="100">New</entry> + <entry key="sd51c5b" count="0" + red="193" green="129" blue="0">Draft</entry> + <entry key="s78ea90" count="1" + red="58" green="180" blue="58">Finished</entry> </status> <importance> - <entry key="ia857f0" count="5" - red="100" green="100" blue="100">None</entry> - <entry key="icfb3a5" count="2" - red="0" green="122" blue="188">Minor</entry> - <entry key="i2d7a54" count="2" - red="21" green="0" blue="180">Major</entry> + <entry key="ia857f0" count="5" + red="100" green="100" blue="100">None</entry> + <entry key="icfb3a5" count="2" + red="0" green="122" blue="188">Minor</entry> + <entry key="i2d7a54" count="2" + red="21" green="0" blue="180">Major</entry> </importance> Content Node Tag: content - The content section is a level one node under the root. It stores all the project items of the project. The items are stored in the order in which they appear in the project tree, so altering the order will affect the structure. The attribute with the order number is not used when processing the data. It is mainly written to the XML for debugging purposes. + The content section is a level one node under the root. It stores all the project items of the project. The items are stored in the order in which they appear in the project tree, so altering the order will affect the project structure. The attribute with the order number is not used when processing the data. It is written to the XML for debugging purposes. Attributes @@ -1761,7 +1779,7 @@ Description - + items @@ -1772,7 +1790,7 @@ The number of project items in the content section. - + novelWords @@ -1780,10 +1798,10 @@ No - The number of words in total for all document nodes layout DOCUMENT. The value defaults to 0, but this number forms the basis of computing writing statistics during a session, so the number should be properly set in order to ensure correct statistics. + The number of words in total for all document nodes with layout DOCUMENT. The value defaults to 0, but this number forms the basis of computing writing statistics during a session, so the number should be properly set to ensure correct statistics. - + notesWords @@ -1791,7 +1809,7 @@ No - The number of words in total for all document nodes layout NOTE. The value defaults to 0, but this number forms the basis of computing writing statistics during a session, so the number should be properly set in order to ensure correct statistics. + The number of words in total for all document nodes with layout NOTE. The value defaults to 0, but this number forms the basis of computing writing statistics during a session, so the number should be properly set to ensure correct statistics. @@ -1811,7 +1829,7 @@ Description - + item @@ -1824,18 +1842,20 @@ Example - <content items="27" novelWords="954" notesWords="409"> - <item handle="7031beac91f75" parent="None" root="7031beac91f75" - order="0" type="ROOT" class="NOVEL"> - <meta expanded="yes"/> - <name status="sc24b8f" import="ia857f0">Novel</name> + <content items="27" novelWords="954" notesWords="409"> + <item handle="7031beac91f75" parent="None" root="7031beac91f75" + order="0" type="ROOT" class="NOVEL"> + <meta expanded="yes"/> + <name status="sc24b8f" import="ia857f0">Novel</name> </item> ... </content> - Item Nodes - The item nodes make up the actual project content of the project. Each node represents either a root folder, a regular folder, or a document. Each node has a type, class and layout setting that determine its category. Each item is given a handle that is a random hexadecimal string of length 13. For the items that are document files, this handle corresponds to its filename. It is therefore important that these match. Each document node is expected to correspond to a file in the contents folder of the project named “content/7031beac91f75.nwd” for the item handle “7031beac91f75”. - Each item node has a meta data node and a name node. The meta data node contains only collected information, and is thus not strictly required. However, an accurate word count and the correct icon in the project tree depend on these values. These values are set by the indexer class, so rebuilding the index should restore the data. - The name node contains the primary user defined settings for an item, and is required. + Item Nodes + The item nodes make up the actual project content of the project. Each node represents either a root folder, a regular folder, or a document. Each node has a type, class and layout setting that determine its category. Each item is given a handle that is a random hexadecimal string of length 13. + For the items that are document files, the handle corresponds to its expected filename. It is therefore important that they match in generated projects. Each document node is expected to correspond to a file in the contents folder of the project named “content/7031beac91f75.nwd” for the item handle “7031beac91f75”. If there is no such file, the document item is assumed to contain no text, and a file is created when the user tries to save text to it. + Each item node has a meta data node and a name node. The meta data node contains only collected information, and is thus not strictly required. However, an accurate word count and setting the correct icon in the project tree depend on these values. These values are set by the indexer class, so rebuilding the index should restore the data. + The name node contains the primary user defined settings for an item, and is required for the entry to be valid. + Attributes @@ -1852,7 +1872,7 @@ Description - + handle @@ -1860,10 +1880,10 @@ Yes - The 13 value hexadecimal string that represents the item in the project. This is the primary identifier of a project item, and is required. + The 13 value hexadecimal string that represents the item in the project. This is the primary identifier of a project item, and is required. It must be unique withing a project. Internally, it is generated as a random value, but it can also be sequential. - + parent @@ -1871,10 +1891,10 @@ Yes - The handle of the parent item in the tree. This value should only be None for root folders. All other items must have a parent handle set. If the parent handle is None for an item that isn’t a root folder, the item will be treated as orphaned during project loading. + The handle of the parent item in the tree. This value should only be None for root folders. All other items must have a parent handle set. If the parent handle is None for an item that isn’t a root folder, the item will be treated as orphaned during project loading. - + root @@ -1882,10 +1902,10 @@ No - The handle of the top of its hierarchy of parent items. That is, the root folder which it ultimately sits under. If the attribute is not set, it will be computed during loading. It is primarily saved to the XML file for efficiency reasons. + The handle of the top of its hierarchy of parent items. That is, the root folder which it ultimately sits under. If the attribute is not set, it will be computed during loading. It is saved to the XML file for efficiency reasons. - + order @@ -1896,7 +1916,7 @@ The numerical order of the item under its parent item. This value is not used during the loading process as the physical item order in the content node is used instead. It is primarily saved to the XML for debugging purposes. - + type @@ -1907,7 +1927,7 @@ The item type of the item node. Allowed values are ROOT, FOLDER and FILE. - + class @@ -1915,10 +1935,10 @@ Yes - The item class of the item node. There are a number of item classes available in the app, all corresponding to a specific type of root folder. Each item in a root folder should have the same class set as the root folder itself. The attribute is not strictly required for items that aren’t root folders as it will be automatically set to match during loading. + The item class of the item node. There are a number of item classes available in the app, all corresponding to a specific type of root folder. Each item in a root folder should have the same class set as the root folder itself. The attribute is not strictly required for items that aren’t root folders as it will be automatically set to match during loading. Allowed values are NOVEL, PLOT, CHARACTER, WORLD, TIMELINE, OBJECT, ENTITY, CUSTOM, ARCHIVE and TRASH. - + layout @@ -1946,7 +1966,7 @@ Description - + meta @@ -1957,7 +1977,7 @@ A node of meta data attributes for the item. - + name @@ -1969,8 +1989,8 @@ - Meta Nodes - The meta data collected for the current item. This data is collected primarily by the indexer class. It can be restored by rebuilding the index, so the data is not essential. + Meta Nodes + The meta data collected for the current item. This data either represents the item’s last state in the app, or consists of data collected by the indexer. It can be restored by rebuilding the index, so the data is not essential. Attributes @@ -1987,7 +2007,7 @@ Description - + expanded @@ -1995,10 +2015,10 @@ No - Whether the tree node in the project tree was expanded or collapsed during the last session. Applies to all item types. + Whether the tree node in the project tree was expanded or collapsed during the last session. Applies to all item types, but is ignored for items without child items. - + heading @@ -2009,7 +2029,7 @@ The heading level of the first heading of the text of the item. Only applies to FILE item types. Allowed values are H0, H1, H2, H3, and H4. Other values are reset to H0. - + charCount @@ -2020,7 +2040,7 @@ The number of characters in the text of the item. Only applies to FILE item types. - + wordCount @@ -2031,7 +2051,7 @@ The number of words in the text of the item. Only applies to FILE item types. - + paraCount @@ -2042,7 +2062,7 @@ The number of paragraphs in the text of the item. Only applies to FILE item types. - + cursorPos @@ -2050,12 +2070,12 @@ No - The last cursor position in the text of the item from the last session. Only applies to FILE item types. The value is used to restore the cursor position when the document is opened in the editor. + The last cursor position in the text of the item from the last editing session. Only applies to FILE item types. The value is used to restore the cursor position when the document is opened in the editor. - Name Nodes - The name node contains information about an item that is set by the user. Including its label, which is the text value of the node. This is the label that is displayed in the project tree. + Name Nodes + The name node contains information about an item that is set by the user. Including its label, which is the text value of the node. This is the label that is displayed in the project tree. Attributes @@ -2072,7 +2092,7 @@ Description - + status @@ -2083,7 +2103,7 @@ The ID of the status label that has been set for this item. Defaults to the first status item defined in the status section of the settings node. - + import @@ -2094,8 +2114,7 @@ The ID of the importance label that has been set for this item. Defaults to the first importance item defined in the importance section of the settings node. - - + active @@ -2108,11 +2127,11 @@ Example - <item handle="53b69b83cdafc" parent="7031beac91f75" root="7031beac91f75" - order="0" type="FILE" class="NOVEL" layout="DOCUMENT"> - <meta expanded="no" heading="H1" charCount="93" wordCount="19" - paraCount="2" cursorPos="119"/> - <name status="sc24b8f" import="ia857f0" active="yes">Title Page</name> + <item handle="53b69b83cdafc" parent="7031beac91f75" root="7031beac91f75" + order="0" type="FILE" class="NOVEL" layout="DOCUMENT"> + <meta expanded="no" heading="H1" charCount="93" wordCount="19" + paraCount="2" cursorPos="119"/> + <name status="sc24b8f" import="ia857f0" active="yes">Title Page</name> </item> diff --git a/docs/source/_static/custom.css b/docs/source/_static/custom.css new file mode 100644 index 00000000..4afdc4fc --- /dev/null +++ b/docs/source/_static/custom.css @@ -0,0 +1,3 @@ +body article section { + margin-top: 1.8em; +} diff --git a/docs/source/conf.py b/docs/source/conf.py index 19ed3014..c2851227 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -1,9 +1,6 @@ # # Configuration file for the Sphinx documentation builder. -# -# This file does only contain a selection of the most common options. For a -# full list see the documentation: -# http://www.sphinx-doc.org/en/master/config +# Documentation: http://www.sphinx-doc.org/en/master/config # # -- Imports ----------------------------------------------------------------- @@ -38,24 +35,33 @@ os.environ["TZ"] = "Europe/Oslo" time.tzset() needs_sphinx = "4.0" +extensions = [] templates_path = ["_templates"] source_suffix = ".rst" master_doc = "index" today_fmt = "%A, %d %B %Y at %H:%M" language = "en" exclude_patterns = [] -pygments_style = "sphinx" -pygments_dark_style = "monokai" # -- Options for HTML Output ------------------------------------------------- html_theme = "furo" html_static_path = ["_static"] +html_css_files = ["custom.css"] html_theme_options = { "light_logo": "novelwriter-light.png", "dark_logo": "novelwriter-dark.png", + "navigation_with_keys": True, + "dark_css_variables": { + "admonition-font-size": "92%", + }, + "light_css_variables": { + "admonition-font-size": "92%", + }, } html_title = f"
Documentation Version {release}
" +pygments_style = "tango" +pygments_dark_style = "native" # -- Options for HTMLHelp Output --------------------------------------------- diff --git a/docs/source/_static/fileformatspec15.pdf b/docs/source/fileformatspec15.pdf similarity index 58% rename from docs/source/_static/fileformatspec15.pdf rename to docs/source/fileformatspec15.pdf index f4ca345d..b93a7bef 100644 Binary files a/docs/source/_static/fileformatspec15.pdf and b/docs/source/fileformatspec15.pdf differ diff --git a/docs/source/index.rst b/docs/source/index.rst index 55df2c4d..dfc2877c 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -31,7 +31,7 @@ as well. novelWriter can also be run directly from the Python source, or install the pip tool. See :ref:`a_started` for more details. .. note:: - Version 1.5 introduced a few changes that will require you to make some minor modifications to + Version 1.3 introduced a few changes that will require you to make some minor modifications to some of the headings in your project. It should be fairly quick and straightforward. Please see the :ref:`a_prjfmt_1_3` section for more details. @@ -47,6 +47,11 @@ the pip tool. See :ref:`a_started` for more details. * PyPi Project: https://pypi.org/project/novelWriter * Social Media: https://fosstodon.org/@novelwriter +.. toctree:: + :hidden: + + Main Page + .. toctree:: :maxdepth: 1 :caption: Introduction @@ -56,6 +61,7 @@ the pip tool. See :ref:`a_started` for more details. int_overview int_started int_source + int_howto int_customise .. toctree:: diff --git a/docs/source/int_howto.rst b/docs/source/int_howto.rst new file mode 100644 index 00000000..09f079fd --- /dev/null +++ b/docs/source/int_howto.rst @@ -0,0 +1,125 @@ +.. _a_howto: + +************* +Tips & Tricks +************* + +.. _Discussions Page: https://github.com/vkbo/novelWriter/discussions + +This is a list of hopefully helpful little tips on how to get the most out of novelWriter. + +.. note:: + + This section will be expanded over time, and if you would like to have something added, feel + free to contribute, or start a discussion on the project's `Discussions Page`_ + + +Overview +======== + +**Managing the Project** + +* :ref:`a_howto_merge_documents` + +**Layout Tricks** + +* :ref:`a_howto_simple_table` + +**Organising Your Text** + +* :ref:`a_howto_chapter_intro` +* :ref:`a_howto_soft_hard_breaks` + +**Other Tools** + +* :ref:`a_howto_convert_ywriter` + + +How-Tos +======= + + +Managing the Project +-------------------- + + +.. _a_howto_merge_documents: + +Merge Multiple Documents Into One +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +If you need to merge a set of documents in your project into a single document, you can achieve +this by first making a new folder for just that purpose, and drag all the files you want merged +into this folder. Then you can right click the folder, select :guilabel:`Transform` 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 +also rearrange them here of you wish. + + +Layout Tricks +------------- + + +.. _a_howto_simple_table: + +Create a Simple Table +^^^^^^^^^^^^^^^^^^^^^ + +The formatting tools available in novelWriter don't allow for complex structures like tables. +However, the editor does render tabs in a similar way to regular word processors. You can set the +width of a tab in :guilabel:`Preferences`. + +The tab key should have the same distance in the editor as in the viewer, so you can align text in +columns using the tab key, and it should look the same when viewed next to the editor. + +This is most suitable for your notes, as the result in exported documents cannot be guaranteed to +match. + + +Organising Your Text +-------------------- + + +.. _a_howto_chapter_intro: + +Add Introductory Text to Chapters +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Sometimes chapters have a short preface, like a brief piece of text or a quote to set the stage +before the first scene -- Some text that may not be a part of the actual following scene. + +If you add separate files for chapters and scenes, this is the perfect place to add such text. +Separating chapter and scene files also allows you to set meta data for the whole chapter. Like +list all characters present in the chapter, etc. + + +.. _a_howto_soft_hard_breaks: + +Distinguishing Soft and Hard Scene Breaks +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Depending on your writing style, you may need to separate between soft and hard scene breaks within +chapters. Like for instance if you switch point-of-view character often. + +In such cases you may want to use the scene heading for hard scene breaks and section headings for +soft scene breaks. the :guilabel:`Project Build Tool` will let you add separate formatting for the +two when you generate your manuscript. You can for instance add the common "``* * *``" for hard +breaks and select to hide section breaks, which will just insert an empty paragraph in their place. + + +Other Tools +----------- + + +.. _a_howto_convert_ywriter: + +Convert Project to/from yWriter Format +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. _yWriter: http://spacejock.com/yWriter7.html + +There is a tool available that lets you convert a yWriter_ project to a novelWriter project, and +vice versa. + +The tool is available at `peter88213.github.io/yw2nw `__ diff --git a/docs/source/requirements.txt b/docs/source/requirements.txt index 777d09c0..1896078f 100644 --- a/docs/source/requirements.txt +++ b/docs/source/requirements.txt @@ -1,4 +1,4 @@ furo sphinx>=4.0 pygments>=2.7 -docutils==0.17.1 +docutils>=0.17.1 diff --git a/docs/source/tech_storage.rst b/docs/source/tech_storage.rst index 6bb51cfc..e833c135 100644 --- a/docs/source/tech_storage.rst +++ b/docs/source/tech_storage.rst @@ -4,6 +4,9 @@ How Data is Stored ****************** +.. _File Format Spec 1.5: _static/fileformatspec15.pdf +.. _documentation: https://novelwriter.readthedocs.io + This section contains details of how novelWriter stores and handles the project data. @@ -39,6 +42,15 @@ The project XML file is indent-formatted, and is suitable for diff tools and ver most of the file will stay static, although a timesetamp is set in the meta section on line 2, and various meta data entries incremented, on each save. +.. only:: not html + + A full project file format specification is available in the online documentation_. + +.. only:: html + + A full description of the current file format is available in the `File Format Spec 1.5`_ + document, available as a PDF. + Project Documents ================= diff --git a/docs/source/usage_projectformat.rst b/docs/source/usage_projectformat.rst index 68342eff..22e43b69 100644 --- a/docs/source/usage_projectformat.rst +++ b/docs/source/usage_projectformat.rst @@ -29,7 +29,8 @@ applicable. **For Developers** - A full description of the current file format is available in the `File Format Spec 1.5`_ + A full description of the current file format is available in the + :download:`File Format Spec 1.5 ` document, available as a PDF. This document is intended for contributors to novelWriter, those building project conversion tools, either to or from tne novelWriter format, and for those who wish to make their own templating system.