From e162e70ec5e83bf33fadc59e2375547828b81581 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Tue, 28 Mar 2017 21:08:52 -0400 Subject: start work on block outputs --- org/defaults.org | 1 + org/output.org | 276 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 259 insertions(+), 18 deletions(-) (limited to 'org') diff --git a/org/defaults.org b/org/defaults.org index b666c30..cb4ee80 100644 --- a/org/defaults.org +++ b/org/defaults.org @@ -1184,6 +1184,7 @@ template SiSUlanguageCodes() { #+name: prgmkup_rgx #+BEGIN_SRC d static newline = ctRegex!("\n", "mg"); +static strip_br = ctRegex!("^
\n|
\n*$"); static space = ctRegex!(`[ ]`, "mg"); static spaces_line_start = ctRegex!(`^(?P[ ]+)`, "mg"); static spaces_multiple = ctRegex!(`(?P[ ]{2,})`, "mg"); // could be issues for endnotes diff --git a/org/output.org b/org/output.org index c59b037..e84796d 100644 --- a/org/output.org +++ b/org/output.org @@ -776,13 +776,163 @@ auto para_seg(O)( } #+END_SRC -**** nugget +**** quote + +***** quote + +#+name: xhtml_format_objects +#+BEGIN_SRC d +auto quote(O)( + auto return ref const O obj, + string _txt, +) { + _txt = font_face(_txt); + string o; + if (obj.obj_cite_number.empty) { + o = format(q"¶
+

+ %s +

+
¶", + obj.is_a, + _txt + ); + } else { + o = format(q"¶
+ +

+ %s +

+
¶", + obj.obj_cite_number, + obj.obj_cite_number, + obj.is_a, + obj.obj_cite_number, + _txt + ); + } + return o; +} +#+END_SRC + +***** scroll + +#+name: xhtml_format_objects +#+BEGIN_SRC d +auto quote_scroll(O)( + auto return ref const O obj, + string _suffix = ".html", +) { + auto tags = _xhtml_anchor_tags(obj.anchor_tags); + string _txt = inline_markup_scroll(obj, _suffix); // issue + string o = quote(obj, _txt); + return o; +} +#+END_SRC +***** seg + +#+name: xhtml_format_objects +#+BEGIN_SRC d +auto quote_seg(O)( + auto return ref const O obj, + string _suffix = ".html", +) { + auto t = inline_markup_seg(obj, _suffix); + string _txt = to!string(t[0]); + string[] _endnotes = t[1]; + string o = quote(obj, _txt); + auto u = tuple( + o, + _endnotes, + ); + return u; +} +#+END_SRC + +**** group + +***** group + +#+name: xhtml_format_objects +#+BEGIN_SRC d +auto group(O)( + auto return ref const O obj, + string _txt, +) { + _txt = font_face(_txt); + string o; + if (obj.obj_cite_number.empty) { + o = format(q"¶
+

+ %s +

+
¶", + obj.is_a, + _txt + ); + } else { + o = format(q"¶
+ +

+ %s +

+
¶", + obj.obj_cite_number, + obj.obj_cite_number, + obj.is_a, + obj.obj_cite_number, + _txt + ); + } + return o; +} +#+END_SRC + +***** scroll + +#+name: xhtml_format_objects +#+BEGIN_SRC d +auto group_scroll(O)( + auto return ref const O obj, + string _suffix = ".html", +) { + auto tags = _xhtml_anchor_tags(obj.anchor_tags); + string _txt = inline_markup_scroll(obj, _suffix); // issue + string o = group(obj, _txt); + return o; +} +#+END_SRC +***** seg #+name: xhtml_format_objects #+BEGIN_SRC d -auto nugget(O)( +auto group_seg(O)( auto return ref const O obj, + string _suffix = ".html", ) { + auto t = inline_markup_seg(obj, _suffix); + string _txt = to!string(t[0]); + string[] _endnotes = t[1]; + string o = group(obj, _txt); + auto u = tuple( + o, + _endnotes, + ); + return u; +} +#+END_SRC + +**** block + +***** block + +#+name: xhtml_format_objects +#+BEGIN_SRC d +auto block(O)( + auto return ref const O obj, + string _txt, +) { + _txt = font_face(_txt); string o; if (obj.obj_cite_number.empty) { o = format(q"¶
@@ -791,7 +941,8 @@ auto nugget(O)(

¶", obj.is_a, - obj.text + _txt + // obj.text ); } else { o = format(q"¶
@@ -804,25 +955,63 @@ auto nugget(O)( obj.obj_cite_number, obj.is_a, obj.obj_cite_number, - obj.text + _txt + // obj.text ); } return o; } #+END_SRC +***** scroll + +#+name: xhtml_format_objects +#+BEGIN_SRC d +auto block_scroll(O)( + auto return ref const O obj, + string _suffix = ".html", +) { + auto tags = _xhtml_anchor_tags(obj.anchor_tags); + string _txt = inline_markup_scroll(obj, _suffix); // issue + string o = block(obj, _txt); + return o; +} +#+END_SRC +***** seg + +#+name: xhtml_format_objects +#+BEGIN_SRC d +auto block_seg(O)( + auto return ref const O obj, + string _suffix = ".html", +) { + auto t = inline_markup_seg(obj, _suffix); + string _txt = to!string(t[0]); + string[] _endnotes = t[1]; + string o = block(obj, _txt); + auto u = tuple( + o, + _endnotes, + ); + return u; +} +#+END_SRC + **** poem verse +***** verse #+name: xhtml_format_objects #+BEGIN_SRC d auto verse(O)( // using code from code block, review auto return ref const O obj, + string _txt, ) { - string _txt = obj.text; + _txt = font_face(_txt); _txt = (_txt) .replaceAll(rgx.newline, "
\n") .replaceAll(rgx.two_spaces, " " ~ " " ~ " " ~ " ") - .replaceAll(rgx.nbsp_and_space, " " ~ " "); + .replaceAll(rgx.nbsp_and_space, " " ~ " ") + .replaceAll(rgx.strip_br, ""); string o; if (obj.obj_cite_number.empty) { o = format(q"¶
@@ -851,6 +1040,41 @@ auto verse(O)( // using code from code block, review } #+END_SRC +***** scroll + +#+name: xhtml_format_objects +#+BEGIN_SRC d +auto verse_scroll(O)( + auto return ref const O obj, + string _suffix = ".html", +) { + auto tags = _xhtml_anchor_tags(obj.anchor_tags); + string _txt = inline_markup_scroll(obj, _suffix); // issue + string o = verse(obj, _txt); + return o; +} +#+END_SRC + +***** seg + +#+name: xhtml_format_objects +#+BEGIN_SRC d +auto verse_seg(O)( + auto return ref const O obj, + string _suffix = ".html", +) { + auto t = inline_markup_seg(obj, _suffix); + string _txt = to!string(t[0]); + string[] _endnotes = t[1]; + string o = verse(obj, _txt); + auto u = tuple( + o, + _endnotes, + ); + return u; +} +#+END_SRC + **** code #+name: xhtml_format_objects_code @@ -1070,18 +1294,18 @@ void scroll(D,I)( case "block": switch (obj.is_a) { case "quote": - doc_html ~= xhtml_format.nugget(obj); + doc_html ~= xhtml_format.quote_scroll(obj); break; case "group": - doc_html ~= xhtml_format.nugget(obj); + doc_html ~= xhtml_format.group_scroll(obj); break; case "block": - doc_html ~= xhtml_format.nugget(obj); + doc_html ~= xhtml_format.block_scroll(obj); break; case "poem": break; case "verse": - doc_html ~= xhtml_format.verse(obj); + doc_html ~= xhtml_format.verse_scroll(obj, suffix); break; case "code": doc_html ~= xhtml_format.code(obj); @@ -1304,18 +1528,26 @@ void seg(D,I)( case "block": switch (obj.is_a) { case "quote": - doc_html[segment_filename] ~= xhtml_format.nugget(obj); + auto t = xhtml_format.quote_seg(obj, suffix); + doc_html[segment_filename] ~= to!string(t[0]); + doc_html_endnotes[segment_filename] ~= t[1]; break; case "group": - doc_html[segment_filename] ~= xhtml_format.nugget(obj); + auto t = xhtml_format.group_seg(obj, suffix); + doc_html[segment_filename] ~= to!string(t[0]); + doc_html_endnotes[segment_filename] ~= t[1]; break; case "block": - doc_html[segment_filename] ~= xhtml_format.nugget(obj); + auto t = xhtml_format.block_seg(obj, suffix); + doc_html[segment_filename] ~= to!string(t[0]); + doc_html_endnotes[segment_filename] ~= t[1]; break; case "poem": break; case "verse": - doc_html[segment_filename] ~= xhtml_format.verse(obj); + auto t = xhtml_format.verse_seg(obj, suffix); + doc_html[segment_filename] ~= to!string(t[0]); + doc_html_endnotes[segment_filename] ~= t[1]; // work on break; case "code": doc_html[segment_filename] ~= xhtml_format.code(obj); @@ -2588,18 +2820,26 @@ void outputEPub(D,I)( case "block": switch (obj.is_a) { case "quote": - doc_epub[segment_filename] ~= xhtml_format.nugget(obj); + auto t = xhtml_format.quote_seg(obj, suffix); + doc_epub[segment_filename] ~= to!string(t[0]); + doc_epub_endnotes[segment_filename] ~= t[1]; break; case "group": - doc_epub[segment_filename] ~= xhtml_format.nugget(obj); + auto t = xhtml_format.group_seg(obj, suffix); + doc_epub[segment_filename] ~= to!string(t[0]); + doc_epub_endnotes[segment_filename] ~= t[1]; break; case "block": - doc_epub[segment_filename] ~= xhtml_format.nugget(obj); + auto t = xhtml_format.block_seg(obj, suffix); + doc_epub[segment_filename] ~= to!string(t[0]); + doc_epub_endnotes[segment_filename] ~= t[1]; break; case "poem": break; case "verse": - doc_epub[segment_filename] ~= xhtml_format.nugget(obj); + auto t = xhtml_format.verse_seg(obj, suffix); + doc_epub[segment_filename] ~= to!string(t[0]); + doc_epub_endnotes[segment_filename] ~= t[1]; break; case "code": doc_epub[segment_filename] ~= xhtml_format.code(obj); -- cgit v1.2.3