aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sisudoc/ocda/abstraction/ssp_in.d
diff options
context:
space:
mode:
authorRalph Amissah <ralph.amissah@gmail.com>2026-09-30 16:18:59 -0400
committerRalph Amissah <ralph.amissah@gmail.com>2026-09-30 23:14:23 -0400
commit993a3f655359f98dc26d3d3222e07792e2ccddf7 (patch)
tree1633a8183b2affec4a2951c8357ab89e9073bd25 /src/sisudoc/ocda/abstraction/ssp_in.d
parentsearch database: show all included notes (diff)
abstraction 2.1: a poem states its object range
- A poem is a container of verse, and stores its range of verse ocn, - its verse are the citable units with ocn. - A note in the last verse of a poem previously was not gathered into the endnotes section, this now is fixed Format 2.0 -> 2.1: the property is an addition, the poem is not a citable object (but contans a range of objects), its verse are (individual citable objects), and every reader checks the major version. A 2.0 database reads as having no ranges. (assisted by Claude-Code)
Diffstat (limited to 'src/sisudoc/ocda/abstraction/ssp_in.d')
-rw-r--r--src/sisudoc/ocda/abstraction/ssp_in.d10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/sisudoc/ocda/abstraction/ssp_in.d b/src/sisudoc/ocda/abstraction/ssp_in.d
index 0e461ad..0c67ab2 100644
--- a/src/sisudoc/ocda/abstraction/ssp_in.d
+++ b/src/sisudoc/ocda/abstraction/ssp_in.d
@@ -76,7 +76,7 @@ template spineAbstractionRead() {
object sections in the order the file gives them
+/
struct SSPdocument {
- string format; // "% SiSU Document Abstraction v2.0"
+ string format; // "% SiSU Document Abstraction v2.1"
string source; // "% Source: ..."
string[string] source_info; // the @source block
string[] source_info_order;
@@ -230,6 +230,14 @@ template spineAbstractionRead() {
case "section": obj.metainfo.is_of_section = _val; break;
case "parent": obj.metainfo.parent_ocn = _val.to!int; break;
case "last_descendant": obj.metainfo.last_descendant_ocn = _val.to!int; break;
+ case "ocn_range": {
+ auto _r = _ints(_val);
+ if (_r.length == 2) {
+ obj.metainfo.ocn_range_first = _r[0];
+ obj.metainfo.ocn_range_last = _r[1];
+ }
+ break;
+ }
case "children": obj.metainfo.children_headings = _ints(_val); break;
case "ancestors":
obj.metainfo.markedup_ancestors = _eight(_val);