diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/sdp/ao_rgx.d | 1 | ||||
| -rw-r--r-- | src/sdp/output_epub.d | 16 | ||||
| -rw-r--r-- | src/sdp/output_html.d | 24 | ||||
| -rw-r--r-- | src/sdp/output_rgx.d | 1 | ||||
| -rw-r--r-- | src/sdp/output_xhtmls.d | 170 | 
5 files changed, 195 insertions, 17 deletions
| diff --git a/src/sdp/ao_rgx.d b/src/sdp/ao_rgx.d index 44e1be4..0844a5f 100644 --- a/src/sdp/ao_rgx.d +++ b/src/sdp/ao_rgx.d @@ -184,6 +184,7 @@ template SiSUrgxInit() {      auto language_code_and_filename                                    =         ctRegex!("(am|bg|bn|br|ca|cs|cy|da|de|el|en|eo|es|et|eu|fi|fr|ga|gl|he|hi|hr|hy|ia|is|it|ja|ko|la|lo|lt|lv|ml|mr|nl|no|nn|oc|pl|pt|pt_BR|ro|ru|sa|se|sk|sl|sq|sr|sv|ta|te|th|tk|tr|uk|ur|vi|zh)/[A-Za-z0-9._-].+?[.](?:sst|ssm)$");      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/src/sdp/output_epub.d b/src/sdp/output_epub.d index 2cbe885..0cc3a31 100644 --- a/src/sdp/output_epub.d +++ b/src/sdp/output_epub.d @@ -275,18 +275,26 @@ template outputEPub() {              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); diff --git a/src/sdp/output_html.d b/src/sdp/output_html.d index 9e66311..ba6adc8 100644 --- a/src/sdp/output_html.d +++ b/src/sdp/output_html.d @@ -81,18 +81,18 @@ template outputHTML() {            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); @@ -302,18 +302,26 @@ template outputHTML() {              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); diff --git a/src/sdp/output_rgx.d b/src/sdp/output_rgx.d index 9959590..0a5dcbb 100644 --- a/src/sdp/output_rgx.d +++ b/src/sdp/output_rgx.d @@ -5,6 +5,7 @@ template SiSUoutputRgxInit() {    private import defaults;    struct Rgx {      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/src/sdp/output_xhtmls.d b/src/sdp/output_xhtmls.d index f371121..2a86d4c 100644 --- a/src/sdp/output_xhtmls.d +++ b/src/sdp/output_xhtmls.d @@ -419,9 +419,65 @@ template outputXHTMLs() {        );        return u;      } -    auto nugget(O)( +    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; +    } +    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; +    } +    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; +    } +    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"> @@ -430,7 +486,7 @@ template outputXHTMLs() {        </p>      </div>¶",            obj.is_a, -          obj.text +          _txt          );        } else {          o = format(q"¶  <div class="substance"> @@ -443,19 +499,100 @@ template outputXHTMLs() {            obj.obj_cite_number,            obj.is_a,            obj.obj_cite_number, -          obj.text +          _txt          );        }        return o;      } +    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; +    } +    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; +    } +    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"> +      <p class="%s"> +        %s +      </p> +    </div>¶", +          obj.is_a, +          _txt +          // obj.text +        ); +      } 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 +          // obj.text +        ); +      } +      return o; +    } +    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; +    } +    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; +    }      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"> @@ -482,6 +619,29 @@ template outputXHTMLs() {        }        return o;      } +    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; +    } +    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; +    }      auto tablarize(O)(        auto return ref const O    obj,        string                     _txt, | 
