aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRalph Amissah <ralph.amissah@gmail.com>2018-09-28 17:05:34 -0400
committerRalph Amissah <ralph.amissah@gmail.com>2019-04-10 15:14:15 -0400
commit08a374929fdfd11b2546636a9151518491457f18 (patch)
tree31b97119fcd3d3e37a94cee5becdc841745ba693
parentdoc_abstraction provide object with segment it occurs in (diff)
output xmls & sqlite, make doc_matter available
-rw-r--r--org/output_hub.org6
-rw-r--r--org/output_sqlite.org157
-rw-r--r--org/output_xmls.org441
-rw-r--r--src/doc_reform/output/epub3.d32
-rw-r--r--src/doc_reform/output/html.d74
-rw-r--r--src/doc_reform/output/hub.d6
-rw-r--r--src/doc_reform/output/sqlite.d152
-rw-r--r--src/doc_reform/output/xmls.d324
8 files changed, 644 insertions, 548 deletions
diff --git a/org/output_hub.org b/org/output_hub.org
index 6cb7f9b..24095b3 100644
--- a/org/output_hub.org
+++ b/org/output_hub.org
@@ -82,7 +82,7 @@ if (sched == outTask.sisupod) {
}
if (sched == outTask.sqlite) {
msg.v("sqlite processing... ");
- SQLiteHubDiscreteBuildTablesAndPopulate!()(doc_abstraction, doc_matters);
+ SQLiteHubDiscreteBuildTablesAndPopulate!()(doc_matters, doc_abstraction);
msg.vv("sqlite done");
}
if (sched == outTask.epub) {
@@ -120,11 +120,11 @@ if (sched == outTask.html_stuff) {
#+BEGIN_SRC d
if (doc_matters.opt.action.sqlite_update) {
msg.v("sqlite update processing...");
- SQLiteHubBuildTablesAndPopulate!()(doc_abstraction, doc_matters);
+ SQLiteHubBuildTablesAndPopulate!()(doc_matters, doc_abstraction);
msg.vv("sqlite update done");
} else if (doc_matters.opt.action.sqlite_delete) {
msg.v("sqlite delete processing...");
- SQLiteHubBuildTablesAndPopulate!()(doc_abstraction, doc_matters);
+ SQLiteHubBuildTablesAndPopulate!()(doc_matters, doc_abstraction);
msg.vv("sqlite delete done");
}
#+END_SRC
diff --git a/org/output_sqlite.org b/org/output_sqlite.org
index 8d792c6..566b960 100644
--- a/org/output_sqlite.org
+++ b/org/output_sqlite.org
@@ -31,18 +31,18 @@ mixin DocReformOutputRgxInit;
static auto rgx = Rgx();
long _metadata_tid_lastrowid;
template SQLiteHubBuildTablesAndPopulate() {
- void SQLiteHubBuildTablesAndPopulate(D,I)(
+ void SQLiteHubBuildTablesAndPopulate(M,D)(
+ M doc_matters,
D doc_abstraction,
- I doc_matters,
) {
auto pth_sqlite = DocReformPathsSQLite!()(doc_matters.sqlite.filename, doc_matters.output_path);
pth_sqlite.base.mkdirRecurse;
auto db = Database(pth_sqlite.sqlite_file);
template SQLiteDbStatementComposite() {
- void SQLiteDbStatementComposite(Db,D,I)(
+ void SQLiteDbStatementComposite(Db,M,D)(
Db db,
+ M doc_matters,
D doc_abstraction,
- I doc_matters,
) {
<<sqlite_db_statement_composite_collection>>
if (!(doc_matters.opt.action.quiet)) {
@@ -50,7 +50,7 @@ template SQLiteHubBuildTablesAndPopulate() {
}
}
}
- SQLiteDbStatementComposite!()(db, doc_abstraction, doc_matters);
+ SQLiteDbStatementComposite!()(db, doc_matters, doc_abstraction);
}
}
#+END_SRC
@@ -59,18 +59,18 @@ template SQLiteHubBuildTablesAndPopulate() {
#+BEGIN_SRC d :tangle ../src/doc_reform/output/sqlite.d
template SQLiteHubDiscreteBuildTablesAndPopulate() {
- void SQLiteHubDiscreteBuildTablesAndPopulate(D,I)(
+ void SQLiteHubDiscreteBuildTablesAndPopulate(M,D)(
+ M doc_matters,
D doc_abstraction,
- I doc_matters,
) {
auto pth_sqlite = DocReformPathsSQLiteDiscrete!()(doc_matters.output_path, doc_matters.src.language);
pth_sqlite.base.mkdirRecurse;
auto db = Database(pth_sqlite.sqlite_file(doc_matters.src.filename));
template SQLiteDiscreteDbStatementComposite() {
- void SQLiteDiscreteDbStatementComposite(Db,D,I)(
+ void SQLiteDiscreteDbStatementComposite(Db,M,D)(
Db db,
+ M doc_matters,
D doc_abstraction,
- I doc_matters,
) {
<<sqlite_db_statement_composite_discrete>>
if (!(doc_matters.opt.action.quiet)) {
@@ -78,7 +78,7 @@ template SQLiteHubDiscreteBuildTablesAndPopulate() {
}
}
}
- SQLiteDiscreteDbStatementComposite!()(db, doc_abstraction, doc_matters);
+ SQLiteDiscreteDbStatementComposite!()(db, doc_matters, doc_abstraction);
}
}
#+END_SRC
@@ -132,8 +132,8 @@ template SQLinsertDelimiter() {
}
}
template SQLiteFormatAndLoadObject() {
- auto SQLiteFormatAndLoadObject(I)(
- I doc_matters,
+ auto SQLiteFormatAndLoadObject(M)(
+ M doc_matters,
) {
mixin DocReformOutputRgxInit;
struct sqlite_format_and_load_objects {
@@ -171,8 +171,8 @@ template SQLiteTablesReCreate() {
#+BEGIN_SRC d :tangle ../src/doc_reform/output/sqlite.d
template SQLiteDeleteDocument() {
- string SQLiteDeleteDocument(I)(
- I doc_matters,
+ string SQLiteDeleteDocument(M)(
+ M doc_matters,
) {
<<sqlite_formatted_delete>>
return _delete_uid;
@@ -184,8 +184,8 @@ template SQLiteDeleteDocument() {
#+BEGIN_SRC d :tangle ../src/doc_reform/output/sqlite.d
template SQLiteInsertMetadata() {
- string SQLiteInsertMetadata(I)(
- I doc_matters,
+ string SQLiteInsertMetadata(M)(
+ M doc_matters,
) {
<<sqlite_formatted_insertions_doc_matters_metadata>>
return _insert_metadata;
@@ -197,9 +197,9 @@ template SQLiteInsertMetadata() {
#+BEGIN_SRC d :tangle ../src/doc_reform/output/sqlite.d
template SQLiteInsertDocObjectsLoop() {
- string SQLiteInsertDocObjectsLoop(D,I)(
+ string SQLiteInsertDocObjectsLoop(M,D)(
+ M doc_matters,
D doc_abstraction,
- I doc_matters,
) {
string _uid = SQLinsertDelimiter!()(doc_matters.src.doc_uid);
string insertDocObjectsRow(O)(O obj) {
@@ -287,7 +287,7 @@ template SQLiteDbDrop() {
_db_statement ~= SQLiteInsertMetadata!()(doc_matters);
SQLiteDbRun!()(db, _db_statement, doc_matters.opt.action, "INSERT MetaData");
/+ get tid (lastrowid or max) for use in doc_objects table +/
- _db_statement ~= SQLiteInsertDocObjectsLoop!()(doc_abstraction, doc_matters);
+ _db_statement ~= SQLiteInsertDocObjectsLoop!()(doc_matters, doc_abstraction);
SQLiteDbRun!()(db, _db_statement, doc_matters.opt.action, "INSERT DocObjects");
}
}
@@ -304,7 +304,7 @@ template SQLiteDbDrop() {
{
_db_statement ~= SQLiteTablesReCreate!()();
_db_statement ~= SQLiteInsertMetadata!()(doc_matters);
- _db_statement ~= SQLiteInsertDocObjectsLoop!()(doc_abstraction, doc_matters);
+ _db_statement ~= SQLiteInsertDocObjectsLoop!()(doc_matters, doc_abstraction);
SQLiteDbRun!()(db, _db_statement, doc_matters.opt.action, "table CREATE Tables, INSERT DocObjects");
}
db.close;
@@ -383,7 +383,8 @@ light html objects
#+name: sanitize_and_munge_inline_html
#+BEGIN_SRC d
-auto munge_html(O)(
+auto munge_html(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
string _html_special_characters(string _txt){
@@ -490,10 +491,11 @@ string html_font_face(string _txt){
#+name: html_objects
#+BEGIN_SRC d
-auto html_heading(O)(
+auto html_heading(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
- string _txt = munge_html(obj);
+ string _txt = munge_html(doc_matters, obj);
string o = format(q"¶<p class="%s"><b>
%s
</b></p>¶",
@@ -508,11 +510,12 @@ auto html_heading(O)(
##+name: prepare_objects_html
#+BEGIN_SRC d
-auto html_heading(O)(
+auto html_heading(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
string o;
- string _txt = munge_html(obj);
+ string _txt = munge_html(doc_matters, obj);
o = format(q"¶<h%s class="%s">
%s
</h%s>¶",
@@ -529,10 +532,11 @@ auto html_heading(O)(
#+name: html_objects
#+BEGIN_SRC d
-auto html_para(O)(
+auto html_para(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
- string _txt = munge_html(obj);
+ string _txt = munge_html(doc_matters, obj);
_txt = (obj.attrib.bullet) ? ("●&#160;&#160;" ~ _txt) : _txt;
string o = format(q"¶<p class="%s" indent="h%si%s">
%s
@@ -550,10 +554,11 @@ auto html_para(O)(
#+name: html_objects
#+BEGIN_SRC d
-auto html_quote(O)(
+auto html_quote(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
- string _txt = munge_html(obj);
+ string _txt = munge_html(doc_matters, obj);
string o = format(q"¶<p class="%s">
%s
</p>¶",
@@ -568,10 +573,11 @@ auto html_quote(O)(
#+name: html_objects
#+BEGIN_SRC d
-auto html_group(O)(
+auto html_group(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
- string _txt = munge_html(obj);
+ string _txt = munge_html(doc_matters, obj);
string o = format(q"¶<p class="%s">
%s
</p>¶",
@@ -586,10 +592,11 @@ auto html_group(O)(
#+name: html_objects
#+BEGIN_SRC d
-auto html_block(O)(
+auto html_block(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
- string _txt = munge_html(obj);
+ string _txt = munge_html(doc_matters, obj);
string o = format(q"¶
<p class="%s">%s</p>¶",
obj.metainfo.is_a,
@@ -603,10 +610,11 @@ auto html_block(O)(
#+name: html_objects
#+BEGIN_SRC d
-auto html_verse(O)(
+auto html_verse(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
- string _txt = munge_html(obj);
+ string _txt = munge_html(doc_matters, obj);
string o = format(q"¶<p class="%s">%s</p>¶",
obj.metainfo.is_a,
_txt
@@ -635,7 +643,8 @@ auto html_code(O)(
#+name: html_objects
#+BEGIN_SRC d
-auto html_table(O)(
+auto html_table(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
auto _tablarize(O)(
@@ -679,7 +688,7 @@ auto html_table(O)(
);
return t;
}
- string _txt = munge_html(obj);
+ string _txt = munge_html(doc_matters, obj);
auto t = _tablarize(obj, _txt);
_txt = t[0];
string _note = t[1];
@@ -702,9 +711,9 @@ auto html_table(O)(
#+name: sqlite_load_object
#+BEGIN_SRC d
-auto sqlite_load_string(O,Dm)(
+auto sqlite_load_string(M,O)(
+ auto ref M doc_matters,
auto ref const O obj,
- auto ref Dm doc_matters,
) {
string o;
return o;
@@ -713,9 +722,9 @@ auto sqlite_load_string(O,Dm)(
#+name: sqlite_load_object
#+BEGIN_SRC d
-auto postgresql_load_string(O,Dm)(
+auto postgresql_load_string(M,O)(
+ auto ref M doc_matters,
auto ref const O obj,
- auto ref Dm doc_matters,
) {
string o;
return o;
@@ -744,12 +753,13 @@ string sqlite_statement(O)(
#+name: hub_format_and_sqlite_load_objects
#+BEGIN_SRC d
-auto heading(O)(
+auto heading(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
string[string] obj_txt = [
"text": generic_munge_sanitize_text_for_search(obj.text),
- "html": html_heading(obj)
+ "html": html_heading(doc_matters, obj)
];
if (doc_matters.opt.action.debug_do) {
debug(sql_txt) {
@@ -769,12 +779,13 @@ auto heading(O)(
#+name: hub_format_and_sqlite_load_objects
#+BEGIN_SRC d
-auto para(O)(
+auto para(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
string[string] obj_txt = [
"text": generic_munge_sanitize_text_for_search(obj.text),
- "html": html_para(obj)
+ "html": html_para(doc_matters, obj)
];
if (doc_matters.opt.action.debug_do) {
debug(sql_txt) {
@@ -794,12 +805,13 @@ auto para(O)(
#+name: hub_format_and_sqlite_load_objects
#+BEGIN_SRC d
-auto quote(O)(
+auto quote(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
string[string] obj_txt = [
"text": generic_munge_sanitize_text_for_search(obj.text),
- "html": html_quote(obj)
+ "html": html_quote(doc_matters, obj)
];
if (doc_matters.opt.action.debug_do) {
debug(sql_txt) {
@@ -818,12 +830,13 @@ auto quote(O)(
#+name: hub_format_and_sqlite_load_objects
#+BEGIN_SRC d
-auto group(O)(
+auto group(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
string[string] obj_txt = [
"text": generic_munge_sanitize_text_for_search(obj.text),
- "html": html_group(obj)
+ "html": html_group(doc_matters, obj)
];
if (doc_matters.opt.action.debug_do) {
debug(sql_txt) {
@@ -843,12 +856,13 @@ auto group(O)(
#+name: hub_format_and_sqlite_load_objects
#+BEGIN_SRC d
-auto block(O)(
+auto block(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
string[string] obj_txt = [
"text": generic_munge_sanitize_text_for_search(obj.text),
- "html": html_block(obj)
+ "html": html_block(doc_matters, obj)
];
if (doc_matters.opt.action.debug_do) {
debug(sql_txt) {
@@ -868,12 +882,13 @@ auto block(O)(
#+name: hub_format_and_sqlite_load_objects
#+BEGIN_SRC d
-auto verse(O)(
+auto verse(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
string[string] obj_txt = [
"text": generic_munge_sanitize_text_for_search(obj.text),
- "html": html_verse(obj)
+ "html": html_verse(doc_matters, obj)
];
if (doc_matters.opt.action.debug_do) {
debug(sql_txt) {
@@ -893,7 +908,8 @@ auto verse(O)(
#+name: hub_format_and_sqlite_load_objects
#+BEGIN_SRC d
-auto code(O)(
+auto code(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
string[string] obj_txt = [
@@ -918,12 +934,13 @@ auto code(O)(
#+name: hub_format_and_sqlite_load_objects
#+BEGIN_SRC d
-auto table(O)(
+auto table(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
string[string] obj_txt = [
"text": generic_munge_sanitize_text_for_search(obj.text),
- "html": html_table(obj)
+ "html": html_table(doc_matters, obj)
];
if (doc_matters.opt.action.debug_do) {
debug(sql_txt) {
@@ -955,7 +972,7 @@ foreach (part; doc_matters.xml.keys_seq.sql) {
case "para":
switch (obj.metainfo.is_a) {
case "heading":
- obj_txt = format_and_sqlite_load.heading(obj);
+ obj_txt = format_and_sqlite_load.heading(doc_matters, obj);
break;
default:
if ((doc_matters.opt.action.debug_do)) {
@@ -981,10 +998,10 @@ foreach (part; doc_matters.xml.keys_seq.sql) {
writeln(__LINE__, ": ", obj.text);
}
}
- obj_txt = format_and_sqlite_load.heading(obj);
+ obj_txt = format_and_sqlite_load.heading(doc_matters, obj);
break;
case "para":
- obj_txt = format_and_sqlite_load.para(obj);
+ obj_txt = format_and_sqlite_load.para(doc_matters, obj);
break;
default:
if ((doc_matters.opt.action.debug_do)) {
@@ -996,24 +1013,24 @@ foreach (part; doc_matters.xml.keys_seq.sql) {
case "block":
switch (obj.metainfo.is_a) {
case "quote":
- obj_txt = format_and_sqlite_load.quote(obj);
+ obj_txt = format_and_sqlite_load.quote(doc_matters, obj);
break;
case "group":
- obj_txt = format_and_sqlite_load.group(obj);
+ obj_txt = format_and_sqlite_load.group(doc_matters, obj);
break;
case "block":
- obj_txt = format_and_sqlite_load.block(obj);
+ obj_txt = format_and_sqlite_load.block(doc_matters, obj);
break;
case "poem": // double check on keeping both poem & verse
break;
case "verse":
- obj_txt = format_and_sqlite_load.verse(obj);
+ obj_txt = format_and_sqlite_load.verse(doc_matters, obj);
break;
case "code":
- obj_txt = format_and_sqlite_load.code(obj);
+ obj_txt = format_and_sqlite_load.code(doc_matters, obj);
break;
case "table":
- obj_txt = format_and_sqlite_load.table(obj);
+ obj_txt = format_and_sqlite_load.table(doc_matters, obj);
break;
default:
if ((doc_matters.opt.action.debug_do)) {
@@ -1035,19 +1052,19 @@ foreach (part; doc_matters.xml.keys_seq.sql) {
case "para":
switch (obj.metainfo.is_a) {
case "heading":
- obj_txt = format_and_sqlite_load.heading(obj);
+ obj_txt = format_and_sqlite_load.heading(doc_matters, obj);
break;
case "glossary": assert(part == "glossary", part);
- obj_txt = format_and_sqlite_load.para(obj);
+ obj_txt = format_and_sqlite_load.para(doc_matters, obj);
break;
case "bibliography": assert(part == "bibliography", part);
- obj_txt = format_and_sqlite_load.para(obj);
+ obj_txt = format_and_sqlite_load.para(doc_matters, obj);
break;
case "bookindex": assert(part == "bookindex_seg", part);
- obj_txt = format_and_sqlite_load.para(obj);
+ obj_txt = format_and_sqlite_load.para(doc_matters, obj);
break;
case "blurb": assert(part == "blurb", part);
- obj_txt = format_and_sqlite_load.para(obj);
+ obj_txt = format_and_sqlite_load.para(doc_matters, obj);
break;
default:
if ((doc_matters.opt.action.debug_do)) {
diff --git a/org/output_xmls.org b/org/output_xmls.org
index 8ebee95..7a4338e 100644
--- a/org/output_xmls.org
+++ b/org/output_xmls.org
@@ -419,11 +419,12 @@ auto tail() {
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto inline_images(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "seg",
+auto inline_images(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "seg",
) {
string _img_pth;
if (_xml_type == "epub") {
@@ -445,14 +446,16 @@ auto inline_images(O)(
#+END_SRC
**** links
+***** scroll, seg, epub
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto inline_links(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "seg",
+auto inline_links(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "seg",
) {
if (obj.has.inline_links) {
if ((_txt.match(rgx.mark_internal_site_lnk))
@@ -496,12 +499,14 @@ auto inline_links(O)(
}
#+END_SRC
-**** notes scroll
+**** notes
+***** scroll
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto inline_notes_scroll(O)(
- const O obj,
+auto inline_notes_scroll(M,O)(
+ M doc_matters,
+ const O obj,
string _txt,
) {
if (obj.has.inline_notes_reg) {
@@ -525,13 +530,14 @@ auto inline_notes_scroll(O)(
}
#+END_SRC
-**** notes seg
+***** seg
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto inline_notes_seg(O)(
- const O obj,
- string _txt,
+auto inline_notes_seg(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
) {
string[] _endnotes;
if (obj.has.inline_notes_reg) {
@@ -570,35 +576,38 @@ auto inline_notes_seg(O)(
}
#+END_SRC
-**** inline markup scroll
+**** inline markup
+***** scroll
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto inline_markup_scroll(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
+auto inline_markup_scroll(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
) {
- _txt = inline_images(obj, _txt, _suffix, "scroll");
- _txt = inline_links(obj, _txt, _suffix, "scroll");
- _txt = inline_notes_scroll(obj, _txt);
+ _txt = inline_images(doc_matters, obj, _txt, _suffix, "scroll");
+ _txt = inline_links(doc_matters, obj, _txt, _suffix, "scroll");
+ _txt = inline_notes_scroll(doc_matters, obj, _txt);
return _txt;
}
#+END_SRC
-**** inline markup seg
+***** seg
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto inline_markup_seg(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "seg",
+auto inline_markup_seg(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "seg",
) {
- _txt = inline_images(obj, _txt, _suffix, _xml_type);
- _txt = inline_links(obj, _txt, _suffix, _xml_type);
- auto t = inline_notes_seg(obj, _txt);
+ _txt = inline_images(doc_matters, obj, _txt, _suffix, _xml_type); // TODO
+ _txt = inline_links(doc_matters, obj, _txt, _suffix, _xml_type); // TODO
+ auto t = inline_notes_seg(doc_matters, obj, _txt);
return t;
}
#+END_SRC
@@ -608,8 +617,9 @@ auto inline_markup_seg(O)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-string lev4_heading_subtoc(O)(
- const O obj,
+string lev4_heading_subtoc(M,O)(
+ M doc_matters,
+ const O obj,
) {
char[] lev4_subtoc;
lev4_subtoc ~= " <div class=\"nav\">\n";
@@ -640,8 +650,9 @@ string lev4_heading_subtoc(O)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto nav_pre_next_svg(O)(
- const O obj,
+auto nav_pre_next_svg(M,O)(
+ M doc_matters,
+ const O obj,
) {
string prev, next, toc;
if (obj.tags.segment_anchor_tag == "toc") {
@@ -724,10 +735,11 @@ auto nav_pre_next_svg(O)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto heading(O)(
- const O obj,
- string _txt,
- string _xml_type = "html",
+auto heading(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _xml_type = "html",
) {
auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
string _horizontal_rule = "<hr />";
@@ -779,14 +791,15 @@ auto heading(O)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto heading_scroll(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
+auto heading_scroll(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
) {
auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
- _txt = inline_markup_scroll(obj, _txt, _suffix);
- string o = heading(obj, _txt);
+ _txt = inline_markup_scroll(doc_matters, obj, _txt, _suffix);
+ string o = heading(doc_matters, obj, _txt);
return o;
}
#+END_SRC
@@ -795,16 +808,17 @@ auto heading_scroll(O)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto heading_seg(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "html",
+auto heading_seg(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "html"
) {
- auto t = inline_markup_seg(obj, _txt, _suffix, _xml_type);
+ auto t = inline_markup_seg(doc_matters, obj, _txt, _suffix, _xml_type);
_txt = t[0];
string[] _endnotes = t[1];
- string o = heading(obj, _txt, _xml_type);
+ string o = heading(doc_matters, obj, _txt, _xml_type);
auto u = tuple(
o,
_endnotes,
@@ -818,9 +832,10 @@ auto heading_seg(O)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto para(O)(
- const O obj,
- string _txt,
+auto para(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
) {
auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
_txt = font_face(_txt);
@@ -863,14 +878,15 @@ auto para(O)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto para_scroll(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
+auto para_scroll(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
) {
auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
- _txt = inline_markup_scroll(obj, _txt, _suffix);
- string o = para(obj, _txt);
+ _txt = inline_markup_scroll(doc_matters, obj, _txt, _suffix);
+ string o = para(doc_matters, obj, _txt);
return o;
}
#+END_SRC
@@ -879,16 +895,17 @@ auto para_scroll(O)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto para_seg(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "html",
+auto para_seg(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "html",
) {
- auto t = inline_markup_seg(obj, _txt, _suffix, _xml_type);
+ auto t = inline_markup_seg(doc_matters, obj, _txt, _suffix, _xml_type);
_txt = t[0].to!string;
string[] _endnotes = t[1];
- string o = para(obj, _txt);
+ string o = para(doc_matters, obj, _txt);
auto u = tuple(
o,
_endnotes,
@@ -902,9 +919,10 @@ auto para_seg(O)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto quote(O)(
- const O obj,
- string _txt,
+auto quote(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
) {
_txt = font_face(_txt);
string o;
@@ -939,14 +957,15 @@ auto quote(O)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto quote_scroll(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
+auto quote_scroll(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
) {
auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
- _txt = inline_markup_scroll(obj, _txt, _suffix);
- string o = quote(obj, _txt);
+ _txt = inline_markup_scroll(doc_matters, obj, _txt, _suffix);
+ string o = quote(doc_matters, obj, _txt);
return o;
}
#+END_SRC
@@ -955,16 +974,17 @@ auto quote_scroll(O)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto quote_seg(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "html",
+auto quote_seg(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "html",
) {
- auto t = inline_markup_seg(obj, _txt, _suffix, _xml_type);
+ auto t = inline_markup_seg(doc_matters, obj, _txt, _suffix, _xml_type);
_txt = t[0].to!string;
string[] _endnotes = t[1];
- string o = quote(obj, _txt);
+ string o = quote(doc_matters, obj, _txt);
auto u = tuple(
o,
_endnotes,
@@ -978,9 +998,10 @@ auto quote_seg(O)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto group(O)(
- const O obj,
- string _txt,
+auto group(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
) {
_txt = font_face(_txt);
string o;
@@ -1015,15 +1036,16 @@ auto group(O)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto group_scroll(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "html",
+auto group_scroll(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "html",
) {
auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
- _txt = inline_markup_scroll(obj, _txt, _suffix);
- string o = group(obj, _txt);
+ _txt = inline_markup_scroll(doc_matters, obj, _txt, _suffix);
+ string o = group(doc_matters, obj, _txt);
return o;
}
#+END_SRC
@@ -1032,16 +1054,17 @@ auto group_scroll(O)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto group_seg(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "html",
+auto group_seg(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "html",
) {
- auto t = inline_markup_seg(obj, _txt, _suffix, _xml_type);
+ auto t = inline_markup_seg(doc_matters, obj, _txt, _suffix, _xml_type);
_txt = t[0].to!string;
string[] _endnotes = t[1];
- string o = group(obj, _txt);
+ string o = group(doc_matters, obj, _txt);
auto u = tuple(
o,
_endnotes,
@@ -1055,9 +1078,10 @@ auto group_seg(O)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto block(O)(
- const O obj,
- string _txt,
+auto block(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
) {
_txt = font_face(_txt);
string o;
@@ -1088,15 +1112,16 @@ auto block(O)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto block_scroll(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "html",
+auto block_scroll(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "html",
) {
auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
- _txt = inline_markup_scroll(obj, _txt, _suffix);
- string o = block(obj, _txt);
+ _txt = inline_markup_scroll(doc_matters, obj, _txt, _suffix);
+ string o = block(doc_matters, obj, _txt);
return o;
}
#+END_SRC
@@ -1105,16 +1130,17 @@ auto block_scroll(O)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto block_seg(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "html",
+auto block_seg(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "html",
) {
- auto t = inline_markup_seg(obj, _txt, _suffix, _xml_type);
+ auto t = inline_markup_seg(doc_matters, obj, _txt, _suffix, _xml_type);
_txt = t[0].to!string;
string[] _endnotes = t[1];
- string o = block(obj, _txt);
+ string o = block(doc_matters, obj, _txt);
auto u = tuple(
o,
_endnotes,
@@ -1128,9 +1154,10 @@ auto block_seg(O)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto verse(O)(
- const O obj,
- string _txt,
+auto verse(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
) {
_txt = font_face(_txt);
string o;
@@ -1161,15 +1188,16 @@ auto verse(O)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto verse_scroll(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "html",
+auto verse_scroll(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "html",
) {
auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
- _txt = inline_markup_scroll(obj, _txt, _suffix);
- string o = verse(obj, _txt);
+ _txt = inline_markup_scroll(doc_matters, obj, _txt, _suffix);
+ string o = verse(doc_matters, obj, _txt);
return o;
}
#+END_SRC
@@ -1178,16 +1206,17 @@ auto verse_scroll(O)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto verse_seg(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "html",
+auto verse_seg(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "html",
) {
- auto t = inline_markup_seg(obj, _txt, _suffix, _xml_type);
+ auto t = inline_markup_seg(doc_matters, obj, _txt, _suffix, _xml_type);
_txt = t[0].to!string;
string[] _endnotes = t[1];
- string o = verse(obj, _txt);
+ string o = verse(doc_matters, obj, _txt);
auto u = tuple(
o,
_endnotes,
@@ -1200,9 +1229,10 @@ auto verse_seg(O)(
#+name: xhtml_format_objects_code
#+BEGIN_SRC d
-auto code(O)(
- const O obj,
- string _txt,
+auto code(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
) {
string o;
if (obj.metainfo.object_number.empty) {
@@ -1241,9 +1271,10 @@ align="left|right|center"
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto tablarize(O)(
- const O obj,
- string _txt,
+auto tablarize(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
) {
string[] _table_rows = (_txt).split(rgx.table_delimiter_row);
string[] _table_cols;
@@ -1280,13 +1311,14 @@ auto tablarize(O)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto table(O)(
- const O obj,
- string _txt,
+auto table(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
) {
auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
_txt = font_face(_txt);
- auto t = tablarize(obj, _txt);
+ auto t = tablarize(doc_matters, obj, _txt);
_txt = t[0];
string _note = t[1];
string o;
@@ -1315,9 +1347,10 @@ auto table(O)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto endnote(O)(
- const O obj,
- string _txt,
+auto endnote(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
) {
string o;
o = format(q"¶ <p class="%s" indent="h%si%s">
@@ -1352,9 +1385,9 @@ template outputHTML() {
#+name: output_html_scroll
#+BEGIN_SRC d
-void scroll(D,I)(
- const D doc_abstraction,
- I doc_matters,
+void scroll(D,M)(
+ const D doc_abstraction,
+ M doc_matters,
) {
mixin DocReformOutputRgxInit;
auto xhtml_format = outputXHTMLs();
@@ -1374,10 +1407,10 @@ void scroll(D,I)(
case "para":
switch (obj.metainfo.is_a) {
case "heading":
- doc_html ~= delimit ~ xhtml_format.heading_scroll(obj, _txt, suffix);
+ doc_html ~= delimit ~ xhtml_format.heading_scroll(doc_matters, obj, _txt, suffix);
break;
case "toc":
- doc_html ~= xhtml_format.para_scroll(obj, _txt, suffix);
+ doc_html ~= xhtml_format.para_scroll(doc_matters, obj, _txt, suffix);
break;
default:
if ((doc_matters.opt.action.debug_do)) {
@@ -1398,10 +1431,10 @@ void scroll(D,I)(
case "para":
switch (obj.metainfo.is_a) {
case "heading":
- doc_html ~= delimit ~ xhtml_format.heading_scroll(obj, _txt, suffix);
+ doc_html ~= delimit ~ xhtml_format.heading_scroll(doc_matters, obj, _txt, suffix);
break;
case "para":
- doc_html ~= xhtml_format.para_scroll(obj, _txt, suffix);
+ doc_html ~= xhtml_format.para_scroll(doc_matters, obj, _txt, suffix);
break;
default:
if ((doc_matters.opt.action.debug_do)) {
@@ -1413,24 +1446,24 @@ void scroll(D,I)(
case "block":
switch (obj.metainfo.is_a) {
case "quote":
- doc_html ~= xhtml_format.quote_scroll(obj, _txt);
+ doc_html ~= xhtml_format.quote_scroll(doc_matters, obj, _txt);
break;
case "group":
- doc_html ~= xhtml_format.group_scroll(obj, _txt);
+ doc_html ~= xhtml_format.group_scroll(doc_matters, obj, _txt);
break;
case "block":
- doc_html ~= xhtml_format.block_scroll(obj, _txt);
+ doc_html ~= xhtml_format.block_scroll(doc_matters, obj, _txt);
break;
case "poem":
break;
case "verse":
- doc_html ~= xhtml_format.verse_scroll(obj, _txt, suffix);
+ doc_html ~= xhtml_format.verse_scroll(doc_matters, obj, _txt, suffix);
break;
case "code":
- doc_html ~= xhtml_format.code(obj, _txt);
+ doc_html ~= xhtml_format.code(doc_matters, obj, _txt);
break;
case "table":
- doc_html ~= xhtml_format.table(obj, _txt);
+ doc_html ~= xhtml_format.table(doc_matters, obj, _txt);
break;
default:
if ((doc_matters.opt.action.debug_do)) {
@@ -1452,22 +1485,22 @@ void scroll(D,I)(
case "para":
switch (obj.metainfo.is_a) {
case "heading":
- doc_html ~= delimit ~ xhtml_format.heading_scroll(obj, _txt, suffix);
+ doc_html ~= delimit ~ xhtml_format.heading_scroll(doc_matters, obj, _txt, suffix);
break;
case "endnote": assert(part == "endnotes");
- doc_html ~= xhtml_format.para_scroll(obj, _txt, suffix);
+ doc_html ~= xhtml_format.para_scroll(doc_matters, obj, _txt, suffix);
break;
case "glossary": assert(part == "glossary");
- doc_html ~= xhtml_format.para_scroll(obj, _txt, suffix);
+ doc_html ~= xhtml_format.para_scroll(doc_matters, obj, _txt, suffix);
break;
case "bibliography": assert(part == "bibliography");
- doc_html ~= xhtml_format.para_scroll(obj, _txt, suffix);
+ doc_html ~= xhtml_format.para_scroll(doc_matters, obj, _txt, suffix);
break;
case "bookindex": assert(part == "bookindex_scroll");
- doc_html ~= xhtml_format.para_scroll(obj, _txt, suffix);
+ doc_html ~= xhtml_format.para_scroll(doc_matters, obj, _txt, suffix);
break;
case "blurb": assert(part == "blurb");
- doc_html ~= xhtml_format.para_scroll(obj, _txt, suffix);
+ doc_html ~= xhtml_format.para_scroll(doc_matters, obj, _txt, suffix);
break;
default:
if ((doc_matters.opt.action.debug_do)) {
@@ -1579,7 +1612,7 @@ void seg(D,M)(
top_level_headings[3] = "";
goto default;
default:
- auto t = xhtml_format.heading_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.heading_seg(doc_matters, obj, _txt, suffix, "seg");
top_level_headings[obj.metainfo.heading_lev_markup] = t[0];
break;
}
@@ -1587,19 +1620,19 @@ void seg(D,M)(
case 4:
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);
+ auto navigation_bar = xhtml_format.nav_pre_next_svg(doc_matters, obj);
doc_html[segment_filename] ~= navigation_bar.toc_pre_next;
previous_seg_filename = segment_filename;
foreach (top_level_heading; top_level_headings) {
doc_html[segment_filename] ~= top_level_heading;
}
- auto t = xhtml_format.heading_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.heading_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0].to!string;
- doc_html[segment_filename] ~= xhtml_format.lev4_heading_subtoc(obj);
+ doc_html[segment_filename] ~= xhtml_format.lev4_heading_subtoc(doc_matters, obj);
doc_html_endnotes[segment_filename] ~= t[1];
break;
case 5: .. case 7:
- auto t = xhtml_format.heading_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.heading_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0].to!string;
doc_html_endnotes[segment_filename] ~= t[1];
break;
@@ -1623,7 +1656,7 @@ void seg(D,M)(
case "para":
switch (obj.metainfo.is_a) {
case "toc":
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0].to!string;
break;
default:
@@ -1645,7 +1678,7 @@ void seg(D,M)(
case "para":
switch (obj.metainfo.is_a) {
case "para":
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0].to!string;
doc_html_endnotes[segment_filename] ~= t[1];
break;
@@ -1659,32 +1692,32 @@ void seg(D,M)(
case "block":
switch (obj.metainfo.is_a) {
case "quote":
- auto t = xhtml_format.quote_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.quote_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0].to!string;
doc_html_endnotes[segment_filename] ~= t[1];
break;
case "group":
- auto t = xhtml_format.group_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.group_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0].to!string;
doc_html_endnotes[segment_filename] ~= t[1];
break;
case "block":
- auto t = xhtml_format.block_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.block_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0].to!string;
doc_html_endnotes[segment_filename] ~= t[1];
break;
case "poem":
break;
case "verse":
- auto t = xhtml_format.verse_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.verse_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0].to!string;
doc_html_endnotes[segment_filename] ~= t[1];
break;
case "code":
- doc_html[segment_filename] ~= xhtml_format.code(obj, _txt);
+ doc_html[segment_filename] ~= xhtml_format.code(doc_matters, obj, _txt);
break;
case "table":
- doc_html[segment_filename] ~= xhtml_format.table(obj, _txt);
+ doc_html[segment_filename] ~= xhtml_format.table(doc_matters, obj, _txt);
doc_html_endnotes[segment_filename] ~= "";
break;
default:
@@ -1707,26 +1740,26 @@ void seg(D,M)(
case "para":
switch (obj.metainfo.is_a) {
case "endnote": assert(part == "endnotes");
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0];
break;
case "glossary": assert(part == "glossary");
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0];
doc_html_endnotes[segment_filename] ~= t[1];
break;
case "bibliography": assert(part == "bibliography");
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0];
doc_html_endnotes[segment_filename] ~= t[1];
break;
case "bookindex": assert(part == "bookindex_seg");
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0];
doc_html_endnotes[segment_filename] ~= t[1];
break;
case "blurb": assert(part == "blurb");
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0];
doc_html_endnotes[segment_filename] ~= t[1];
break;
@@ -2259,7 +2292,7 @@ void outputEPub3(D,I)(
default:
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");
+ auto t = xhtml_format.heading_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[obj.tags.segment_anchor_tag] ~= t[0];
doc_epub3_endnotes[obj.tags.segment_anchor_tag] ~= t[1];
break;
@@ -2268,12 +2301,12 @@ void outputEPub3(D,I)(
case 4:
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");
+ auto t = xhtml_format.heading_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0];
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
case 5: .. case 7:
- auto t = xhtml_format.heading_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.heading_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0];
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
@@ -2297,7 +2330,7 @@ void outputEPub3(D,I)(
case "para":
switch (obj.metainfo.is_a) {
case "toc":
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0];
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
@@ -2320,7 +2353,7 @@ void outputEPub3(D,I)(
case "para":
switch (obj.metainfo.is_a) {
case "para":
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0];
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
@@ -2334,32 +2367,32 @@ void outputEPub3(D,I)(
case "block":
switch (obj.metainfo.is_a) {
case "quote":
- auto t = xhtml_format.quote_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.quote_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0].to!string;
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
case "group":
- auto t = xhtml_format.group_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.group_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0].to!string;
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
case "block":
- auto t = xhtml_format.block_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.block_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0].to!string;
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
case "poem":
break;
case "verse":
- auto t = xhtml_format.verse_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.verse_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0].to!string;
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
case "code":
- doc_epub3[segment_filename] ~= xhtml_format.code(obj, _txt);
+ doc_epub3[segment_filename] ~= xhtml_format.code(doc_matters, obj, _txt);
break;
case "table":
- doc_epub3[segment_filename] ~= xhtml_format.table(obj, _txt);
+ doc_epub3[segment_filename] ~= xhtml_format.table(doc_matters, obj, _txt);
doc_epub3_endnotes[segment_filename] ~= "";
break;
default:
@@ -2382,26 +2415,26 @@ void outputEPub3(D,I)(
case "para":
switch (obj.metainfo.is_a) {
case "endnote": assert(part == "endnotes");
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0];
break;
case "glossary": assert(part == "glossary");
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0];
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
case "bibliography": assert(part == "bibliography");
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0];
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
case "bookindex": assert(part == "bookindex_seg");
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0];
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
case "blurb": assert(part == "blurb");
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0];
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
diff --git a/src/doc_reform/output/epub3.d b/src/doc_reform/output/epub3.d
index 7c4e346..19c7934 100644
--- a/src/doc_reform/output/epub3.d
+++ b/src/doc_reform/output/epub3.d
@@ -337,7 +337,7 @@ template outputEPub3() {
default:
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");
+ auto t = xhtml_format.heading_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[obj.tags.segment_anchor_tag] ~= t[0];
doc_epub3_endnotes[obj.tags.segment_anchor_tag] ~= t[1];
break;
@@ -346,12 +346,12 @@ template outputEPub3() {
case 4:
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");
+ auto t = xhtml_format.heading_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0];
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
case 5: .. case 7:
- auto t = xhtml_format.heading_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.heading_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0];
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
@@ -375,7 +375,7 @@ template outputEPub3() {
case "para":
switch (obj.metainfo.is_a) {
case "toc":
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0];
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
@@ -398,7 +398,7 @@ template outputEPub3() {
case "para":
switch (obj.metainfo.is_a) {
case "para":
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0];
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
@@ -412,32 +412,32 @@ template outputEPub3() {
case "block":
switch (obj.metainfo.is_a) {
case "quote":
- auto t = xhtml_format.quote_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.quote_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0].to!string;
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
case "group":
- auto t = xhtml_format.group_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.group_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0].to!string;
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
case "block":
- auto t = xhtml_format.block_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.block_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0].to!string;
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
case "poem":
break;
case "verse":
- auto t = xhtml_format.verse_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.verse_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0].to!string;
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
case "code":
- doc_epub3[segment_filename] ~= xhtml_format.code(obj, _txt);
+ doc_epub3[segment_filename] ~= xhtml_format.code(doc_matters, obj, _txt);
break;
case "table":
- doc_epub3[segment_filename] ~= xhtml_format.table(obj, _txt);
+ doc_epub3[segment_filename] ~= xhtml_format.table(doc_matters, obj, _txt);
doc_epub3_endnotes[segment_filename] ~= "";
break;
default:
@@ -460,26 +460,26 @@ template outputEPub3() {
case "para":
switch (obj.metainfo.is_a) {
case "endnote": assert(part == "endnotes");
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0];
break;
case "glossary": assert(part == "glossary");
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0];
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
case "bibliography": assert(part == "bibliography");
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0];
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
case "bookindex": assert(part == "bookindex_seg");
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0];
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
case "blurb": assert(part == "blurb");
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "epub");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "epub");
doc_epub3[segment_filename] ~= t[0];
doc_epub3_endnotes[segment_filename] ~= t[1];
break;
diff --git a/src/doc_reform/output/html.d b/src/doc_reform/output/html.d
index 5d5ccb5..bad29db 100644
--- a/src/doc_reform/output/html.d
+++ b/src/doc_reform/output/html.d
@@ -12,9 +12,9 @@ template outputHTML() {
doc_reform.output.xmls,
doc_reform.output.xmls_css;
mixin outputXHTMLs;
- void scroll(D,I)(
- const D doc_abstraction,
- I doc_matters,
+ void scroll(D,M)(
+ const D doc_abstraction,
+ M doc_matters,
) {
mixin DocReformOutputRgxInit;
auto xhtml_format = outputXHTMLs();
@@ -34,10 +34,10 @@ template outputHTML() {
case "para":
switch (obj.metainfo.is_a) {
case "heading":
- doc_html ~= delimit ~ xhtml_format.heading_scroll(obj, _txt, suffix);
+ doc_html ~= delimit ~ xhtml_format.heading_scroll(doc_matters, obj, _txt, suffix);
break;
case "toc":
- doc_html ~= xhtml_format.para_scroll(obj, _txt, suffix);
+ doc_html ~= xhtml_format.para_scroll(doc_matters, obj, _txt, suffix);
break;
default:
if ((doc_matters.opt.action.debug_do)) {
@@ -58,10 +58,10 @@ template outputHTML() {
case "para":
switch (obj.metainfo.is_a) {
case "heading":
- doc_html ~= delimit ~ xhtml_format.heading_scroll(obj, _txt, suffix);
+ doc_html ~= delimit ~ xhtml_format.heading_scroll(doc_matters, obj, _txt, suffix);
break;
case "para":
- doc_html ~= xhtml_format.para_scroll(obj, _txt, suffix);
+ doc_html ~= xhtml_format.para_scroll(doc_matters, obj, _txt, suffix);
break;
default:
if ((doc_matters.opt.action.debug_do)) {
@@ -73,24 +73,24 @@ template outputHTML() {
case "block":
switch (obj.metainfo.is_a) {
case "quote":
- doc_html ~= xhtml_format.quote_scroll(obj, _txt);
+ doc_html ~= xhtml_format.quote_scroll(doc_matters, obj, _txt);
break;
case "group":
- doc_html ~= xhtml_format.group_scroll(obj, _txt);
+ doc_html ~= xhtml_format.group_scroll(doc_matters, obj, _txt);
break;
case "block":
- doc_html ~= xhtml_format.block_scroll(obj, _txt);
+ doc_html ~= xhtml_format.block_scroll(doc_matters, obj, _txt);
break;
case "poem":
break;
case "verse":
- doc_html ~= xhtml_format.verse_scroll(obj, _txt, suffix);
+ doc_html ~= xhtml_format.verse_scroll(doc_matters, obj, _txt, suffix);
break;
case "code":
- doc_html ~= xhtml_format.code(obj, _txt);
+ doc_html ~= xhtml_format.code(doc_matters, obj, _txt);
break;
case "table":
- doc_html ~= xhtml_format.table(obj, _txt);
+ doc_html ~= xhtml_format.table(doc_matters, obj, _txt);
break;
default:
if ((doc_matters.opt.action.debug_do)) {
@@ -112,22 +112,22 @@ template outputHTML() {
case "para":
switch (obj.metainfo.is_a) {
case "heading":
- doc_html ~= delimit ~ xhtml_format.heading_scroll(obj, _txt, suffix);
+ doc_html ~= delimit ~ xhtml_format.heading_scroll(doc_matters, obj, _txt, suffix);
break;
case "endnote": assert(part == "endnotes");
- doc_html ~= xhtml_format.para_scroll(obj, _txt, suffix);
+ doc_html ~= xhtml_format.para_scroll(doc_matters, obj, _txt, suffix);
break;
case "glossary": assert(part == "glossary");
- doc_html ~= xhtml_format.para_scroll(obj, _txt, suffix);
+ doc_html ~= xhtml_format.para_scroll(doc_matters, obj, _txt, suffix);
break;
case "bibliography": assert(part == "bibliography");
- doc_html ~= xhtml_format.para_scroll(obj, _txt, suffix);
+ doc_html ~= xhtml_format.para_scroll(doc_matters, obj, _txt, suffix);
break;
case "bookindex": assert(part == "bookindex_scroll");
- doc_html ~= xhtml_format.para_scroll(obj, _txt, suffix);
+ doc_html ~= xhtml_format.para_scroll(doc_matters, obj, _txt, suffix);
break;
case "blurb": assert(part == "blurb");
- doc_html ~= xhtml_format.para_scroll(obj, _txt, suffix);
+ doc_html ~= xhtml_format.para_scroll(doc_matters, obj, _txt, suffix);
break;
default:
if ((doc_matters.opt.action.debug_do)) {
@@ -226,7 +226,7 @@ template outputHTML() {
top_level_headings[3] = "";
goto default;
default:
- auto t = xhtml_format.heading_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.heading_seg(doc_matters, obj, _txt, suffix, "seg");
top_level_headings[obj.metainfo.heading_lev_markup] = t[0];
break;
}
@@ -234,19 +234,19 @@ template outputHTML() {
case 4:
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);
+ auto navigation_bar = xhtml_format.nav_pre_next_svg(doc_matters, obj);
doc_html[segment_filename] ~= navigation_bar.toc_pre_next;
previous_seg_filename = segment_filename;
foreach (top_level_heading; top_level_headings) {
doc_html[segment_filename] ~= top_level_heading;
}
- auto t = xhtml_format.heading_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.heading_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0].to!string;
- doc_html[segment_filename] ~= xhtml_format.lev4_heading_subtoc(obj);
+ doc_html[segment_filename] ~= xhtml_format.lev4_heading_subtoc(doc_matters, obj);
doc_html_endnotes[segment_filename] ~= t[1];
break;
case 5: .. case 7:
- auto t = xhtml_format.heading_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.heading_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0].to!string;
doc_html_endnotes[segment_filename] ~= t[1];
break;
@@ -270,7 +270,7 @@ template outputHTML() {
case "para":
switch (obj.metainfo.is_a) {
case "toc":
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0].to!string;
break;
default:
@@ -292,7 +292,7 @@ template outputHTML() {
case "para":
switch (obj.metainfo.is_a) {
case "para":
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0].to!string;
doc_html_endnotes[segment_filename] ~= t[1];
break;
@@ -306,32 +306,32 @@ template outputHTML() {
case "block":
switch (obj.metainfo.is_a) {
case "quote":
- auto t = xhtml_format.quote_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.quote_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0].to!string;
doc_html_endnotes[segment_filename] ~= t[1];
break;
case "group":
- auto t = xhtml_format.group_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.group_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0].to!string;
doc_html_endnotes[segment_filename] ~= t[1];
break;
case "block":
- auto t = xhtml_format.block_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.block_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0].to!string;
doc_html_endnotes[segment_filename] ~= t[1];
break;
case "poem":
break;
case "verse":
- auto t = xhtml_format.verse_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.verse_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0].to!string;
doc_html_endnotes[segment_filename] ~= t[1];
break;
case "code":
- doc_html[segment_filename] ~= xhtml_format.code(obj, _txt);
+ doc_html[segment_filename] ~= xhtml_format.code(doc_matters, obj, _txt);
break;
case "table":
- doc_html[segment_filename] ~= xhtml_format.table(obj, _txt);
+ doc_html[segment_filename] ~= xhtml_format.table(doc_matters, obj, _txt);
doc_html_endnotes[segment_filename] ~= "";
break;
default:
@@ -354,26 +354,26 @@ template outputHTML() {
case "para":
switch (obj.metainfo.is_a) {
case "endnote": assert(part == "endnotes");
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0];
break;
case "glossary": assert(part == "glossary");
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0];
doc_html_endnotes[segment_filename] ~= t[1];
break;
case "bibliography": assert(part == "bibliography");
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0];
doc_html_endnotes[segment_filename] ~= t[1];
break;
case "bookindex": assert(part == "bookindex_seg");
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0];
doc_html_endnotes[segment_filename] ~= t[1];
break;
case "blurb": assert(part == "blurb");
- auto t = xhtml_format.para_seg(obj, _txt, suffix, "seg");
+ auto t = xhtml_format.para_seg(doc_matters, obj, _txt, suffix, "seg");
doc_html[segment_filename] ~= t[0];
doc_html_endnotes[segment_filename] ~= t[1];
break;
diff --git a/src/doc_reform/output/hub.d b/src/doc_reform/output/hub.d
index a0a73cd..409f2bc 100644
--- a/src/doc_reform/output/hub.d
+++ b/src/doc_reform/output/hub.d
@@ -28,7 +28,7 @@ template outputHub() {
}
if (sched == outTask.sqlite) {
msg.v("sqlite processing... ");
- SQLiteHubDiscreteBuildTablesAndPopulate!()(doc_abstraction, doc_matters);
+ SQLiteHubDiscreteBuildTablesAndPopulate!()(doc_matters, doc_abstraction);
msg.vv("sqlite done");
}
if (sched == outTask.epub) {
@@ -63,11 +63,11 @@ template outputHub() {
}
if (doc_matters.opt.action.sqlite_update) {
msg.v("sqlite update processing...");
- SQLiteHubBuildTablesAndPopulate!()(doc_abstraction, doc_matters);
+ SQLiteHubBuildTablesAndPopulate!()(doc_matters, doc_abstraction);
msg.vv("sqlite update done");
} else if (doc_matters.opt.action.sqlite_delete) {
msg.v("sqlite delete processing...");
- SQLiteHubBuildTablesAndPopulate!()(doc_abstraction, doc_matters);
+ SQLiteHubBuildTablesAndPopulate!()(doc_matters, doc_abstraction);
msg.vv("sqlite delete done");
}
}
diff --git a/src/doc_reform/output/sqlite.d b/src/doc_reform/output/sqlite.d
index 6fbb4a7..b317dc0 100644
--- a/src/doc_reform/output/sqlite.d
+++ b/src/doc_reform/output/sqlite.d
@@ -9,18 +9,18 @@ mixin DocReformOutputRgxInit;
static auto rgx = Rgx();
long _metadata_tid_lastrowid;
template SQLiteHubBuildTablesAndPopulate() {
- void SQLiteHubBuildTablesAndPopulate(D,I)(
+ void SQLiteHubBuildTablesAndPopulate(M,D)(
+ M doc_matters,
D doc_abstraction,
- I doc_matters,
) {
auto pth_sqlite = DocReformPathsSQLite!()(doc_matters.sqlite.filename, doc_matters.output_path);
pth_sqlite.base.mkdirRecurse;
auto db = Database(pth_sqlite.sqlite_file);
template SQLiteDbStatementComposite() {
- void SQLiteDbStatementComposite(Db,D,I)(
+ void SQLiteDbStatementComposite(Db,M,D)(
Db db,
+ M doc_matters,
D doc_abstraction,
- I doc_matters,
) {
{
string _db_statement;
@@ -41,7 +41,7 @@ template SQLiteHubBuildTablesAndPopulate() {
_db_statement ~= SQLiteInsertMetadata!()(doc_matters);
SQLiteDbRun!()(db, _db_statement, doc_matters.opt.action, "INSERT MetaData");
/+ get tid (lastrowid or max) for use in doc_objects table +/
- _db_statement ~= SQLiteInsertDocObjectsLoop!()(doc_abstraction, doc_matters);
+ _db_statement ~= SQLiteInsertDocObjectsLoop!()(doc_matters, doc_abstraction);
SQLiteDbRun!()(db, _db_statement, doc_matters.opt.action, "INSERT DocObjects");
}
}
@@ -52,29 +52,29 @@ template SQLiteHubBuildTablesAndPopulate() {
}
}
}
- SQLiteDbStatementComposite!()(db, doc_abstraction, doc_matters);
+ SQLiteDbStatementComposite!()(db, doc_matters, doc_abstraction);
}
}
template SQLiteHubDiscreteBuildTablesAndPopulate() {
- void SQLiteHubDiscreteBuildTablesAndPopulate(D,I)(
+ void SQLiteHubDiscreteBuildTablesAndPopulate(M,D)(
+ M doc_matters,
D doc_abstraction,
- I doc_matters,
) {
auto pth_sqlite = DocReformPathsSQLiteDiscrete!()(doc_matters.output_path, doc_matters.src.language);
pth_sqlite.base.mkdirRecurse;
auto db = Database(pth_sqlite.sqlite_file(doc_matters.src.filename));
template SQLiteDiscreteDbStatementComposite() {
- void SQLiteDiscreteDbStatementComposite(Db,D,I)(
+ void SQLiteDiscreteDbStatementComposite(Db,M,D)(
Db db,
+ M doc_matters,
D doc_abstraction,
- I doc_matters,
) {
{
string _db_statement;
{
_db_statement ~= SQLiteTablesReCreate!()();
_db_statement ~= SQLiteInsertMetadata!()(doc_matters);
- _db_statement ~= SQLiteInsertDocObjectsLoop!()(doc_abstraction, doc_matters);
+ _db_statement ~= SQLiteInsertDocObjectsLoop!()(doc_matters, doc_abstraction);
SQLiteDbRun!()(db, _db_statement, doc_matters.opt.action, "table CREATE Tables, INSERT DocObjects");
}
db.close;
@@ -84,7 +84,7 @@ template SQLiteHubDiscreteBuildTablesAndPopulate() {
}
}
}
- SQLiteDiscreteDbStatementComposite!()(db, doc_abstraction, doc_matters);
+ SQLiteDiscreteDbStatementComposite!()(db, doc_matters, doc_abstraction);
}
}
template SQLiteDbRun() {
@@ -128,8 +128,8 @@ template SQLinsertDelimiter() {
}
}
template SQLiteFormatAndLoadObject() {
- auto SQLiteFormatAndLoadObject(I)(
- I doc_matters,
+ auto SQLiteFormatAndLoadObject(M)(
+ M doc_matters,
) {
mixin DocReformOutputRgxInit;
struct sqlite_format_and_load_objects {
@@ -166,7 +166,8 @@ template SQLiteFormatAndLoadObject() {
}
return _txt;
}
- auto munge_html(O)(
+ auto munge_html(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
string _html_special_characters(string _txt){
@@ -248,10 +249,11 @@ template SQLiteFormatAndLoadObject() {
.replaceAll(rgx.inline_cite, "<cite>$1</cite>");
return _txt;
}
- auto html_heading(O)(
+ auto html_heading(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
- string _txt = munge_html(obj);
+ string _txt = munge_html(doc_matters, obj);
string o = format(q"¶<p class="%s"><b>
%s
</b></p>¶",
@@ -260,10 +262,11 @@ template SQLiteFormatAndLoadObject() {
);
return o;
}
- auto html_para(O)(
+ auto html_para(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
- string _txt = munge_html(obj);
+ string _txt = munge_html(doc_matters, obj);
_txt = (obj.attrib.bullet) ? ("●&#160;&#160;" ~ _txt) : _txt;
string o = format(q"¶<p class="%s" indent="h%si%s">
%s
@@ -275,10 +278,11 @@ template SQLiteFormatAndLoadObject() {
);
return o;
}
- auto html_quote(O)(
+ auto html_quote(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
- string _txt = munge_html(obj);
+ string _txt = munge_html(doc_matters, obj);
string o = format(q"¶<p class="%s">
%s
</p>¶",
@@ -287,10 +291,11 @@ template SQLiteFormatAndLoadObject() {
);
return o;
}
- auto html_group(O)(
+ auto html_group(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
- string _txt = munge_html(obj);
+ string _txt = munge_html(doc_matters, obj);
string o = format(q"¶<p class="%s">
%s
</p>¶",
@@ -299,10 +304,11 @@ template SQLiteFormatAndLoadObject() {
);
return o;
}
- auto html_block(O)(
+ auto html_block(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
- string _txt = munge_html(obj);
+ string _txt = munge_html(doc_matters, obj);
string o = format(q"¶
<p class="%s">%s</p>¶",
obj.metainfo.is_a,
@@ -310,10 +316,11 @@ template SQLiteFormatAndLoadObject() {
);
return o;
}
- auto html_verse(O)(
+ auto html_verse(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
- string _txt = munge_html(obj);
+ string _txt = munge_html(doc_matters, obj);
string o = format(q"¶<p class="%s">%s</p>¶",
obj.metainfo.is_a,
_txt
@@ -330,7 +337,8 @@ template SQLiteFormatAndLoadObject() {
);
return o;
}
- auto html_table(O)(
+ auto html_table(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
auto _tablarize(O)(
@@ -374,7 +382,7 @@ template SQLiteFormatAndLoadObject() {
);
return t;
}
- string _txt = munge_html(obj);
+ string _txt = munge_html(doc_matters, obj);
auto t = _tablarize(obj, _txt);
_txt = t[0];
string _note = t[1];
@@ -390,16 +398,16 @@ template SQLiteFormatAndLoadObject() {
);
return o;
}
- auto sqlite_load_string(O,Dm)(
+ auto sqlite_load_string(M,O)(
+ auto ref M doc_matters,
auto ref const O obj,
- auto ref Dm doc_matters,
) {
string o;
return o;
}
- auto postgresql_load_string(O,Dm)(
+ auto postgresql_load_string(M,O)(
+ auto ref M doc_matters,
auto ref const O obj,
- auto ref Dm doc_matters,
) {
string o;
return o;
@@ -418,12 +426,13 @@ template SQLiteFormatAndLoadObject() {
string _sql;
return _sql;
}
- auto heading(O)(
+ auto heading(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
string[string] obj_txt = [
"text": generic_munge_sanitize_text_for_search(obj.text),
- "html": html_heading(obj)
+ "html": html_heading(doc_matters, obj)
];
if (doc_matters.opt.action.debug_do) {
debug(sql_txt) {
@@ -437,12 +446,13 @@ template SQLiteFormatAndLoadObject() {
}
return obj_txt;
}
- auto para(O)(
+ auto para(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
string[string] obj_txt = [
"text": generic_munge_sanitize_text_for_search(obj.text),
- "html": html_para(obj)
+ "html": html_para(doc_matters, obj)
];
if (doc_matters.opt.action.debug_do) {
debug(sql_txt) {
@@ -456,12 +466,13 @@ template SQLiteFormatAndLoadObject() {
}
return obj_txt;
}
- auto quote(O)(
+ auto quote(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
string[string] obj_txt = [
"text": generic_munge_sanitize_text_for_search(obj.text),
- "html": html_quote(obj)
+ "html": html_quote(doc_matters, obj)
];
if (doc_matters.opt.action.debug_do) {
debug(sql_txt) {
@@ -475,12 +486,13 @@ template SQLiteFormatAndLoadObject() {
}
return obj_txt;
}
- auto group(O)(
+ auto group(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
string[string] obj_txt = [
"text": generic_munge_sanitize_text_for_search(obj.text),
- "html": html_group(obj)
+ "html": html_group(doc_matters, obj)
];
if (doc_matters.opt.action.debug_do) {
debug(sql_txt) {
@@ -494,12 +506,13 @@ template SQLiteFormatAndLoadObject() {
}
return obj_txt;
}
- auto block(O)(
+ auto block(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
string[string] obj_txt = [
"text": generic_munge_sanitize_text_for_search(obj.text),
- "html": html_block(obj)
+ "html": html_block(doc_matters, obj)
];
if (doc_matters.opt.action.debug_do) {
debug(sql_txt) {
@@ -513,12 +526,13 @@ template SQLiteFormatAndLoadObject() {
}
return obj_txt;
}
- auto verse(O)(
+ auto verse(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
string[string] obj_txt = [
"text": generic_munge_sanitize_text_for_search(obj.text),
- "html": html_verse(obj)
+ "html": html_verse(doc_matters, obj)
];
if (doc_matters.opt.action.debug_do) {
debug(sql_txt) {
@@ -532,7 +546,8 @@ template SQLiteFormatAndLoadObject() {
}
return obj_txt;
}
- auto code(O)(
+ auto code(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
string[string] obj_txt = [
@@ -551,12 +566,13 @@ template SQLiteFormatAndLoadObject() {
}
return obj_txt;
}
- auto table(O)(
+ auto table(M,O)(
+ M doc_matters,
auto ref const O obj,
) {
string[string] obj_txt = [
"text": generic_munge_sanitize_text_for_search(obj.text),
- "html": html_table(obj)
+ "html": html_table(doc_matters, obj)
];
if (doc_matters.opt.action.debug_do) {
debug(sql_txt) {
@@ -712,8 +728,8 @@ template SQLiteTablesReCreate() {
}
}
template SQLiteDeleteDocument() {
- string SQLiteDeleteDocument(I)(
- I doc_matters,
+ string SQLiteDeleteDocument(M)(
+ M doc_matters,
) {
string _uid = doc_matters.src.doc_uid;
string _delete_uid = format(q"¶
@@ -729,8 +745,8 @@ template SQLiteDeleteDocument() {
}
}
template SQLiteInsertMetadata() {
- string SQLiteInsertMetadata(I)(
- I doc_matters,
+ string SQLiteInsertMetadata(M)(
+ M doc_matters,
) {
string _uid = SQLinsertDelimiter!()(doc_matters.src.doc_uid);
string _insert_metadata = format(q"¶
@@ -885,9 +901,9 @@ template SQLiteInsertMetadata() {
}
}
template SQLiteInsertDocObjectsLoop() {
- string SQLiteInsertDocObjectsLoop(D,I)(
+ string SQLiteInsertDocObjectsLoop(M,D)(
+ M doc_matters,
D doc_abstraction,
- I doc_matters,
) {
string _uid = SQLinsertDelimiter!()(doc_matters.src.doc_uid);
string insertDocObjectsRow(O)(O obj) {
@@ -933,7 +949,7 @@ template SQLiteInsertDocObjectsLoop() {
case "para":
switch (obj.metainfo.is_a) {
case "heading":
- obj_txt = format_and_sqlite_load.heading(obj);
+ obj_txt = format_and_sqlite_load.heading(doc_matters, obj);
break;
default:
if ((doc_matters.opt.action.debug_do)) {
@@ -959,10 +975,10 @@ template SQLiteInsertDocObjectsLoop() {
writeln(__LINE__, ": ", obj.text);
}
}
- obj_txt = format_and_sqlite_load.heading(obj);
+ obj_txt = format_and_sqlite_load.heading(doc_matters, obj);
break;
case "para":
- obj_txt = format_and_sqlite_load.para(obj);
+ obj_txt = format_and_sqlite_load.para(doc_matters, obj);
break;
default:
if ((doc_matters.opt.action.debug_do)) {
@@ -974,24 +990,24 @@ template SQLiteInsertDocObjectsLoop() {
case "block":
switch (obj.metainfo.is_a) {
case "quote":
- obj_txt = format_and_sqlite_load.quote(obj);
+ obj_txt = format_and_sqlite_load.quote(doc_matters, obj);
break;
case "group":
- obj_txt = format_and_sqlite_load.group(obj);
+ obj_txt = format_and_sqlite_load.group(doc_matters, obj);
break;
case "block":
- obj_txt = format_and_sqlite_load.block(obj);
+ obj_txt = format_and_sqlite_load.block(doc_matters, obj);
break;
case "poem": // double check on keeping both poem & verse
break;
case "verse":
- obj_txt = format_and_sqlite_load.verse(obj);
+ obj_txt = format_and_sqlite_load.verse(doc_matters, obj);
break;
case "code":
- obj_txt = format_and_sqlite_load.code(obj);
+ obj_txt = format_and_sqlite_load.code(doc_matters, obj);
break;
case "table":
- obj_txt = format_and_sqlite_load.table(obj);
+ obj_txt = format_and_sqlite_load.table(doc_matters, obj);
break;
default:
if ((doc_matters.opt.action.debug_do)) {
@@ -1013,19 +1029,19 @@ template SQLiteInsertDocObjectsLoop() {
case "para":
switch (obj.metainfo.is_a) {
case "heading":
- obj_txt = format_and_sqlite_load.heading(obj);
+ obj_txt = format_and_sqlite_load.heading(doc_matters, obj);
break;
case "glossary": assert(part == "glossary", part);
- obj_txt = format_and_sqlite_load.para(obj);
+ obj_txt = format_and_sqlite_load.para(doc_matters, obj);
break;
case "bibliography": assert(part == "bibliography", part);
- obj_txt = format_and_sqlite_load.para(obj);
+ obj_txt = format_and_sqlite_load.para(doc_matters, obj);
break;
case "bookindex": assert(part == "bookindex_seg", part);
- obj_txt = format_and_sqlite_load.para(obj);
+ obj_txt = format_and_sqlite_load.para(doc_matters, obj);
break;
case "blurb": assert(part == "blurb", part);
- obj_txt = format_and_sqlite_load.para(obj);
+ obj_txt = format_and_sqlite_load.para(doc_matters, obj);
break;
default:
if ((doc_matters.opt.action.debug_do)) {
diff --git a/src/doc_reform/output/xmls.d b/src/doc_reform/output/xmls.d
index f2f09fa..e68a22d 100644
--- a/src/doc_reform/output/xmls.d
+++ b/src/doc_reform/output/xmls.d
@@ -311,11 +311,12 @@ template outputXHTMLs() {
</html>¶");
return o;
}
- auto inline_images(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "seg",
+ auto inline_images(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "seg",
) {
string _img_pth;
if (_xml_type == "epub") {
@@ -334,11 +335,12 @@ template outputXHTMLs() {
}
return _txt;
}
- auto inline_links(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "seg",
+ auto inline_links(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "seg",
) {
if (obj.has.inline_links) {
if ((_txt.match(rgx.mark_internal_site_lnk))
@@ -380,8 +382,9 @@ template outputXHTMLs() {
}
return _txt;
}
- auto inline_notes_scroll(O)(
- const O obj,
+ auto inline_notes_scroll(M,O)(
+ M doc_matters,
+ const O obj,
string _txt,
) {
if (obj.has.inline_notes_reg) {
@@ -403,9 +406,10 @@ template outputXHTMLs() {
}
return _txt;
}
- auto inline_notes_seg(O)(
- const O obj,
- string _txt,
+ auto inline_notes_seg(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
) {
string[] _endnotes;
if (obj.has.inline_notes_reg) {
@@ -442,29 +446,32 @@ template outputXHTMLs() {
);
return t;
}
- auto inline_markup_scroll(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
+ auto inline_markup_scroll(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
) {
- _txt = inline_images(obj, _txt, _suffix, "scroll");
- _txt = inline_links(obj, _txt, _suffix, "scroll");
- _txt = inline_notes_scroll(obj, _txt);
+ _txt = inline_images(doc_matters, obj, _txt, _suffix, "scroll");
+ _txt = inline_links(doc_matters, obj, _txt, _suffix, "scroll");
+ _txt = inline_notes_scroll(doc_matters, obj, _txt);
return _txt;
}
- auto inline_markup_seg(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "seg",
+ auto inline_markup_seg(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "seg",
) {
- _txt = inline_images(obj, _txt, _suffix, _xml_type);
- _txt = inline_links(obj, _txt, _suffix, _xml_type);
- auto t = inline_notes_seg(obj, _txt);
+ _txt = inline_images(doc_matters, obj, _txt, _suffix, _xml_type); // TODO
+ _txt = inline_links(doc_matters, obj, _txt, _suffix, _xml_type); // TODO
+ auto t = inline_notes_seg(doc_matters, obj, _txt);
return t;
}
- string lev4_heading_subtoc(O)(
- const O obj,
+ string lev4_heading_subtoc(M,O)(
+ M doc_matters,
+ const O obj,
) {
char[] lev4_subtoc;
lev4_subtoc ~= " <div class=\"nav\">\n";
@@ -489,8 +496,9 @@ template outputXHTMLs() {
lev4_subtoc ~= " </div>\n";
return lev4_subtoc.to!string;
}
- auto nav_pre_next_svg(O)(
- const O obj,
+ auto nav_pre_next_svg(M,O)(
+ M doc_matters,
+ const O obj,
) {
string prev, next, toc;
if (obj.tags.segment_anchor_tag == "toc") {
@@ -566,10 +574,11 @@ template outputXHTMLs() {
}
return bar();
}
- auto heading(O)(
- const O obj,
- string _txt,
- string _xml_type = "html",
+ auto heading(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _xml_type = "html",
) {
auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
string _horizontal_rule = "<hr />";
@@ -615,35 +624,38 @@ template outputXHTMLs() {
}
return o;
}
- auto heading_scroll(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
+ auto heading_scroll(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
) {
auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
- _txt = inline_markup_scroll(obj, _txt, _suffix);
- string o = heading(obj, _txt);
+ _txt = inline_markup_scroll(doc_matters, obj, _txt, _suffix);
+ string o = heading(doc_matters, obj, _txt);
return o;
}
- auto heading_seg(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "html",
+ auto heading_seg(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "html"
) {
- auto t = inline_markup_seg(obj, _txt, _suffix, _xml_type);
+ auto t = inline_markup_seg(doc_matters, obj, _txt, _suffix, _xml_type);
_txt = t[0];
string[] _endnotes = t[1];
- string o = heading(obj, _txt, _xml_type);
+ string o = heading(doc_matters, obj, _txt, _xml_type);
auto u = tuple(
o,
_endnotes,
);
return u;
}
- auto para(O)(
- const O obj,
- string _txt,
+ auto para(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
) {
auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
_txt = font_face(_txt);
@@ -680,35 +692,38 @@ template outputXHTMLs() {
}
return o;
}
- auto para_scroll(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
+ auto para_scroll(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
) {
auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
- _txt = inline_markup_scroll(obj, _txt, _suffix);
- string o = para(obj, _txt);
+ _txt = inline_markup_scroll(doc_matters, obj, _txt, _suffix);
+ string o = para(doc_matters, obj, _txt);
return o;
}
- auto para_seg(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "html",
+ auto para_seg(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "html",
) {
- auto t = inline_markup_seg(obj, _txt, _suffix, _xml_type);
+ auto t = inline_markup_seg(doc_matters, obj, _txt, _suffix, _xml_type);
_txt = t[0].to!string;
string[] _endnotes = t[1];
- string o = para(obj, _txt);
+ string o = para(doc_matters, obj, _txt);
auto u = tuple(
o,
_endnotes,
);
return u;
}
- auto quote(O)(
- const O obj,
- string _txt,
+ auto quote(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
) {
_txt = font_face(_txt);
string o;
@@ -737,35 +752,38 @@ template outputXHTMLs() {
}
return o;
}
- auto quote_scroll(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
+ auto quote_scroll(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
) {
auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
- _txt = inline_markup_scroll(obj, _txt, _suffix);
- string o = quote(obj, _txt);
+ _txt = inline_markup_scroll(doc_matters, obj, _txt, _suffix);
+ string o = quote(doc_matters, obj, _txt);
return o;
}
- auto quote_seg(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "html",
+ auto quote_seg(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "html",
) {
- auto t = inline_markup_seg(obj, _txt, _suffix, _xml_type);
+ auto t = inline_markup_seg(doc_matters, obj, _txt, _suffix, _xml_type);
_txt = t[0].to!string;
string[] _endnotes = t[1];
- string o = quote(obj, _txt);
+ string o = quote(doc_matters, obj, _txt);
auto u = tuple(
o,
_endnotes,
);
return u;
}
- auto group(O)(
- const O obj,
- string _txt,
+ auto group(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
) {
_txt = font_face(_txt);
string o;
@@ -794,36 +812,39 @@ template outputXHTMLs() {
}
return o;
}
- auto group_scroll(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "html",
+ auto group_scroll(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "html",
) {
auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
- _txt = inline_markup_scroll(obj, _txt, _suffix);
- string o = group(obj, _txt);
+ _txt = inline_markup_scroll(doc_matters, obj, _txt, _suffix);
+ string o = group(doc_matters, obj, _txt);
return o;
}
- auto group_seg(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "html",
+ auto group_seg(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "html",
) {
- auto t = inline_markup_seg(obj, _txt, _suffix, _xml_type);
+ auto t = inline_markup_seg(doc_matters, obj, _txt, _suffix, _xml_type);
_txt = t[0].to!string;
string[] _endnotes = t[1];
- string o = group(obj, _txt);
+ string o = group(doc_matters, obj, _txt);
auto u = tuple(
o,
_endnotes,
);
return u;
}
- auto block(O)(
- const O obj,
- string _txt,
+ auto block(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
) {
_txt = font_face(_txt);
string o;
@@ -848,36 +869,39 @@ template outputXHTMLs() {
}
return o;
}
- auto block_scroll(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "html",
+ auto block_scroll(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "html",
) {
auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
- _txt = inline_markup_scroll(obj, _txt, _suffix);
- string o = block(obj, _txt);
+ _txt = inline_markup_scroll(doc_matters, obj, _txt, _suffix);
+ string o = block(doc_matters, obj, _txt);
return o;
}
- auto block_seg(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "html",
+ auto block_seg(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "html",
) {
- auto t = inline_markup_seg(obj, _txt, _suffix, _xml_type);
+ auto t = inline_markup_seg(doc_matters, obj, _txt, _suffix, _xml_type);
_txt = t[0].to!string;
string[] _endnotes = t[1];
- string o = block(obj, _txt);
+ string o = block(doc_matters, obj, _txt);
auto u = tuple(
o,
_endnotes,
);
return u;
}
- auto verse(O)(
- const O obj,
- string _txt,
+ auto verse(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
) {
_txt = font_face(_txt);
string o;
@@ -902,36 +926,39 @@ template outputXHTMLs() {
}
return o;
}
- auto verse_scroll(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "html",
+ auto verse_scroll(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "html",
) {
auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
- _txt = inline_markup_scroll(obj, _txt, _suffix);
- string o = verse(obj, _txt);
+ _txt = inline_markup_scroll(doc_matters, obj, _txt, _suffix);
+ string o = verse(doc_matters, obj, _txt);
return o;
}
- auto verse_seg(O)(
- const O obj,
- string _txt,
- string _suffix = ".html",
- string _xml_type = "html",
+ auto verse_seg(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
+ string _suffix = ".html",
+ string _xml_type = "html",
) {
- auto t = inline_markup_seg(obj, _txt, _suffix, _xml_type);
+ auto t = inline_markup_seg(doc_matters, obj, _txt, _suffix, _xml_type);
_txt = t[0].to!string;
string[] _endnotes = t[1];
- string o = verse(obj, _txt);
+ string o = verse(doc_matters, obj, _txt);
auto u = tuple(
o,
_endnotes,
);
return u;
}
- auto tablarize(O)(
- const O obj,
- string _txt,
+ auto tablarize(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
) {
string[] _table_rows = (_txt).split(rgx.table_delimiter_row);
string[] _table_cols;
@@ -962,13 +989,14 @@ template outputXHTMLs() {
);
return t;
}
- auto table(O)(
- const O obj,
- string _txt,
+ auto table(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
) {
auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags);
_txt = font_face(_txt);
- auto t = tablarize(obj, _txt);
+ auto t = tablarize(doc_matters, obj, _txt);
_txt = t[0];
string _note = t[1];
string o;
@@ -991,9 +1019,10 @@ template outputXHTMLs() {
);
return o;
}
- auto endnote(O)(
- const O obj,
- string _txt,
+ auto endnote(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
) {
string o;
o = format(q"¶ <p class="%s" indent="h%si%s">
@@ -1006,9 +1035,10 @@ template outputXHTMLs() {
);
return o;
}
- auto code(O)(
- const O obj,
- string _txt,
+ auto code(M,O)(
+ M doc_matters,
+ const O obj,
+ string _txt,
) {
string o;
if (obj.metainfo.object_number.empty) {