aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--org/meta_abstraction.org52
-rw-r--r--src/sdp/meta/metadoc_from_src.d52
2 files changed, 68 insertions, 36 deletions
diff --git a/org/meta_abstraction.org b/org/meta_abstraction.org
index 6b6ad9f..00b87a3 100644
--- a/org/meta_abstraction.org
+++ b/org/meta_abstraction.org
@@ -1978,6 +1978,7 @@ if (the_document_body_section.length > 1) {
if (obj.metainfo.is_a == "heading") {
obj.metainfo.markedup_ancestors = _get_ancestors_markup(obj, _ancestors_markup);
obj.metainfo.collapsed_ancestors = _get_ancestors_collapsed(obj, _ancestors_collapsed);
+ obj.metainfo.parent_ocn = obj.metainfo.markedup_ancestors[obj.metainfo.parent_lev_markup];
}
}
debug(ancestors) {
@@ -1994,9 +1995,12 @@ if (the_document_body_section.length > 1) {
if (the_endnotes_section.length > 1) {
html_segnames ~= "endnotes";
html_segnames_ptr = html_segnames_ptr_cntr;
- foreach (ref section; the_endnotes_section) {
- if (section.metainfo.heading_lev_markup == 4) {
- section.ptr.html_segnames = html_segnames_ptr;
+ foreach (ref obj; the_endnotes_section) {
+ if (obj.metainfo.is_a == "heading") {
+ obj.metainfo.parent_ocn = obj.metainfo.markedup_ancestors[obj.metainfo.parent_lev_markup];
+ }
+ if (obj.metainfo.heading_lev_markup == 4) {
+ obj.ptr.html_segnames = html_segnames_ptr;
break;
}
}
@@ -2011,9 +2015,12 @@ if (the_endnotes_section.length > 1) {
if (the_glossary_section.length > 1) {
html_segnames ~= "glossary";
html_segnames_ptr = html_segnames_ptr_cntr;
- foreach (ref section; the_glossary_section) {
- if (section.metainfo.heading_lev_markup == 4) {
- section.ptr.html_segnames = html_segnames_ptr;
+ foreach (ref obj; the_glossary_section) {
+ if (obj.metainfo.is_a == "heading") {
+ obj.metainfo.parent_ocn = obj.metainfo.markedup_ancestors[obj.metainfo.parent_lev_markup];
+ }
+ if (obj.metainfo.heading_lev_markup == 4) {
+ obj.ptr.html_segnames = html_segnames_ptr;
break;
}
}
@@ -2028,9 +2035,12 @@ if (the_glossary_section.length > 1) {
if (the_bibliography_section.length > 1) {
html_segnames ~= "bibliography";
html_segnames_ptr = html_segnames_ptr_cntr;
- foreach (ref section; the_bibliography_section) {
- if (section.metainfo.heading_lev_markup == 4) {
- section.ptr.html_segnames = html_segnames_ptr;
+ foreach (ref obj; the_bibliography_section) {
+ if (obj.metainfo.is_a == "heading") {
+ obj.metainfo.parent_ocn = obj.metainfo.markedup_ancestors[obj.metainfo.parent_lev_markup];
+ }
+ if (obj.metainfo.heading_lev_markup == 4) {
+ obj.ptr.html_segnames = html_segnames_ptr;
break;
}
}
@@ -2045,15 +2055,18 @@ if (the_bibliography_section.length > 1) {
if (the_bookindex_section["scroll"].length > 1) {
html_segnames ~= "bookindex";
html_segnames_ptr = html_segnames_ptr_cntr;
- foreach (ref section; the_bookindex_section["scroll"]) {
- if (section.metainfo.heading_lev_markup == 4) {
- section.ptr.html_segnames = html_segnames_ptr;
+ foreach (ref obj; the_bookindex_section["scroll"]) {
+ if (obj.metainfo.is_a == "heading") {
+ obj.metainfo.parent_ocn = obj.metainfo.markedup_ancestors[obj.metainfo.parent_lev_markup];
+ }
+ if (obj.metainfo.heading_lev_markup == 4) {
+ obj.ptr.html_segnames = html_segnames_ptr;
break;
}
}
- foreach (ref section; the_bookindex_section["seg"]) {
- if (section.metainfo.heading_lev_markup == 4) {
- section.ptr.html_segnames = html_segnames_ptr;
+ foreach (ref obj; the_bookindex_section["seg"]) {
+ if (obj.metainfo.heading_lev_markup == 4) {
+ obj.ptr.html_segnames = html_segnames_ptr;
break;
}
}
@@ -2068,9 +2081,12 @@ if (the_bookindex_section["scroll"].length > 1) {
if (the_blurb_section.length > 1) {
html_segnames ~= "blurb";
html_segnames_ptr = html_segnames_ptr_cntr;
- foreach (ref section; the_blurb_section) {
- if (section.metainfo.heading_lev_markup == 4) {
- section.ptr.html_segnames = html_segnames_ptr;
+ foreach (ref obj; the_blurb_section) {
+ if (obj.metainfo.is_a == "heading") {
+ obj.metainfo.parent_ocn = obj.metainfo.markedup_ancestors[obj.metainfo.parent_lev_markup];
+ }
+ if (obj.metainfo.heading_lev_markup == 4) {
+ obj.ptr.html_segnames = html_segnames_ptr;
break;
}
}
diff --git a/src/sdp/meta/metadoc_from_src.d b/src/sdp/meta/metadoc_from_src.d
index f202b7c..050089e 100644
--- a/src/sdp/meta/metadoc_from_src.d
+++ b/src/sdp/meta/metadoc_from_src.d
@@ -1510,6 +1510,7 @@ template SiSUdocAbstraction() {
if (obj.metainfo.is_a == "heading") {
obj.metainfo.markedup_ancestors = _get_ancestors_markup(obj, _ancestors_markup);
obj.metainfo.collapsed_ancestors = _get_ancestors_collapsed(obj, _ancestors_collapsed);
+ obj.metainfo.parent_ocn = obj.metainfo.markedup_ancestors[obj.metainfo.parent_lev_markup];
}
}
debug(ancestors) {
@@ -1520,9 +1521,12 @@ template SiSUdocAbstraction() {
if (the_endnotes_section.length > 1) {
html_segnames ~= "endnotes";
html_segnames_ptr = html_segnames_ptr_cntr;
- foreach (ref section; the_endnotes_section) {
- if (section.metainfo.heading_lev_markup == 4) {
- section.ptr.html_segnames = html_segnames_ptr;
+ foreach (ref obj; the_endnotes_section) {
+ if (obj.metainfo.is_a == "heading") {
+ obj.metainfo.parent_ocn = obj.metainfo.markedup_ancestors[obj.metainfo.parent_lev_markup];
+ }
+ if (obj.metainfo.heading_lev_markup == 4) {
+ obj.ptr.html_segnames = html_segnames_ptr;
break;
}
}
@@ -1531,9 +1535,12 @@ template SiSUdocAbstraction() {
if (the_glossary_section.length > 1) {
html_segnames ~= "glossary";
html_segnames_ptr = html_segnames_ptr_cntr;
- foreach (ref section; the_glossary_section) {
- if (section.metainfo.heading_lev_markup == 4) {
- section.ptr.html_segnames = html_segnames_ptr;
+ foreach (ref obj; the_glossary_section) {
+ if (obj.metainfo.is_a == "heading") {
+ obj.metainfo.parent_ocn = obj.metainfo.markedup_ancestors[obj.metainfo.parent_lev_markup];
+ }
+ if (obj.metainfo.heading_lev_markup == 4) {
+ obj.ptr.html_segnames = html_segnames_ptr;
break;
}
}
@@ -1542,9 +1549,12 @@ template SiSUdocAbstraction() {
if (the_bibliography_section.length > 1) {
html_segnames ~= "bibliography";
html_segnames_ptr = html_segnames_ptr_cntr;
- foreach (ref section; the_bibliography_section) {
- if (section.metainfo.heading_lev_markup == 4) {
- section.ptr.html_segnames = html_segnames_ptr;
+ foreach (ref obj; the_bibliography_section) {
+ if (obj.metainfo.is_a == "heading") {
+ obj.metainfo.parent_ocn = obj.metainfo.markedup_ancestors[obj.metainfo.parent_lev_markup];
+ }
+ if (obj.metainfo.heading_lev_markup == 4) {
+ obj.ptr.html_segnames = html_segnames_ptr;
break;
}
}
@@ -1553,15 +1563,18 @@ template SiSUdocAbstraction() {
if (the_bookindex_section["scroll"].length > 1) {
html_segnames ~= "bookindex";
html_segnames_ptr = html_segnames_ptr_cntr;
- foreach (ref section; the_bookindex_section["scroll"]) {
- if (section.metainfo.heading_lev_markup == 4) {
- section.ptr.html_segnames = html_segnames_ptr;
+ foreach (ref obj; the_bookindex_section["scroll"]) {
+ if (obj.metainfo.is_a == "heading") {
+ obj.metainfo.parent_ocn = obj.metainfo.markedup_ancestors[obj.metainfo.parent_lev_markup];
+ }
+ if (obj.metainfo.heading_lev_markup == 4) {
+ obj.ptr.html_segnames = html_segnames_ptr;
break;
}
}
- foreach (ref section; the_bookindex_section["seg"]) {
- if (section.metainfo.heading_lev_markup == 4) {
- section.ptr.html_segnames = html_segnames_ptr;
+ foreach (ref obj; the_bookindex_section["seg"]) {
+ if (obj.metainfo.heading_lev_markup == 4) {
+ obj.ptr.html_segnames = html_segnames_ptr;
break;
}
}
@@ -1570,9 +1583,12 @@ template SiSUdocAbstraction() {
if (the_blurb_section.length > 1) {
html_segnames ~= "blurb";
html_segnames_ptr = html_segnames_ptr_cntr;
- foreach (ref section; the_blurb_section) {
- if (section.metainfo.heading_lev_markup == 4) {
- section.ptr.html_segnames = html_segnames_ptr;
+ foreach (ref obj; the_blurb_section) {
+ if (obj.metainfo.is_a == "heading") {
+ obj.metainfo.parent_ocn = obj.metainfo.markedup_ancestors[obj.metainfo.parent_lev_markup];
+ }
+ if (obj.metainfo.heading_lev_markup == 4) {
+ obj.ptr.html_segnames = html_segnames_ptr;
break;
}
}