aboutsummaryrefslogtreecommitdiffhomepage
path: root/org
diff options
context:
space:
mode:
Diffstat (limited to 'org')
-rw-r--r--org/default_misc.org1
-rw-r--r--org/imports.org2
-rw-r--r--org/in_source_files.org24
-rw-r--r--org/meta_conf_make_meta.org4
-rw-r--r--org/meta_debugs.org1
-rw-r--r--org/metaverse.org26
-rw-r--r--org/out_harvest_metadata.org1
-rw-r--r--org/out_latex.org32
-rw-r--r--org/out_odt.org18
-rw-r--r--org/out_sqlite.org10
-rw-r--r--org/out_xmls.org66
-rw-r--r--org/output_show.org1
-rw-r--r--org/spine.org3
13 files changed, 85 insertions, 104 deletions
diff --git a/org/default_misc.org b/org/default_misc.org
index cc4083e..8988f3e 100644
--- a/org/default_misc.org
+++ b/org/default_misc.org
@@ -243,7 +243,6 @@ import
std.regex,
std.stdio,
std.string,
- std.traits,
std.typecons,
std.uni,
std.utf,
diff --git a/org/imports.org b/org/imports.org
index 45705a4..fd6998e 100644
--- a/org/imports.org
+++ b/org/imports.org
@@ -38,7 +38,6 @@ public import
std.regex,
std.stdio,
std.string,
- std.traits,
std.typecons,
// std.uni,
std.utf,
@@ -68,7 +67,6 @@ public import
std.regex,
std.stdio,
std.string,
- std.traits,
std.typecons,
// std.uni,
std.utf;
diff --git a/org/in_source_files.org b/org/in_source_files.org
index 20d8d0a..cb95fda 100644
--- a/org/in_source_files.org
+++ b/org/in_source_files.org
@@ -296,23 +296,21 @@ static template spineRawMarkupContent() {
auto raw = MarkupRawUnit();
string[] insert_file_list;
string[] images_list;
- auto t
+ Tuple!(char[], char[][], string[], string[]) t
= raw.markupSourceHeaderContentRawLineTupleArray(source_txt_str);
auto header_raw = t[0];
auto sourcefile_body_content = t[1];
if (fn_src.match(rgx.src_fn_master)) { // filename with path needed if master file (.ssm) not otherwise
auto ins = Inserts();
- auto tu
+ Tuple!(char[][], string[], string[]) tu
= ins.scan_master_src_for_insert_files_and_import_content(_opt_action, sourcefile_body_content, fn_src);
- static assert(!isTypeTuple!(tu));
sourcefile_body_content = tu[0];
insert_file_list = tu[1].dup;
images_list = tu[2].dup;
} else if (_opt_action.source || _opt_action.pod) {
auto ins = Inserts();
- auto tu
+ Tuple!(char[][], string[], string[]) tu
= ins.scan_master_src_for_insert_files_and_import_content(_opt_action, sourcefile_body_content, fn_src);
- static assert(!isTypeTuple!(tu));
images_list = tu[2].dup;
}
string header_type = "";
@@ -348,7 +346,7 @@ static template spineRawMarkupContent() {
} // end src subdoc (inserts) loop
<<meta_inserts_scan_post>>
}
- auto scan_master_src_for_insert_files_and_import_content(O)(
+ Tuple!(char[][], string[], string[]) scan_master_src_for_insert_files_and_import_content(O)(
O _opt_action,
char[][] sourcefile_body_content,
string fn_src
@@ -457,14 +455,14 @@ auto markupSourceReadIn(in string fn_src) {
#+name: meta_markup_source_raw_tuple_of_header_and_body
#+BEGIN_SRC d
-auto markupSourceHeaderContentRawLineTupleArray(in string source_txt_str) @safe {
+Tuple!(char[], char[][], string[], string[]) markupSourceHeaderContentRawLineTupleArray(in string source_txt_str) @safe {
string[] file_insert_list = [];
string[] images_list = [];
char[][] hc = header0Content1(source_txt_str);
char[] header = hc[0];
char[] source_txt = hc[1];
- auto source_line_arr = markupSourceLineArray(source_txt);
- auto t = tuple(
+ char[][] source_line_arr = markupSourceLineArray(source_txt);
+ Tuple!(char[], char[][], string[], string[]) t = tuple(
header,
source_line_arr,
file_insert_list,
@@ -487,8 +485,8 @@ final char[][] getInsertMarkupSourceContentRawLineArray(
"not a dr markup filename: «" ~
fn_src_insert ~ "»"
);
- auto source_txt_str = readInMarkupSource(fn_src_insert);
- auto source_line_arr = markupSourceLineArray(source_txt_str);
+ string source_txt_str = readInMarkupSource(fn_src_insert);
+ char[][] source_line_arr = markupSourceLineArray(source_txt_str);
return source_line_arr;
}
#+END_SRC
@@ -584,7 +582,7 @@ if (type1["curly_code"] == 1) {
#+name: meta_inserts_scan_post
#+BEGIN_SRC d
-auto t = tuple(
+Tuple!(char[][], string[]) t = tuple(
contents_insert,
_images
);
@@ -689,7 +687,7 @@ debug(insert_file) {
writeln(__LINE__);
writeln(contents.length);
}
-auto t = tuple(
+Tuple!(char[][], string[], string[]) t = tuple(
contents,
insert_file_list,
images
diff --git a/org/meta_conf_make_meta.org b/org/meta_conf_make_meta.org
index 4b270e0..746f712 100644
--- a/org/meta_conf_make_meta.org
+++ b/org/meta_conf_make_meta.org
@@ -35,7 +35,6 @@ import
std.regex,
std.stdio,
std.string,
- std.traits,
std.typecons,
std.uni,
std.utf,
@@ -61,7 +60,6 @@ import
std.regex,
std.stdio,
std.string,
- std.traits,
std.typecons,
std.utf,
std.conv : to;
@@ -351,7 +349,6 @@ static template contentYAMLtoSpineStruct() {
std.regex,
std.stdio,
std.string,
- std.traits,
std.typecons,
std.utf,
std.conv : to;
@@ -1168,7 +1165,6 @@ static template contentJSONtoSpineStruct() {
std.regex,
std.stdio,
std.string,
- std.traits,
std.typecons,
std.utf,
std.conv : to;
diff --git a/org/meta_debugs.org b/org/meta_debugs.org
index f070ada..f17c363 100644
--- a/org/meta_debugs.org
+++ b/org/meta_debugs.org
@@ -63,7 +63,6 @@ import
std.range,
std.regex,
std.string,
- std.traits,
std.typecons,
std.utf,
std.conv : to;
diff --git a/org/metaverse.org b/org/metaverse.org
index 500b6ac..c7f3481 100644
--- a/org/metaverse.org
+++ b/org/metaverse.org
@@ -1550,7 +1550,6 @@ if (the_document_body_section.length > 0) {
#+BEGIN_SRC d
auto en_tuple
= note_section.endnote_objects(obj_cite_digits, opt_action);
-static assert(!isTypeTuple!(en_tuple));
auto the_endnotes_section = en_tuple[0];
obj_cite_digits = en_tuple[1];
debug(endnotes) {
@@ -1766,7 +1765,6 @@ auto bi_tuple
opt_action,
);
destroy(bookindex_unordered_hashes);
-static assert(!isTypeTuple!(bi_tuple));
auto the_bookindex_section = bi_tuple[0];
obj_cite_digits = bi_tuple[1];
debug(bookindex) {
@@ -5402,7 +5400,7 @@ static struct ObjInlineMarkupMunge {
#+name: meta_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
- auto footnotes_endnotes_markup_and_number_or_stars()(string obj_txt_in, bool reset_note_numbers) @safe {
+ Tuple!(string, bool, bool, bool) footnotes_endnotes_markup_and_number_or_stars()(string obj_txt_in, bool reset_note_numbers) @safe {
/+ endnotes (regular) +/
bool flg_notes_reg = false;
bool flg_notes_star = false;
@@ -5458,7 +5456,7 @@ static struct ObjInlineMarkupMunge {
} else {
obj_txt_out = obj_txt_in;
}
- auto t = tuple(
+ Tuple!(string, bool, bool, bool) t = tuple(
obj_txt_out,
flg_notes_reg,
flg_notes_star,
@@ -5472,7 +5470,7 @@ static struct ObjInlineMarkupMunge {
#+name: meta_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
- private auto object_notes_and_links_()(
+ private Tuple!(string, bool, bool, bool, bool, bool) object_notes_and_links_()(
string obj_txt_in,
bool reset_note_numbers=false
) @safe {
@@ -5506,7 +5504,7 @@ static struct ObjInlineMarkupMunge {
obj_txt_in = obj_txt_in
.replaceAll(rgx.para_inline_link_anchor, "┃$1┃");
}
- auto ftn = footnotes_endnotes_markup_and_number_or_stars(obj_txt_in, reset_note_numbers);
+ Tuple!(string, bool, bool, bool) ftn = footnotes_endnotes_markup_and_number_or_stars(obj_txt_in, reset_note_numbers);
obj_txt_out = ftn[0];
debug(footnotes) {
writeln(obj_txt_out, tail);
@@ -5519,7 +5517,7 @@ static struct ObjInlineMarkupMunge {
writeln(m.hit);
}
}
- auto t = tuple(
+ Tuple!(string, bool, bool, bool, bool, bool) t = tuple(
obj_txt_out,
ftn[1],
ftn[2],
@@ -5530,7 +5528,7 @@ static struct ObjInlineMarkupMunge {
return t;
}
auto init() {
- auto t = object_notes_and_links_("");
+ Tuple!(string, bool, bool, bool, bool, bool) t = object_notes_and_links_("");
return t;
}
invariant() {
@@ -5551,7 +5549,7 @@ static struct ObjInlineMarkupMunge {
.replaceFirst(rgx.heading, "")
.replaceFirst(rgx.object_number_off_all, "")
.strip;
- auto t = object_notes_and_links_(obj_txt["munge"], reset_note_numbers);
+ Tuple!(string, bool, bool, bool, bool, bool) t = object_notes_and_links_(obj_txt["munge"], reset_note_numbers);
debug(munge) {
writeln(__LINE__);
writeln(obj_txt_in);
@@ -5578,7 +5576,7 @@ static struct ObjInlineMarkupMunge {
obj_txt["munge"]=(obj_txt_in)
.replaceFirst(rgx.para_attribs, "")
.replaceFirst(rgx.object_number_off_all, "");
- auto t = object_notes_and_links_(obj_txt["munge"]);
+ Tuple!(string, bool, bool, bool, bool, bool) t = object_notes_and_links_(obj_txt["munge"]);
debug(munge) {
writeln(__LINE__);
writeln(obj_txt_in);
@@ -5614,7 +5612,7 @@ static struct ObjInlineMarkupMunge {
#+BEGIN_SRC d
auto munge_group(string obj_txt_in) @safe {
obj_txt["munge"]=obj_txt_in;
- auto t = object_notes_and_links_(obj_txt["munge"]);
+ Tuple!(string, bool, bool, bool, bool, bool) t = object_notes_and_links_(obj_txt["munge"]);
return t;
}
invariant() {
@@ -5634,7 +5632,7 @@ static struct ObjInlineMarkupMunge {
#+BEGIN_SRC d
auto munge_block()(string obj_txt_in) @safe {
obj_txt["munge"]=obj_txt_in;
- auto t = object_notes_and_links_(obj_txt["munge"]);
+ Tuple!(string, bool, bool, bool, bool, bool) t = object_notes_and_links_(obj_txt["munge"]);
return t;
}
invariant() {
@@ -5654,7 +5652,7 @@ static struct ObjInlineMarkupMunge {
#+BEGIN_SRC d
auto munge_verse()(string obj_txt_in) @safe {
obj_txt["munge"]=obj_txt_in;
- auto t = object_notes_and_links_(obj_txt["munge"]);
+ Tuple!(string, bool, bool, bool, bool, bool) t = object_notes_and_links_(obj_txt["munge"]);
return t;
}
invariant() {
@@ -5809,7 +5807,7 @@ static struct ObjInlineMarkup {
obj_notes_and_links["image_no_dimensions"] = x[5];
break;
}
- auto t = tuple(
+ Tuple!(string, string, bool, bool, bool, bool) t = tuple(
obj_txt["munge"],
anchor_tag,
obj_notes_and_links["notes_reg"],
diff --git a/org/out_harvest_metadata.org b/org/out_harvest_metadata.org
index 9c954a0..7a27ebf 100644
--- a/org/out_harvest_metadata.org
+++ b/org/out_harvest_metadata.org
@@ -48,7 +48,6 @@ import
std.regex,
std.stdio,
std.string,
- std.traits,
std.typecons,
std.uni,
std.utf,
diff --git a/org/out_latex.org b/org/out_latex.org
index 4e0ff3e..b88324e 100644
--- a/org/out_latex.org
+++ b/org/out_latex.org
@@ -861,24 +861,24 @@ auto tablarize(O)(
string _tablenote;
foreach(row_idx, row; _table_rows) {
_table_cols = row.split(rgx.table_delimiter_col);
- _table ~= "";
- foreach(col_idx, cell; _table_cols) {
- if ((_table_cols.length == 1)
- && (_table_rows.length <= row_idx+2)) { // check row_idx+2 (rather than == ++row_idx)
- _tablenote ~= cell;
- } else {
- // // _table ~= "\\bfseries ";
- // _table ~= cell;
- // _table ~= (_table_cols.length > (col_idx + 1)) ? "&" : "";
- _table ~= format(q"┃%s%s┃",
- cell,
- (_table_cols.length > (col_idx + 1)) ? "&" : ""
- );
- }
+ _table ~= "";
+ foreach(col_idx, cell; _table_cols) {
+ if ((_table_cols.length == 1)
+ && (_table_rows.length <= row_idx+2)) { // check row_idx+2 (rather than == ++row_idx)
+ _tablenote ~= cell;
+ } else {
+ // // _table ~= "\\bfseries ";
+ // _table ~= cell;
+ // _table ~= (_table_cols.length > (col_idx + 1)) ? "&" : "";
+ _table ~= format(q"┃%s%s┃",
+ cell,
+ (_table_cols.length > (col_idx + 1)) ? "&" : ""
+ );
}
- _table ~= "\\\\";
}
- auto t = tuple(
+ _table ~= "\\\\";
+ }
+ Tuple!(string, string) t = tuple(
_table,
_tablenote,
);
diff --git a/org/out_odt.org b/org/out_odt.org
index 59e731c..3092aa5 100644
--- a/org/out_odt.org
+++ b/org/out_odt.org
@@ -373,13 +373,13 @@ string _font_face(string _txt){
.replaceAll(rgx.inline_strike, "<del>$1</del>")
.replaceAll(rgx.inline_insert, "<ins>$1</ins>")
.replaceAll(rgx.inline_cite, "<cite>$1</cite>")
- .replaceAll(rgx.inline_emphasis, format(q"┃<text:span text:style-name="Span_bold">%s</text:span>┃","$1"))
- .replaceAll(rgx.inline_bold, format(q"┃<text:span text:style-name="Span_bold">%s</text:span>┃","$1"))
- .replaceAll(rgx.inline_italics, format(q"┃<text:span text:style-name="Span_italic">%s</text:span>┃","$1"))
- .replaceAll(rgx.inline_underscore, format(q"┃<text:span text:style-name="Span_underscore">%s</text:span>┃","$1"))
+ .replaceAll(rgx.inline_emphasis, format(q"┃<text:span text:style-name="Span_bold">%s</text:span>┃", "$1"))
+ .replaceAll(rgx.inline_bold, format(q"┃<text:span text:style-name="Span_bold">%s</text:span>┃", "$1"))
+ .replaceAll(rgx.inline_italics, format(q"┃<text:span text:style-name="Span_italic">%s</text:span>┃", "$1"))
+ .replaceAll(rgx.inline_underscore, format(q"┃<text:span text:style-name="Span_underscore">%s</text:span>┃", "$1"))
.replaceAll(rgx.inline_superscript, format(q"┃<text:span text:style-name="Span_superscript">%s</text:span>┃","$1"))
- .replaceAll(rgx.inline_subscript, format(q"┃<text:span text:style-name="Span_subscript">%s</text:span>┃","$1"))
- .replaceAll(rgx.inline_mono, format(q"┃<text:span text:style-name="Span_monospace">%s</text:span>┃","$1"));
+ .replaceAll(rgx.inline_subscript, format(q"┃<text:span text:style-name="Span_subscript">%s</text:span>┃", "$1"))
+ .replaceAll(rgx.inline_mono, format(q"┃<text:span text:style-name="Span_monospace">%s</text:span>┃", "$1"));
return _txt;
}
#+END_SRC
@@ -764,7 +764,7 @@ string code(O,M)(
#+name: odt_format_objects
#+BEGIN_SRC d
-auto tablarize(O)(
+Tuple!(string, string) tablarize(O)(
const O obj,
string _txt,
) @safe {
@@ -792,7 +792,7 @@ auto tablarize(O)(
}
_table ~= "</table:table-row>";
}
- auto t = tuple(
+ Tuple!(string, string) t = tuple(
_table,
_tablenote,
);
@@ -814,7 +814,7 @@ string table(O,M)(
assert(obj.metainfo.is_of_type == "block");
assert(obj.metainfo.is_a == "table");
string _o_txt_odt = markup(obj);
- auto t = tablarize(obj, _o_txt_odt);
+ Tuple!(string, string) t = tablarize(obj, _o_txt_odt);
string _note = t[1];
_o_txt_odt = format(q"┃
<table:table table:name="Table%s" table:style-name="Table1">
diff --git a/org/out_sqlite.org b/org/out_sqlite.org
index 0f61a03..0d1bbef 100644
--- a/org/out_sqlite.org
+++ b/org/out_sqlite.org
@@ -673,7 +673,7 @@ string inline_notes_scroll(M,O)(
#+name: sanitize_and_munge_inline_html
#+BEGIN_SRC d
-auto inline_notes_seg(M,O)(
+Tuple!(string, string) inline_notes_seg(M,O)(
M doc_matters,
const O obj,
string _txt,
@@ -706,7 +706,7 @@ auto inline_notes_seg(M,O)(
writeln(__LINE__, " endnote: ", obj.metainfo.is_a, ": ", obj.text);
}
}
- auto t = tuple(
+ Tuple!(string, string) t = tuple(
_txt,
_endnotes,
);
@@ -926,7 +926,7 @@ string html_table(M,O)(
assert(obj.metainfo.is_of_section == "body");
assert(obj.metainfo.is_of_type == "block");
assert(obj.metainfo.is_a == "table");
- auto _tablarize(O)(
+ Tuple!(string, string) _tablarize(O)(
const O obj,
string _txt,
) {
@@ -961,14 +961,14 @@ string html_table(M,O)(
}
_table ~= "</tr>";
}
- auto t = tuple(
+ Tuple!(string, string) t = tuple(
_table,
_tablenote,
);
return t;
}
string _txt = munge_html(doc_matters, obj);
- auto t = _tablarize(obj, _txt);
+ Tuple!(string, string) t = _tablarize(obj, _txt);
_txt = t[0];
string _note = t[1];
string o = format(q"┃<p class="%s">
diff --git a/org/out_xmls.org b/org/out_xmls.org
index 8821cca..5cbe430 100644
--- a/org/out_xmls.org
+++ b/org/out_xmls.org
@@ -262,9 +262,7 @@ string inline_search_form(M)(
_db,
);
} else {
- _form = format(q"┃%s┃",
- "",
- );
+ _form = format(q"┃%s┃", "");
}
o = format(q"┃<div class="flex-menu-option">%s
</div>┃",
@@ -598,7 +596,7 @@ string inline_notes_scroll(O,M)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto inline_notes_seg(O,M)(
+Tuple!(string, string[]) inline_notes_seg(O,M)(
string _txt,
const O obj,
M doc_matters,
@@ -656,7 +654,7 @@ auto inline_notes_seg(O,M)(
writeln(__LINE__, " endnote: ", obj.metainfo.is_a, ": ", obj.text);
}
}
- auto t = tuple(
+ Tuple!(string, string[]) t = tuple(
_txt,
_endnotes,
);
@@ -930,7 +928,7 @@ string heading_scroll(O,M)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto heading_seg(O,M)(
+Tuple!(string, string[]) heading_seg(O,M)(
string _txt,
const O obj,
M doc_matters,
@@ -941,7 +939,7 @@ auto heading_seg(O,M)(
_txt = t[0];
string[] _endnotes = t[1];
string o = heading(_txt, obj, doc_matters, _xml_type);
- auto u = tuple(
+ Tuple!(string, string[]) u = tuple(
o,
_endnotes,
);
@@ -1025,7 +1023,7 @@ string para_scroll(O,M)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto para_seg(O,M)(
+Tuple!(string, string[]) para_seg(O,M)(
string _txt,
const O obj,
M doc_matters,
@@ -1036,7 +1034,7 @@ auto para_seg(O,M)(
_txt = t[0].to!string;
string[] _endnotes = t[1];
string o = para(_txt, obj, doc_matters);
- auto u = tuple(
+ Tuple!(string, string[]) u = tuple(
o,
_endnotes,
);
@@ -1107,7 +1105,7 @@ string quote_scroll(O,M)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto quote_seg(O,M)(
+Tuple!(string, string[]) quote_seg(O,M)(
string _txt,
const O obj,
M doc_matters,
@@ -1118,7 +1116,7 @@ auto quote_seg(O,M)(
_txt = t[0].to!string;
string[] _endnotes = t[1];
string o = quote(_txt, obj, doc_matters);
- auto u = tuple(
+ Tuple!(string, string[]) u = tuple(
o,
_endnotes,
);
@@ -1190,7 +1188,7 @@ string group_scroll(O,M)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto group_seg(O,M)(
+Tuple!(string, string[]) group_seg(O,M)(
string _txt,
const O obj,
M doc_matters,
@@ -1201,7 +1199,7 @@ auto group_seg(O,M)(
_txt = t[0].to!string;
string[] _endnotes = t[1];
string o = group(_txt, obj, doc_matters);
- auto u = tuple(
+ Tuple!(string, string[]) u = tuple(
o,
_endnotes,
);
@@ -1269,7 +1267,7 @@ string block_scroll(O,M)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto block_seg(O,M)(
+Tuple!(string, string[]) block_seg(O,M)(
string _txt,
const O obj,
M doc_matters,
@@ -1280,7 +1278,7 @@ auto block_seg(O,M)(
_txt = t[0].to!string;
string[] _endnotes = t[1];
string o = block(_txt, obj, doc_matters);
- auto u = tuple(
+ Tuple!(string, string[]) u = tuple(
o,
_endnotes,
);
@@ -1348,7 +1346,7 @@ string verse_scroll(O,M)(
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto verse_seg(O,M)(
+Tuple!(string, string[]) verse_seg(O,M)(
string _txt,
const O obj,
M doc_matters,
@@ -1359,7 +1357,7 @@ auto verse_seg(O,M)(
_txt = t[0].to!string;
string[] _endnotes = t[1];
string o = verse(_txt, obj, doc_matters);
- auto u = tuple(
+ Tuple!(string, string[]) u = tuple(
o,
_endnotes,
);
@@ -1443,7 +1441,7 @@ align="left|right|center"
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto tablarize(O)(
+Tuple!(string, string) tablarize(O)(
string _txt,
const O obj,
) @safe {
@@ -1453,24 +1451,24 @@ auto tablarize(O)(
string _tablenote;
foreach(row_idx, row; _table_rows) {
_table_cols = row.split(rgx.table_delimiter_col);
- _table ~= "<tr>";
- foreach(col_idx, cell; _table_cols) {
- if ((_table_cols.length == 1)
- && (_table_rows.length <= row_idx+2)) {
- _tablenote ~= cell;
- } else {
- string _col_is = (row_idx == 0 && obj.table.heading) ? "th" : "td";
- string _align = ("style=\"text-align:"
- ~ ((obj.table.column_aligns[col_idx] == "l")
- ? "left\"" : "right\""));
- _table ~= "<" ~ _col_is ~ " width=\"" ~ obj.table.column_widths[col_idx].to!string ~ "%\" " ~ _align ~ ">";
- _table ~= cell;
- _table ~= "</" ~ _col_is ~ ">";
- }
+ _table ~= "<tr>";
+ foreach(col_idx, cell; _table_cols) {
+ if ((_table_cols.length == 1)
+ && (_table_rows.length <= row_idx+2)) {
+ _tablenote ~= cell;
+ } else {
+ string _col_is = (row_idx == 0 && obj.table.heading) ? "th" : "td";
+ string _align = ("style=\"text-align:"
+ ~ ((obj.table.column_aligns[col_idx] == "l")
+ ? "left\"" : "right\""));
+ _table ~= "<" ~ _col_is ~ " width=\"" ~ obj.table.column_widths[col_idx].to!string ~ "%\" " ~ _align ~ ">";
+ _table ~= cell;
+ _table ~= "</" ~ _col_is ~ ">";
}
- _table ~= "</tr>";
}
- auto t = tuple(
+ _table ~= "</tr>";
+ }
+ Tuple!(string, string) t = tuple(
_table,
_tablenote,
);
diff --git a/org/output_show.org b/org/output_show.org
index 5d3f4f8..7ce14f2 100644
--- a/org/output_show.org
+++ b/org/output_show.org
@@ -434,7 +434,6 @@ import
std.regex,
std.stdio,
std.string,
- std.traits,
std.typecons,
std.uni,
std.utf,
diff --git a/org/spine.org b/org/spine.org
index ced7e3b..1ecf248 100644
--- a/org/spine.org
+++ b/org/spine.org
@@ -1015,7 +1015,6 @@ if ((_opt_action.debug_do)
writeln("--->\nstepX commence → (document abstraction)");
}
auto t = spineAbstraction!()(_env, program_info, _opt_action, manifest, _make_and_meta_struct);
-static assert(!isTypeTuple!(t));
static assert(t.length==2);
auto doc_abstraction = t[dAM.abstraction];
auto doc_matters = t[dAM.matters];
@@ -1231,7 +1230,6 @@ if ((_opt_action.debug_do)
}
auto _header_body_insertfilelist_imagelist
= spineRawMarkupContent!()(_opt_action, _manifest.src.path_and_fn);
-static assert(!isTypeTuple!(_header_body_insertfilelist_imagelist));
static assert(_header_body_insertfilelist_imagelist.length==4);
if ((_opt_action.debug_do)
|| (_opt_action.very_verbose)
@@ -1308,7 +1306,6 @@ auto da = docAbstraction!()(
_manifest,
true,
);
-static assert(!isTypeTuple!(da));
static assert(da.length==2);
auto doc_abstraction = da[docAbst.doc_abstract_obj]; /+ head ~ toc ~ body ~ endnotes_seg ~ glossary ~ bibliography ~ bookindex ~ blurb; +/
auto _doc_has_struct = da[docAbst.doc_has];