Artidoc Structure covers the following elements:
having titles to organize sections (1. Introduction > 1.1 Context, etc)
having zones of "free" text. Free text is a text that is not part of the tracker associated to an Artidoc. For instance, given an Artidoc associated to a Requirement tracker, a new free text section will not generate a new Requirement artifact.
Persistence of Structure
There was a lot of thoughts on how to store Structure elements. There was two options: either store them as special artifacts or dedicated objects. We decided for "Dedicated objects", see bellow for the arguments. The arguments of Artifacts can be found in followup comments of this epic.
Dedicated objects
Artidoc Structure sections would be backed as dedicated objects, at artidoc level
Good, because it's simple, we don't need to worry about Artifact side effects
Good, because as it's simple, the implementation should be faster for initial use case
Good, because it doesn't add more pressure to Artifact* tables (in term of volume)
Bad, because there is a need for a specific management of images (including TUS upload)
Bad, because we will have to implement specific features for
Bad, because we will have to implement history from day 1 (including images)
Bad, because it cannot be extended to manage "fields" (but maybe we can convert them to artifacts, or have explicit Requirement Artifacts for that)
Bad, because we might need to manage comments with two different approaches if we decide to store artidoc comments as Artifact Follow-up comments (but that might not be a good idea after all).
Free text
Free text is a section (Title + Description) that is not backed by an artifact. It's possible to have Free Text without description (pure title), Free Text with both Title and Description but it's not possible to have Free Text without title.
Free text section offers the same formatting possibilities than artifact sections, including images and Subtitles
When an Artidoc is duplicated, the free text sections are duplicated too.
It's possible to create Free Text sections in an empty document.
When author remove a Free Text from a document, they should confirm removal (it's not possible to re-add afterward unlike artifacts).
Introduction of free text have an impact on the management of document versions (see dedicated section after).