aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sdp/output
diff options
context:
space:
mode:
Diffstat (limited to 'src/sdp/output')
-rw-r--r--src/sdp/output/epub3.d134
-rw-r--r--src/sdp/output/html.d80
-rw-r--r--src/sdp/output/sqlite.d90
-rw-r--r--src/sdp/output/xmls.d178
4 files changed, 241 insertions, 241 deletions
diff --git a/src/sdp/output/epub3.d b/src/sdp/output/epub3.d
index 3209fae..18b9986 100644
--- a/src/sdp/output/epub3.d
+++ b/src/sdp/output/epub3.d
@@ -104,20 +104,20 @@ template outputEPub3() {
debug(epubmanifest) {
foreach (s; doc_matters.xml.keys_seq.seg) {
foreach (obj; doc_abstraction[s]) {
- if (obj.is_a == "heading") {
- if (obj.heading_lev_markup == 4) {
+ if (obj.typeinfo.is_a == "heading") {
+ if (obj.node.heading_lev_markup == 4) {
writefln(
"%s~ [%s.xhtml] %s",
obj.marked_up_level,
- obj.segment_anchor_tag,
+ obj.tags.segment_anchor_tag,
obj.text
);
- } else if (obj.heading_lev_markup > 4) {
+ } else if (obj.node.heading_lev_markup > 4) {
writefln(
"%s~ [%s.xhtml#%s] %s",
obj.marked_up_level,
- obj.segment_anchor_tag,
- obj.obj_cite_number,
+ obj.tags.segment_anchor_tag,
+ obj.node.obj_cite_number,
obj.text
);
}
@@ -146,49 +146,49 @@ template outputEPub3() {
);
foreach (sect; doc_matters.xml.keys_seq.seg) {
foreach (obj; doc_abstraction[sect]) {
- if (obj.is_a == "heading") {
+ if (obj.typeinfo.is_a == "heading") {
string _txt = obj.text.replaceAll(rgx.inline_notes_al_gen, "").strip;
foreach_reverse (n; 0 .. 7) {
string k = n.to!string;
- switch (obj.dom_collapsed[n]) {
+ switch (obj.node.dom_collapsed[n]) {
case DomTags.close :
toc ~= markup.indent_by_spaces_provided((n + 1), " ") ~ "</li>" ~ "\n";
toc ~= markup.indent_by_spaces_provided(n, " ") ~ "</ol>" ~ "\n";
break;
case DomTags.close_and_open :
toc ~= markup.indent_by_spaces_provided((n + 1), " ") ~ "</li>" ~ "\n";
- if (obj.heading_lev_markup < 4) {
+ if (obj.node.heading_lev_markup < 4) {
toc ~= markup.indent_by_spaces_provided((n + 1), " ") ~ "<li>" ~ "\n"
~ markup.indent_by_spaces_provided((n + 2), " ")
- ~ "<a href=\"" ~ obj.segment_anchor_tag ~ ".xhtml" ~ "\">"
+ ~ "<a href=\"" ~ obj.tags.segment_anchor_tag ~ ".xhtml" ~ "\">"
~ _txt
~ "</a>" ~ "\n";
} else {
- string hashtag =(obj.heading_lev_markup == 4)
+ string hashtag =(obj.node.heading_lev_markup == 4)
? ""
- : ("#" ~ obj.ocn.to!string);
+ : ("#" ~ obj.node.ocn.to!string);
toc ~= markup.indent_by_spaces_provided((n + 1), " ") ~ "<li>" ~ "\n"
~ markup.indent_by_spaces_provided((n + 2), " ")
- ~ "<a href=\"" ~ obj.segment_anchor_tag ~ ".xhtml" ~ hashtag ~ "\">"
+ ~ "<a href=\"" ~ obj.tags.segment_anchor_tag ~ ".xhtml" ~ hashtag ~ "\">"
~ _txt
~ "</a>" ~ "\n";
}
break;
case DomTags.open :
toc ~= markup.indent_by_spaces_provided(n, " ") ~ "<ol>" ~ "\n";
- if (obj.heading_lev_markup < 4) {
+ if (obj.node.heading_lev_markup < 4) {
toc ~= markup.indent_by_spaces_provided((n + 1), " ") ~ "<li>" ~ "\n"
~ markup.indent_by_spaces_provided((n + 2), " ")
- ~ "<a href=\"" ~ obj.segment_anchor_tag ~ ".xhtml" ~ "\">"
+ ~ "<a href=\"" ~ obj.tags.segment_anchor_tag ~ ".xhtml" ~ "\">"
~ _txt
~ "</a>" ~ "\n";
} else {
- string hashtag =(obj.heading_lev_markup == 4)
+ string hashtag =(obj.node.heading_lev_markup == 4)
? ""
- : ("#" ~ obj.ocn.to!string);
+ : ("#" ~ obj.node.ocn.to!string);
toc ~= markup.indent_by_spaces_provided((n + 1), " ") ~ "<li>" ~ "\n"
~ markup.indent_by_spaces_provided((n + 2), " ")
- ~ "<a href=\"" ~ obj.segment_anchor_tag ~ ".xhtml" ~ hashtag ~ "\">"
+ ~ "<a href=\"" ~ obj.tags.segment_anchor_tag ~ ".xhtml" ~ hashtag ~ "\">"
~ _txt
~ "</a>" ~ "\n";
}
@@ -243,11 +243,11 @@ template outputEPub3() {
);
foreach (sect; doc_matters.xml.keys_seq.seg) {
foreach (obj; doc_abstraction[sect]) {
- if (obj.is_a == "heading") {
+ if (obj.typeinfo.is_a == "heading") {
string _txt = obj.text.replaceAll(rgx.inline_notes_al_gen, "").strip;
- string hashtag =(obj.heading_lev_markup <= 4) ? "" : ("#" ~ obj.ocn.to!string);
+ string hashtag =(obj.node.heading_lev_markup <= 4) ? "" : ("#" ~ obj.node.ocn.to!string);
foreach_reverse (k; 0 .. 7) {
- switch (obj.dom_markedup[k]) {
+ switch (obj.node.dom_markedup[k]) {
case DomTags.close :
toc ~= "\n </navPoint>";
break;
@@ -262,7 +262,7 @@ template outputEPub3() {
<content src="%s.xhtml%s" />¶",
counter,
_txt,
- obj.segment_anchor_tag,
+ obj.tags.segment_anchor_tag,
hashtag,
);
break;
@@ -276,7 +276,7 @@ template outputEPub3() {
<content src="%s.xhtml%s" />¶",
counter,
_txt,
- obj.segment_anchor_tag,
+ obj.tags.segment_anchor_tag,
hashtag,
);
break;
@@ -310,12 +310,12 @@ template outputEPub3() {
foreach (part; doc_matters.xml.keys_seq.seg) {
foreach (obj; doc_abstraction[part]) {
string _txt = xhtml_format.special_characters(obj, obj.text);
- if (obj.is_a == "heading") {
+ if (obj.typeinfo.is_a == "heading") {
assert(part == "head" || "toc_seg" || "body" || "endnotes" || "glossary" || "bibliography" || "bookindex_seg" || "blurb" || "tail");
- switch (obj.heading_lev_markup) {
+ switch (obj.node.heading_lev_markup) {
case 0: .. case 3:
/+ fill buffer, and replace with new levels from 1 to 3 +/
- switch (obj.heading_lev_markup) {
+ switch (obj.node.heading_lev_markup) {
case 0:
top_level_headings[0] = "";
top_level_headings[1] = "";
@@ -335,16 +335,16 @@ template outputEPub3() {
top_level_headings[3] = "";
goto default;
default:
- doc_parts_ ~= obj.segment_anchor_tag;
- doc_epub3[obj.segment_anchor_tag] ~= xhtml_format.epub3_seg_head(doc_matters);
+ doc_parts_ ~= obj.tags.segment_anchor_tag;
+ doc_epub3[obj.tags.segment_anchor_tag] ~= xhtml_format.epub3_seg_head(doc_matters);
auto t = xhtml_format.heading_seg(obj, _txt, suffix, "epub");
- doc_epub3[obj.segment_anchor_tag] ~= t[0];
- doc_epub3_endnotes[obj.segment_anchor_tag] ~= t[1];
+ doc_epub3[obj.tags.segment_anchor_tag] ~= t[0];
+ doc_epub3_endnotes[obj.tags.segment_anchor_tag] ~= t[1];
break;
}
break;
case 4:
- segment_filename = obj.segment_anchor_tag;
+ segment_filename = obj.tags.segment_anchor_tag;
doc_epub3[segment_filename] ~= xhtml_format.epub3_seg_head(doc_matters);
auto t = xhtml_format.heading_seg(obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0];
@@ -357,23 +357,23 @@ template outputEPub3() {
break;
case 8: .. case 9:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_a, ": ", obj.heading_lev_markup);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_a, ": ", obj.node.heading_lev_markup);
writeln(__FILE__, ":", __LINE__, ": ", obj.text);
}
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_a, ": ", obj.heading_lev_markup);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_a, ": ", obj.node.heading_lev_markup);
}
break;
}
} else {
assert(part == "head" || "toc_seg" || "body" || "endnotes" || "glossary" || "bibliography" || "bookindex_seg" || "blurb" || "tail");
- switch (obj.of_part) {
+ switch (obj.typeinfo.of_part) {
case "frontmatter": assert(part == "head" || "toc_seg");
- switch (obj.is_of) {
+ switch (obj.typeinfo.is_of) {
case "para":
- switch (obj.is_a) {
+ switch (obj.typeinfo.is_a) {
case "toc":
auto t = xhtml_format.para_seg(obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0];
@@ -381,22 +381,22 @@ template outputEPub3() {
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_a);
}
break;
}
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_of);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_of);
}
break;
}
break;
case "body": assert(part == "body");
- switch (obj.is_of) {
+ switch (obj.typeinfo.is_of) {
case "para":
- switch (obj.is_a) {
+ switch (obj.typeinfo.is_a) {
case "para":
auto t = xhtml_format.para_seg(obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0];
@@ -404,13 +404,13 @@ template outputEPub3() {
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_a);
}
break;
}
break;
case "block":
- switch (obj.is_a) {
+ switch (obj.typeinfo.is_a) {
case "quote":
auto t = xhtml_format.quote_seg(obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0].to!string;
@@ -442,23 +442,23 @@ template outputEPub3() {
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_a);
}
break;
}
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_of);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_of);
}
break;
}
break;
case "backmatter":
assert(part == "endnotes" || "glossary" || "bibliography" || "bookindex_seg" || "blurb" || "tail");
- switch (obj.is_of) {
+ switch (obj.typeinfo.is_of) {
case "para":
- switch (obj.is_a) {
+ switch (obj.typeinfo.is_a) {
case "endnote": assert(part == "endnotes");
auto t = xhtml_format.para_seg(obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0];
@@ -485,14 +485,14 @@ template outputEPub3() {
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_a);
}
break;
}
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_of);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_of);
}
break;
}
@@ -501,53 +501,53 @@ template outputEPub3() {
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.of_part);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.of_part);
}
break;
}
}
- if (obj.is_a == "heading") {
+ if (obj.typeinfo.is_a == "heading") {
assert(obj.text.length > 0);
- if (obj.heading_lev_markup <= 4) {
+ if (obj.node.heading_lev_markup <= 4) {
oepbs_content_parts["manifest_documents"] ~=
format(q"¶ <item id="%s.xhtml" href="%s.xhtml" media-type="application/xhtml+xml" />
¶",
- obj.segment_anchor_tag,
- obj.segment_anchor_tag,
+ obj.tags.segment_anchor_tag,
+ obj.tags.segment_anchor_tag,
);
oepbs_content_parts["spine"] ~=
format(q"¶ <itemref idref="%s.xhtml" linear="yes" />
¶",
- obj.segment_anchor_tag,
+ obj.tags.segment_anchor_tag,
);
oepbs_content_parts["guide"] ~=
format(q"¶ <reference type="%s" href="%s" />
¶",
- obj.segment_anchor_tag,
- obj.segment_anchor_tag,
+ obj.tags.segment_anchor_tag,
+ obj.tags.segment_anchor_tag,
);
- } else if (obj.heading_lev_markup > 4) {
+ } else if (obj.node.heading_lev_markup > 4) {
oepbs_content_parts["manifest_documents"] ~=
format(q"¶ <item id="%s.xhtml#%s" href="%s.xhtml#%s" media-type="application/xhtml+xml" />
¶",
- obj.segment_anchor_tag,
- obj.obj_cite_number,
- obj.segment_anchor_tag,
- obj.obj_cite_number,
+ obj.tags.segment_anchor_tag,
+ obj.node.obj_cite_number,
+ obj.tags.segment_anchor_tag,
+ obj.node.obj_cite_number,
);
oepbs_content_parts["spine"] ~=
format(q"¶ <itemref idref="%s.xhtml#%s" linear="yes" />
¶",
- obj.segment_anchor_tag,
- obj.obj_cite_number,
+ obj.tags.segment_anchor_tag,
+ obj.node.obj_cite_number,
);
oepbs_content_parts["guide"] ~=
format(q"¶ <reference type="%s#%s" href="%s#%s" />
¶",
- obj.segment_anchor_tag,
- obj.obj_cite_number,
- obj.segment_anchor_tag,
- obj.obj_cite_number,
+ obj.tags.segment_anchor_tag,
+ obj.node.obj_cite_number,
+ obj.tags.segment_anchor_tag,
+ obj.node.obj_cite_number,
);
}
}
diff --git a/src/sdp/output/html.d b/src/sdp/output/html.d
index ddd3c9f..6078c00 100644
--- a/src/sdp/output/html.d
+++ b/src/sdp/output/html.d
@@ -28,11 +28,11 @@ template outputHTML() {
foreach (obj; doc_abstraction[part]) {
delimit = xhtml_format.div_delimit(part, previous_part);
string _txt = xhtml_format.special_characters(obj, obj.text);
- switch (obj.of_part) {
+ switch (obj.typeinfo.of_part) {
case "frontmatter": assert(part == "head" || "toc_scroll");
- switch (obj.is_of) {
+ switch (obj.typeinfo.is_of) {
case "para":
- switch (obj.is_a) {
+ switch (obj.typeinfo.is_a) {
case "heading":
doc_html ~= delimit ~ xhtml_format.heading_scroll(obj, _txt, suffix);
break;
@@ -41,22 +41,22 @@ template outputHTML() {
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_a);
}
break;
}
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_of);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_of);
}
break;
}
break;
case "body": assert(part == "body" || "head"); // surprise
- switch (obj.is_of) {
+ switch (obj.typeinfo.is_of) {
case "para":
- switch (obj.is_a) {
+ switch (obj.typeinfo.is_a) {
case "heading":
doc_html ~= delimit ~ xhtml_format.heading_scroll(obj, _txt, suffix);
break;
@@ -65,13 +65,13 @@ template outputHTML() {
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_a);
}
break;
}
break;
case "block":
- switch (obj.is_a) {
+ switch (obj.typeinfo.is_a) {
case "quote":
doc_html ~= xhtml_format.quote_scroll(obj, _txt);
break;
@@ -94,23 +94,23 @@ template outputHTML() {
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_a);
}
break;
}
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_of);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_of);
}
break;
}
break;
case "backmatter":
assert(part == "endnotes" || "glossary" || "bibliography" || "bookindex_scroll" || "blurb" || "tail");
- switch (obj.is_of) {
+ switch (obj.typeinfo.is_of) {
case "para":
- switch (obj.is_a) {
+ switch (obj.typeinfo.is_a) {
case "heading":
doc_html ~= delimit ~ xhtml_format.heading_scroll(obj, _txt, suffix);
break;
@@ -131,14 +131,14 @@ template outputHTML() {
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_a);
}
break;
}
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_of);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_of);
}
break;
}
@@ -147,8 +147,8 @@ template outputHTML() {
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.of_part);
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.of_part);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_a);
writeln(__FILE__, ":", __LINE__, ": ", obj.text);
}
break;
@@ -200,12 +200,12 @@ template outputHTML() {
foreach (obj; doc_abstraction[part]) {
delimit = xhtml_format.div_delimit(part, previous_part);
string _txt = xhtml_format.special_characters(obj, obj.text);
- if (obj.is_a == "heading") {
+ if (obj.typeinfo.is_a == "heading") {
assert(part == "head" || "toc_seg" || "body" || "endnotes" || "glossary" || "bibliography" || "bookindex_seg" || "blurb" || "tail");
- switch (obj.heading_lev_markup) {
+ switch (obj.node.heading_lev_markup) {
case 0: .. case 3:
/+ fill buffer, and replace with new levels from 1 to 3 +/
- switch (obj.heading_lev_markup) {
+ switch (obj.node.heading_lev_markup) {
case 0:
top_level_headings[0] = "";
top_level_headings[1] = "";
@@ -226,12 +226,12 @@ template outputHTML() {
goto default;
default:
auto t = xhtml_format.heading_seg(obj, _txt, suffix, "seg");
- top_level_headings[obj.heading_lev_markup] = t[0];
+ top_level_headings[obj.node.heading_lev_markup] = t[0];
break;
}
break;
case 4:
- segment_filename = obj.segment_anchor_tag;
+ segment_filename = obj.tags.segment_anchor_tag;
doc_html[segment_filename] ~= xhtml_format.html_head(doc_matters, "seg");
auto navigation_bar = xhtml_format.nav_pre_next_svg(obj);
doc_html[segment_filename] ~= navigation_bar.toc_pre_next; // navigation bar
@@ -252,45 +252,45 @@ template outputHTML() {
break;
case 8: .. case 9:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_a, ": ", obj.heading_lev_markup);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_a, ": ", obj.node.heading_lev_markup);
writeln(__FILE__, ":", __LINE__, ": ", obj.text);
}
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_a, ": ", obj.heading_lev_markup);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_a, ": ", obj.node.heading_lev_markup);
}
break;
}
} else {
assert(part == "head" || "toc_seg" || "body" || "endnotes" || "glossary" || "bibliography" || "bookindex_seg" || "blurb" || "tail");
- switch (obj.of_part) {
+ switch (obj.typeinfo.of_part) {
case "frontmatter": assert(part == "head" || "toc_seg");
- switch (obj.is_of) {
+ switch (obj.typeinfo.is_of) {
case "para":
- switch (obj.is_a) {
+ switch (obj.typeinfo.is_a) {
case "toc":
auto t = xhtml_format.para_seg(obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0].to!string;
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_a);
}
break;
}
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_a);
}
break;
}
break;
case "body": assert(part == "body");
- switch (obj.is_of) {
+ switch (obj.typeinfo.is_of) {
case "para":
- switch (obj.is_a) {
+ switch (obj.typeinfo.is_a) {
case "para":
auto t = xhtml_format.para_seg(obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0].to!string;
@@ -298,13 +298,13 @@ template outputHTML() {
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_a);
}
break;
}
break;
case "block":
- switch (obj.is_a) {
+ switch (obj.typeinfo.is_a) {
case "quote":
auto t = xhtml_format.quote_seg(obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0].to!string;
@@ -336,23 +336,23 @@ template outputHTML() {
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_a);
}
break;
}
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_of);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_of);
}
break;
}
break;
case "backmatter":
assert(part == "endnotes" || "glossary" || "bibliography" || "bookindex_seg" || "blurb" || "tail");
- switch (obj.is_of) {
+ switch (obj.typeinfo.is_of) {
case "para":
- switch (obj.is_a) {
+ switch (obj.typeinfo.is_a) {
case "endnote": assert(part == "endnotes");
auto t = xhtml_format.para_seg(obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0];
@@ -379,14 +379,14 @@ template outputHTML() {
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_a);
}
break;
}
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_of);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_of);
}
break;
}
@@ -395,7 +395,7 @@ template outputHTML() {
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.of_part);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.of_part);
}
break;
}
diff --git a/src/sdp/output/sqlite.d b/src/sdp/output/sqlite.d
index e9667ae..f45eec6 100644
--- a/src/sdp/output/sqlite.d
+++ b/src/sdp/output/sqlite.d
@@ -246,7 +246,7 @@ template SQLiteFormatAndLoadObject() {
string o = format(q"¶<p class="%s"><b>
%s
</b></p>¶",
- obj.is_a,
+ obj.typeinfo.is_a,
_txt,
);
return o;
@@ -255,13 +255,13 @@ template SQLiteFormatAndLoadObject() {
auto return ref const O obj,
) {
string _txt = munge_html(obj);
- _txt = (obj.bullet) ? ("●&#160;&#160;" ~ _txt) : _txt;
+ _txt = (obj.attrib.bullet) ? ("●&#160;&#160;" ~ _txt) : _txt;
string o = format(q"¶<p class="%s" indent="h%si%s">
%s
</p>¶",
- obj.is_a,
- obj.indent_hang,
- obj.indent_base,
+ obj.typeinfo.is_a,
+ obj.attrib.indent_hang,
+ obj.attrib.indent_base,
_txt
);
return o;
@@ -273,7 +273,7 @@ template SQLiteFormatAndLoadObject() {
string o = format(q"¶<p class="%s">
%s
</p>¶",
- obj.is_a,
+ obj.typeinfo.is_a,
_txt
);
return o;
@@ -285,7 +285,7 @@ template SQLiteFormatAndLoadObject() {
string o = format(q"¶<p class="%s">
%s
</p>¶",
- obj.is_a,
+ obj.typeinfo.is_a,
_txt
);
return o;
@@ -296,7 +296,7 @@ template SQLiteFormatAndLoadObject() {
string _txt = munge_html(obj);
string o = format(q"¶
<p class="%s">%s</p>¶",
- obj.is_a,
+ obj.typeinfo.is_a,
_txt.stripRight
);
return o;
@@ -306,7 +306,7 @@ template SQLiteFormatAndLoadObject() {
) {
string _txt = munge_html(obj);
string o = format(q"¶<p class="%s">%s</p>¶",
- obj.is_a,
+ obj.typeinfo.is_a,
_txt
);
return o;
@@ -316,7 +316,7 @@ template SQLiteFormatAndLoadObject() {
) {
string _txt = html_special_characters_code(obj.text);
string o = format(q"¶<p class="%s">%s</p>¶",
- obj.is_a,
+ obj.typeinfo.is_a,
_txt
);
return o;
@@ -340,14 +340,14 @@ template SQLiteFormatAndLoadObject() {
&& (_table_rows.length <= row_idx+2)) { // check row_idx+2 (rather than == ++row_idx)
_tablenote ~= cell;
} else {
- string _col_is = (row_idx == 0 && obj.table_heading) ? "th" : "td";
+ string _col_is = (row_idx == 0 && obj.table.heading) ? "th" : "td";
string _align = ("style=\"text-align:"
- ~ ((obj.table_column_aligns[col_idx] == "l")
+ ~ ((obj.table.column_aligns[col_idx] == "l")
? "left\"" : "right\""));
_table ~= "<"
~ _col_is
~ " width=\""
- ~ obj.table_column_widths[col_idx].to!string
+ ~ obj.table.column_widths[col_idx].to!string
~ "%\" "
~ _align
~ ">";
@@ -375,7 +375,7 @@ template SQLiteFormatAndLoadObject() {
</table>
%s
</p>¶",
- obj.is_a,
+ obj.typeinfo.is_a,
_txt,
_note
);
@@ -888,12 +888,12 @@ template SQLiteInsertDocObjectsLoop() {
);
¶",
_metadata_tid,
- obj.ocn,
+ obj.node.ocn,
SQLinsertDelimiter!()(obj_txt["text"]),
SQLinsertDelimiter!()(obj_txt["html"]),
- obj.heading_lev_markup,
- obj.is_of,
- obj.is_a,
+ obj.node.heading_lev_markup,
+ obj.typeinfo.is_of,
+ obj.typeinfo.is_a,
);
return _insert_doc_objects_row;
}
@@ -903,32 +903,32 @@ template SQLiteInsertDocObjectsLoop() {
string[] _insert_doc_objects;
foreach (part; doc_matters.xml.keys_seq.sql) {
foreach (obj; doc_abstraction[part]) {
- switch (obj.of_part) {
+ switch (obj.typeinfo.of_part) {
case "frontmatter": assert(part == "head", part);
- switch (obj.is_of) {
+ switch (obj.typeinfo.is_of) {
case "para":
- switch (obj.is_a) {
+ switch (obj.typeinfo.is_a) {
case "heading":
obj_txt = format_and_sqlite_load.heading(obj);
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_a);
}
break;
}
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_of);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_of);
}
break;
}
break;
case "body": // assert(part == "body", part); // TODO broken
- switch (obj.is_of) {
+ switch (obj.typeinfo.is_of) {
case "para":
- switch (obj.is_a) {
+ switch (obj.typeinfo.is_a) {
case "heading":
debug (asserts) { // TODO consider and fix or remove
if (part != "body") {
@@ -942,13 +942,13 @@ template SQLiteInsertDocObjectsLoop() {
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_a);
}
break;
}
break;
case "block":
- switch (obj.is_a) {
+ switch (obj.typeinfo.is_a) {
case "quote":
obj_txt = format_and_sqlite_load.quote(obj);
break;
@@ -971,23 +971,23 @@ template SQLiteInsertDocObjectsLoop() {
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_a);
}
break;
}
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_of);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_of);
}
break;
}
break;
case "backmatter":
assert(part == "glossary" || "bibliography" || "bookindex_seg" || "blurb" || "tail", part);
- switch (obj.is_of) {
+ switch (obj.typeinfo.is_of) {
case "para":
- switch (obj.is_a) {
+ switch (obj.typeinfo.is_a) {
case "heading":
obj_txt = format_and_sqlite_load.heading(obj);
break;
@@ -1005,14 +1005,14 @@ template SQLiteInsertDocObjectsLoop() {
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_a);
}
break;
}
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_of);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_of);
}
break;
}
@@ -1021,28 +1021,28 @@ template SQLiteInsertDocObjectsLoop() {
break;
default:
if ((doc_matters.opt.action.debug_do)) {
- writeln(__FILE__, ":", __LINE__, ": ", obj.of_part); // check where empty value could come from
- writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.of_part); // check where empty value could come from
+ writeln(__FILE__, ":", __LINE__, ": ", obj.typeinfo.is_a);
writeln(__FILE__, ":", __LINE__, ": ", obj.text); // check where empty value could come from
}
break;
}
- if (obj.is_a == "heading") {
+ if (obj.typeinfo.is_a == "heading") {
if ((doc_matters.opt.action.verbose)) {
writeln(
- "markup: ", obj.heading_lev_markup,
- "> ", obj.dom_markedup,
- "; collapsed: ", obj.heading_lev_collapsed,
- "> ", obj.dom_collapsed,
- "; ocn: ", obj.ocn,
- " node: ", obj.node,
- "; parent: ", obj.parent_lev_markup,
- "; ocn: ", obj.parent_ocn,
+ "markup: ", obj.node.heading_lev_markup,
+ "> ", obj.node.dom_markedup,
+ "; collapsed: ", obj.node.heading_lev_collapsed,
+ "> ", obj.node.dom_collapsed,
+ "; ocn: ", obj.node.ocn,
+ " node: ", obj.node.node,
+ "; parent: ", obj.node.parent_lev_markup,
+ "; ocn: ", obj.node.parent_ocn,
"; ",
);
}
}
- if (!(obj.is_a == "comment")) {
+ if (!(obj.typeinfo.is_a == "comment")) {
_insert_doc_objects ~= insertDocObjectsRow(obj);
}
} // loop closes
diff --git a/src/sdp/output/xmls.d b/src/sdp/output/xmls.d
index 785d87e..cc08bfe 100644
--- a/src/sdp/output/xmls.d
+++ b/src/sdp/output/xmls.d
@@ -60,7 +60,7 @@ template outputXHTMLs() {
.replaceAll(rgx.xhtml_less_than, "&#60;")
.replaceAll(rgx.xhtml_greater_than, "&#62;")
.replaceAll(rgx.nbsp_char, " ");
- if (!(obj.is_a == "code")) {
+ if (!(obj.typeinfo.is_a == "code")) {
_txt = (_txt)
.replaceAll(rgx.xhtml_line_break, "<br />");
}
@@ -340,7 +340,7 @@ template outputXHTMLs() {
string _suffix = ".html",
string _xml_type = "seg",
) {
- if (obj.inline_links) {
+ if (obj.has.inline_links) {
if ((_txt.match(rgx.mark_internal_site_lnk))
&& (_xml_type == "scroll")) { // conditions reversed to avoid: gdc compiled program run segfault
_txt = (_txt).replaceAll(
@@ -362,8 +362,8 @@ template outputXHTMLs() {
if (_txt.match(rgx.inline_link)) {
writeln(__LINE__,
" (missed) markup link identified (",
- obj.inline_links,
- "): ", obj.is_a, ": ",
+ obj.has.inline_links,
+ "): ", obj.typeinfo.is_a, ": ",
obj.text
);
}
@@ -372,8 +372,8 @@ template outputXHTMLs() {
if (_txt.match(rgx.inline_link)) {
writeln(__LINE__,
" (missed) markup link identified (",
- obj.inline_links,
- "): ", obj.is_a, ": ",
+ obj.has.inline_links,
+ "): ", obj.typeinfo.is_a, ": ",
obj.text
);
}
@@ -384,7 +384,7 @@ template outputXHTMLs() {
auto return ref const O obj,
string _txt,
) {
- if (obj.inline_notes_reg) {
+ if (obj.has.inline_notes_reg) {
_txt = font_face(_txt);
_txt = (_txt).replaceAll(
rgx.inline_notes_delimiter_al_regular_number_note,
@@ -393,12 +393,12 @@ template outputXHTMLs() {
}
debug(markup_endnotes) {
if (_txt.match(rgx.inline_notes_delimiter_al_regular_number_note)) {
- writeln(__LINE__, " (missed) markup endnote: ", obj.is_a, ": ", obj.text);
+ writeln(__LINE__, " (missed) markup endnote: ", obj.typeinfo.is_a, ": ", obj.text);
}
}
debug(markup) {
if (_txt.match(rgx.inline_notes_delimiter_al_regular_number_note)) {
- writeln(__LINE__, " (missed) markup endnote: ", obj.is_a, ": ", obj.text);
+ writeln(__LINE__, " (missed) markup endnote: ", obj.typeinfo.is_a, ": ", obj.text);
}
}
return _txt;
@@ -408,7 +408,7 @@ template outputXHTMLs() {
string _txt,
) {
string[] _endnotes;
- if (obj.inline_notes_reg) {
+ if (obj.has.inline_notes_reg) {
_txt = font_face(_txt);
/+ need markup for text, and separated footnote +/
foreach(m; _txt.matchAll(rgx.inline_notes_delimiter_al_regular_number_note)) {
@@ -433,7 +433,7 @@ template outputXHTMLs() {
);
} else if (_txt.match(rgx.inline_notes_delimiter_al_regular_number_note)) {
debug(markup) {
- writeln(__LINE__, " endnote: ", obj.is_a, ": ", obj.text);
+ writeln(__LINE__, " endnote: ", obj.typeinfo.is_a, ": ", obj.text);
}
}
auto t = tuple(
@@ -468,7 +468,7 @@ template outputXHTMLs() {
) {
char[] lev4_subtoc;
lev4_subtoc ~= " <div class=\"nav\">\n";
- foreach (subtoc; obj.lev4_subtoc) {
+ foreach (subtoc; obj.tags.lev4_subtoc) {
if (auto m = subtoc.match(rgx.inline_link_subtoc)) {
auto indent = m.captures[1].to!string;
auto text = m.captures[2].to!string;
@@ -493,7 +493,7 @@ template outputXHTMLs() {
auto return ref const O obj,
) {
string prev, next, toc;
- if (obj.segment_anchor_tag == "toc") {
+ if (obj.tags.segment_anchor_tag == "toc") {
toc = "";
prev = "";
} else {
@@ -506,7 +506,7 @@ template outputXHTMLs() {
</a>¶",
);
}
- if (obj.segname_prev == "") {
+ if (obj.tags.segname_prev == "") {
prev = "";
} else {
prev = format(q"¶<a href="%s.html" target="_top">
@@ -516,10 +516,10 @@ template outputXHTMLs() {
</svg>
</div>
</a>¶",
- obj.segname_prev,
+ obj.tags.segname_prev,
);
}
- if (obj.segname_next == "") {
+ if (obj.tags.segname_next == "") {
next = "";
} else {
next = format(q"¶<a href="%s.html" target="_top">
@@ -529,7 +529,7 @@ template outputXHTMLs() {
</svg>
</div>
</a>¶",
- obj.segname_next,
+ obj.tags.segname_next,
);
}
string _toc_pre_next = format(q"¶ <div class="flex-menu-option">
@@ -571,15 +571,15 @@ template outputXHTMLs() {
string _txt,
string _xml_type = "html",
) {
- auto tags = _xhtml_anchor_tags(obj.anchor_tags);
+ auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
string _horizontal_rule = "<hr />";
if ((_xml_type != "html")
- || (obj.heading_lev_markup == 0 || obj.heading_lev_markup > 4)) {
+ || (obj.node.heading_lev_markup == 0 || obj.node.heading_lev_markup > 4)) {
_horizontal_rule = "";
}
_txt = font_face(_txt);
string o;
- if (obj.obj_cite_number.empty) {
+ if (obj.node.obj_cite_number.empty) {
o = format(q"¶%s
<div class="substance">
<h%s class="%s">%s
@@ -587,11 +587,11 @@ template outputXHTMLs() {
</h%s>
</div>¶",
_horizontal_rule,
- obj.heading_lev_markup,
- obj.is_a,
+ obj.node.heading_lev_markup,
+ obj.typeinfo.is_a,
tags,
_txt,
- obj.heading_lev_markup,
+ obj.node.heading_lev_markup,
);
} else {
o = format(q"¶%s
@@ -602,15 +602,15 @@ template outputXHTMLs() {
</h%s>
</div>¶",
_horizontal_rule,
- obj.obj_cite_number,
- obj.obj_cite_number,
- obj.heading_lev_markup,
- obj.is_a,
- obj.obj_cite_number,
- obj.obj_cite_number,
+ obj.node.obj_cite_number,
+ obj.node.obj_cite_number,
+ obj.node.heading_lev_markup,
+ obj.typeinfo.is_a,
+ obj.node.obj_cite_number,
+ obj.node.obj_cite_number,
tags,
_txt,
- obj.heading_lev_markup,
+ obj.node.heading_lev_markup,
);
}
return o;
@@ -620,7 +620,7 @@ template outputXHTMLs() {
string _txt,
string _suffix = ".html",
) {
- auto tags = _xhtml_anchor_tags(obj.anchor_tags);
+ auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
_txt = inline_markup_scroll(obj, _txt, _suffix);
string o = heading(obj, _txt);
return o;
@@ -645,19 +645,19 @@ template outputXHTMLs() {
auto return ref const O obj,
string _txt,
) {
- auto tags = _xhtml_anchor_tags(obj.anchor_tags);
+ auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
_txt = font_face(_txt);
string o;
- _txt = (obj.bullet) ? ("●&#160;&#160;" ~ _txt) : _txt;
- if (obj.obj_cite_number.empty) {
+ _txt = (obj.attrib.bullet) ? ("●&#160;&#160;" ~ _txt) : _txt;
+ if (obj.node.obj_cite_number.empty) {
o = format(q"¶ <div class="substance">
<p class="%s" indent="h%si%s">%s
%s
</p>
</div>¶",
- obj.is_a,
- obj.indent_hang,
- obj.indent_base,
+ obj.typeinfo.is_a,
+ obj.attrib.indent_hang,
+ obj.attrib.indent_base,
tags,
_txt
);
@@ -668,12 +668,12 @@ template outputXHTMLs() {
%s
</p>
</div>¶",
- obj.obj_cite_number,
- obj.obj_cite_number,
- obj.is_a,
- obj.indent_hang,
- obj.indent_base,
- obj.obj_cite_number,
+ obj.node.obj_cite_number,
+ obj.node.obj_cite_number,
+ obj.typeinfo.is_a,
+ obj.attrib.indent_hang,
+ obj.attrib.indent_base,
+ obj.node.obj_cite_number,
tags,
_txt
);
@@ -685,7 +685,7 @@ template outputXHTMLs() {
string _txt,
string _suffix = ".html",
) {
- auto tags = _xhtml_anchor_tags(obj.anchor_tags);
+ auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
_txt = inline_markup_scroll(obj, _txt, _suffix);
string o = para(obj, _txt);
return o;
@@ -712,13 +712,13 @@ template outputXHTMLs() {
) {
_txt = font_face(_txt);
string o;
- if (obj.obj_cite_number.empty) {
+ if (obj.node.obj_cite_number.empty) {
o = format(q"¶ <div class="substance">
<p class="%s">
%s
</p>
</div>¶",
- obj.is_a,
+ obj.typeinfo.is_a,
_txt
);
} else {
@@ -728,10 +728,10 @@ template outputXHTMLs() {
%s
</p>
</div>¶",
- obj.obj_cite_number,
- obj.obj_cite_number,
- obj.is_a,
- obj.obj_cite_number,
+ obj.node.obj_cite_number,
+ obj.node.obj_cite_number,
+ obj.typeinfo.is_a,
+ obj.node.obj_cite_number,
_txt
);
}
@@ -742,7 +742,7 @@ template outputXHTMLs() {
string _txt,
string _suffix = ".html",
) {
- auto tags = _xhtml_anchor_tags(obj.anchor_tags);
+ auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
_txt = inline_markup_scroll(obj, _txt, _suffix);
string o = quote(obj, _txt);
return o;
@@ -769,13 +769,13 @@ template outputXHTMLs() {
) {
_txt = font_face(_txt);
string o;
- if (obj.obj_cite_number.empty) {
+ if (obj.node.obj_cite_number.empty) {
o = format(q"¶ <div class="substance">
<p class="%s">
%s
</p>
</div>¶",
- obj.is_a,
+ obj.typeinfo.is_a,
_txt
);
} else {
@@ -785,10 +785,10 @@ template outputXHTMLs() {
%s
</p>
</div>¶",
- obj.obj_cite_number,
- obj.obj_cite_number,
- obj.is_a,
- obj.obj_cite_number,
+ obj.node.obj_cite_number,
+ obj.node.obj_cite_number,
+ obj.typeinfo.is_a,
+ obj.node.obj_cite_number,
_txt
);
}
@@ -800,7 +800,7 @@ template outputXHTMLs() {
string _suffix = ".html",
string _xml_type = "html",
) {
- auto tags = _xhtml_anchor_tags(obj.anchor_tags);
+ auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
_txt = inline_markup_scroll(obj, _txt, _suffix);
string o = group(obj, _txt);
return o;
@@ -827,11 +827,11 @@ template outputXHTMLs() {
) {
_txt = font_face(_txt);
string o;
- if (obj.obj_cite_number.empty) {
+ if (obj.node.obj_cite_number.empty) {
o = format(q"¶ <div class="substance">
<p class="%s">%s</p>
</div>¶",
- obj.is_a,
+ obj.typeinfo.is_a,
_txt.stripRight
);
} else {
@@ -839,10 +839,10 @@ template outputXHTMLs() {
<label class="ocn"><a href="#%s" class="lnkocn">%s</a></label>
<p class="%s" id="%s">%s</p>
</div>¶",
- obj.obj_cite_number,
- obj.obj_cite_number,
- obj.is_a,
- obj.obj_cite_number,
+ obj.node.obj_cite_number,
+ obj.node.obj_cite_number,
+ obj.typeinfo.is_a,
+ obj.node.obj_cite_number,
_txt.stripRight
);
}
@@ -854,7 +854,7 @@ template outputXHTMLs() {
string _suffix = ".html",
string _xml_type = "html",
) {
- auto tags = _xhtml_anchor_tags(obj.anchor_tags);
+ auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
_txt = inline_markup_scroll(obj, _txt, _suffix);
string o = block(obj, _txt);
return o;
@@ -881,11 +881,11 @@ template outputXHTMLs() {
) {
_txt = font_face(_txt);
string o;
- if (obj.obj_cite_number.empty) {
+ if (obj.node.obj_cite_number.empty) {
o = format(q"¶ <div class="substance">
<p class="%s">%s</p>
</div>¶",
- obj.is_a,
+ obj.typeinfo.is_a,
_txt
);
} else {
@@ -893,10 +893,10 @@ template outputXHTMLs() {
<label class="ocn"><a href="#%s" class="lnkocn">%s</a></label>
<p class="%s" id="%s">%s</p>
</div>¶",
- obj.obj_cite_number,
- obj.obj_cite_number,
- obj.is_a,
- obj.obj_cite_number,
+ obj.node.obj_cite_number,
+ obj.node.obj_cite_number,
+ obj.typeinfo.is_a,
+ obj.node.obj_cite_number,
_txt
);
}
@@ -908,7 +908,7 @@ template outputXHTMLs() {
string _suffix = ".html",
string _xml_type = "html",
) {
- auto tags = _xhtml_anchor_tags(obj.anchor_tags);
+ auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
_txt = inline_markup_scroll(obj, _txt, _suffix);
string o = verse(obj, _txt);
return o;
@@ -945,11 +945,11 @@ template outputXHTMLs() {
&& (_table_rows.length <= row_idx+2)) {
_tablenote ~= cell;
} else {
- string _col_is = (row_idx == 0 && obj.table_heading) ? "th" : "td";
+ string _col_is = (row_idx == 0 && obj.table.heading) ? "th" : "td";
string _align = ("style=\"text-align:"
- ~ ((obj.table_column_aligns[col_idx] == "l")
+ ~ ((obj.table.column_aligns[col_idx] == "l")
? "left\"" : "right\""));
- _table ~= "<" ~ _col_is ~ " width=\"" ~ obj.table_column_widths[col_idx].to!string ~ "%\" " ~ _align ~ ">";
+ _table ~= "<" ~ _col_is ~ " width=\"" ~ obj.table.column_widths[col_idx].to!string ~ "%\" " ~ _align ~ ">";
_table ~= cell;
_table ~= "</" ~ _col_is ~ ">";
}
@@ -966,7 +966,7 @@ template outputXHTMLs() {
auto return ref const O obj,
string _txt,
) {
- auto tags = _xhtml_anchor_tags(obj.anchor_tags);
+ auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
_txt = font_face(_txt);
auto t = tablarize(obj, _txt);
_txt = t[0];
@@ -981,10 +981,10 @@ template outputXHTMLs() {
%s
</p>
</div>¶",
- obj.obj_cite_number,
- obj.obj_cite_number,
- obj.is_a,
- obj.obj_cite_number,
+ obj.node.obj_cite_number,
+ obj.node.obj_cite_number,
+ obj.typeinfo.is_a,
+ obj.node.obj_cite_number,
tags,
_txt,
_note
@@ -999,9 +999,9 @@ template outputXHTMLs() {
o = format(q"¶ <p class="%s" indent="h%si%s">
%s
</p>¶",
- obj.is_a,
- obj.indent_hang,
- obj.indent_base,
+ obj.typeinfo.is_a,
+ obj.attrib.indent_hang,
+ obj.attrib.indent_base,
_txt
);
return o;
@@ -1011,11 +1011,11 @@ template outputXHTMLs() {
string _txt,
) {
string o;
- if (obj.obj_cite_number.empty) {
+ if (obj.node.obj_cite_number.empty) {
o = format(q"¶ <div class="substance">
<p class="%s">%s</p>
</div>¶",
- obj.is_a,
+ obj.typeinfo.is_a,
_txt
);
} else {
@@ -1023,10 +1023,10 @@ template outputXHTMLs() {
<label class="ocn"><a href="#%s" class="lnkocn">%s</a></label>
<p class="%s" id="%s">%s</p>
</div>¶",
- obj.obj_cite_number,
- obj.obj_cite_number,
- obj.is_a,
- obj.obj_cite_number,
+ obj.node.obj_cite_number,
+ obj.node.obj_cite_number,
+ obj.typeinfo.is_a,
+ obj.node.obj_cite_number,
_txt
);
}