From 1ac6e48c236ed3d591ad8779b1ff4caf338bf95f Mon Sep 17 00:00:00 2001
From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com>
Date: Sun, 27 Nov 2022 17:00:36 +0100
Subject: [PATCH] Update file format spec
---
docs/FileFormatSpec-1.5.fodt | 985 ++++++++++++-----------
docs/source/_static/fileformatspec15.pdf | Bin 302571 -> 305141 bytes
2 files changed, 504 insertions(+), 481 deletions(-)
diff --git a/docs/FileFormatSpec-1.5.fodt b/docs/FileFormatSpec-1.5.fodt
index 892c8659..37169408 100644
--- a/docs/FileFormatSpec-1.5.fodt
+++ b/docs/FileFormatSpec-1.5.fodt
@@ -1,10 +1,10 @@
- Veronica Olsen2022-11-05T18:25:44.8874731592022-11-17T10:07:56.114449354Veronica OlsenPT3H36M22S34LibreOffice/7.0.4.2$Linux_X86_64 LibreOffice_project/00$Build-2
+ 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
- 166007
+ 0
0
26555
20394
@@ -13,12 +13,12 @@
view2
- 13430
- 174449
+ 10569
+ 2925
0
- 166007
+ 0
26554
- 186399
+ 20392
0
1
false
@@ -85,7 +85,7 @@
true
true
- 327557
+ 421923
true
false
@@ -1007,183 +1007,201 @@
-
+
+
+
+
-
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
-
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
-
-
-
-
-
+
-
+
-
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
-
+
-
+
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -1207,47 +1225,53 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
@@ -1268,829 +1292,828 @@
- novelWriter
- 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.
- 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.
- Attributes
+ novelWriter
+ 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.
+ 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.
+ Attributes
- Name
+ Name
- Required
+ Required
- Description
+ Description
-
+
- appVersion
+ appVersion
- No
+ No
- 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.
+ 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
+ hexVersion
- No
+ No
- 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.
+ 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
+ fileVersion
- Yes
+ 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.
-
+
- timeStamp
+ timeStamp
- No
+ No
- The ISO 8601 timestamp of when the file was saved. This information is not used by the parser, and is purely for debugging.
+ The ISO 8601 timestamp of when the file was saved. This information is not used by the parser, and is purely for debugging.
- Example
- <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.
- Attributes
+ Example
+ <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.
+ Attributes
- Name
+ Name
- Required
+ Required
- Description
+ Description
-
+
- id
+ id
- Yes
+ 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 for to keep track of temporary files and associate cross-project settings with different projects without relying on the project name.
-
+
- saveCount
+ saveCount
- No
+ No
- A number representing the number of times the project file has been written as a result of user interaction with the application.
+ A number representing the number of times the project file has been written as a result of user interaction with the application.
-
+
- autoCount
+ autoCount
- No
+ No
- A number representing the number of times the project file has been written as a result of internal timed automatic operations of the application.
+ 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
+ editTime
- No
+ No
- A number representing the accumulated time in seconds the project has been open.
+ A number representing the accumulated time in seconds the project has been open.
- Values
+ Values
- Name
+ Name
- Required
+ Required
- Description
+ Description
-
+
- name
+ name
- Yes
+ Yes
- The name the user has given to the project.
+ The name the user has given to the project.
-
+
- title
+ title
- No
+ No
- 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.
+ 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
+ author
- No
+ No
- The name of a single author of the project. This value can be repeated for multiple authors.
+ The name of the novel author or authors. The value is used in some places in the user interface, and can be added to manuscript builds.
- 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>
- <author>Jay Doh</author>
- </project>
-
- 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.
- Attributes
- None
- Values
+ 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>
+
+ 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.
+ Attributes
+ None
+ Values
- Name
+ Name
- Required
+ Required
- Description
+ Description
-
+
- doBackup
+ doBackup
- No
+ No
- User-controlled setting for whether or not to run backup when the project is closed.
+ User-controlled setting for whether or not to run backup when the project is closed.
-
+
- language
+ language
- No
+ 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 settings is controlled from the Build Novel Project tool.
-
+
- spellChecking
+ spellChecking
- No
+ No
- The spell checking language to use for this project if it differs from the default spell checking language for the application.
-
- Attribute auto: A flag determining whether the spell checking is automatic or not.
+ The spell checking language to use for this project if it differs from the default spell checking language for the application.
+
+ Attribute auto: A flag determining whether the spell checking is automatic or not.
-
+
- lastHandle
+ lastHandle
- No
+ No
- 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.
+ 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
+ autoReplace
- No
+ 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 the Project Settings. These are saved as key/value pairs. See separate section for how they are stored as XML.
-
+
- titleFormat
+ titleFormat
- No
+ No
- 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.
+ 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
+ status
- No
+ No
- 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.
+ 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
+ importance
- No
+ No
- The importance 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.
+ The importance 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.
- Example
- <settings>
- <doBackup>yes</doBackup>
- <language>en_GB</language>
- <spellChecking auto="yes">en_GB</spellChecking>
- <lastHandle />
- <autoReplace />
- <titleFormat />
- <status />
- <importance />
- </settings>
-
- 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
+ Example
+ <settings>
+ <doBackup>yes</doBackup>
+ <language>en_GB</language>
+ <spellChecking auto="yes">en_GB</spellChecking>
+ <lastHandle />
+ <autoReplace />
+ <titleFormat />
+ <status />
+ <importance />
+ </settings>
+
+ 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
- Name
+ Name
- Required
+ Required
- Description
+ Description
-
+
- key
+ key
- Yes
+ Yes
- The lookup key.
+ The lookup key.
- Example
- <lastHandle>
- <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.
- Attributes
+ Example
+ <lastHandle>
+ <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.
+ Attributes
- Name
+ Name
- Required
+ Required
- Description
+ Description
-
+
- key
+ key
- Yes
+ 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. These must be unique for each entry. For importance labels it must consist of an “i” followed by six hexadecimal numbers.
-
+
- count
+ count
- No
+ No
- A record of the number of times each label is used in the project content.
+ A record of the number of times each label is used in the project content.
-
+
- red
+ red
- Yes
+ Yes
- A number between 0 and 255 representing the red component of the label colour.
+ A number between 0 and 255 representing the red component of the label colour.
-
+
- green
+ green
- Yes
+ Yes
- A number between 0 and 255 representing the green component of the label colour.
+ A number between 0 and 255 representing the green component of the label colour.
-
+
- blue
+ blue
- Yes
+ Yes
- A number between 0 and 255 representing the blue component of the label colour.
+ A number between 0 and 255 representing the blue component of the label colour.
- 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>
- </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>
- </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.
- Attributes
+ 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>
+ </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>
+ </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.
+ Attributes
- Name
+ Name
- Required
+ Required
- Description
+ Description
-
+
- items
+ items
- No
+ No
- The number of project items in the content section.
+ The number of project items in the content section.
-
+
- novelWords
+ novelWords
- No
+ 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 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.
-
+
- notesWords
+ notesWords
- No
+ 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 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.
- Values
+ Values
- Name
+ Name
- Required
+ Required
- Description
+ Description
-
+
- item
+ item
- No
+ No
- A node representing a project item.
+ A node representing a project item.
- 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>
- </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.
- Attributes
+ 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>
+ </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.
+ Attributes
- Name
+ Name
- Required
+ Required
- Description
+ Description
-
+
- handle
+ handle
- Yes
+ 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.
-
+
- parent
+ parent
- Yes
+ 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
+ root
- No
+ 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 primarily saved to the XML file for efficiency reasons.
-
+
- order
+ order
- No
+ No
- 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.
+ 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
+ type
- Yes
+ Yes
- The item type of the item node. Allowed values are ROOT, FOLDER and FILE.
+ The item type of the item node. Allowed values are ROOT, FOLDER and FILE.
-
+
- class
+ class
- Yes
+ 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.
-
+
- layout
+ layout
- Yes
+ Yes
- The item layout of the item node. Allowed values are DOCUMENT and NOTE. This is the attribute that determines if a FILE type item is a Novel Document or a Project Note.
+ The item layout of the item node. Allowed values are DOCUMENT and NOTE. This is the attribute that determines if a FILE type item is a Novel Document or a Project Note.
- Values
+ Values
- Name
+ Name
- Required
+ Required
- Description
+ Description
-
+
- meta
+ meta
- No
+ No
- A node of meta data attributes for the item.
+ A node of meta data attributes for the item.
-
+
- name
+ name
- Yes
+ Yes
- A node of user settings for the item.
+ A node of user settings for the item.
- 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.
- Attributes
+ 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.
+ Attributes
- Name
+ Name
- Required
+ Required
- Description
+ Description
-
+
- expanded
+ expanded
- No
+ 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.
-
+
- heading
+ heading
- No
+ No
- 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.
+ 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
+ charCount
- No
+ No
- The number of characters in the text of the item. Only applies to FILE item types.
+ The number of characters in the text of the item. Only applies to FILE item types.
-
+
- wordCount
+ wordCount
- No
+ No
- The number of words in the text of the item. Only applies to FILE item types.
+ The number of words in the text of the item. Only applies to FILE item types.
-
+
- paraCount
+ paraCount
- No
+ No
- The number of paragraphs in the text of the item. Only applies to FILE item types.
+ The number of paragraphs in the text of the item. Only applies to FILE item types.
-
+
- cursorPos
+ cursorPos
- No
+ 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 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.
- Attributes
+ 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
- Name
+ Name
- Required
+ Required
- Description
+ Description
-
+
- status
+ status
- No
+ No
- 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.
+ 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
+ import
- No
+ No
- 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.
+ 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
+ active
- No
+ No
- The active/inactive status of the document. Only applies to FILE item types.
+ The active/inactive status of the document. Only applies to FILE item types.
- 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>
+ 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>
\ No newline at end of file
diff --git a/docs/source/_static/fileformatspec15.pdf b/docs/source/_static/fileformatspec15.pdf
index 1c36fd700b9bbc5953d2d7c9bca6e472c345196b..f4ca345d9dceddefed5944c923122ad17eb45ed4 100644
GIT binary patch
literal 305141
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