diff options
author | Ralph Amissah <ralph@amissah.com> | 2017-03-28 21:08:52 -0400 |
---|---|---|
committer | Ralph Amissah <ralph@amissah.com> | 2019-04-10 15:14:14 -0400 |
commit | e162e70ec5e83bf33fadc59e2375547828b81581 (patch) | |
tree | bdcb61244668b872017deea59b0ba347e1a85fe5 /org | |
parent | 0.13.8 endnotes for various types of block (diff) |
start work on block outputs
Diffstat (limited to 'org')
-rw-r--r-- | org/defaults.org | 1 | ||||
-rw-r--r-- | org/output.org | 276 |
2 files changed, 259 insertions, 18 deletions
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!("^<br>\n|<br>\n*$"); static space = ctRegex!(`[ ]`, "mg"); static spaces_line_start = ctRegex!(`^(?P<opening_spaces>[ ]+)`, "mg"); static spaces_multiple = ctRegex!(`(?P<multiple_spaces>[ ]{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"¶ <div class="substance"> + <p class="%s"> + %s + </p> +</div>¶", + obj.is_a, + _txt + ); + } else { + o = format(q"¶ <div class="substance"> + <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> + <p class="%s" id="%s"> + %s + </p> +</div>¶", + obj.obj_cite_number, + obj.obj_cite_number, + obj.is_a, + obj.obj_cite_number, + _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"¶ <div class="substance"> + <p class="%s"> + %s + </p> +</div>¶", + obj.is_a, + _txt + ); + } else { + o = format(q"¶ <div class="substance"> + <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> + <p class="%s" id="%s"> + %s + </p> +</div>¶", + obj.obj_cite_number, + obj.obj_cite_number, + obj.is_a, + obj.obj_cite_number, + _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"¶ <div class="substance"> @@ -791,7 +941,8 @@ auto nugget(O)( </p> </div>¶", obj.is_a, - obj.text + _txt + // obj.text ); } else { o = format(q"¶ <div class="substance"> @@ -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, "<br>\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"¶ <div class="substance"> @@ -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); |