diff options
Diffstat (limited to 'org')
| -rw-r--r-- | org/output.org | 136 | 
1 files changed, 67 insertions, 69 deletions
| diff --git a/org/output.org b/org/output.org index 48fea4f..9c23caa 100644 --- a/org/output.org +++ b/org/output.org @@ -29,7 +29,6 @@ template outputHub() {      std.container,      std.exception,      std.getopt, -    std.json,      std.process,      std.stdio,      std.file, @@ -57,9 +56,7 @@ template outputHub() {        writeln("source");      }      if (doc_matters.opt_action_bool["sisupod"]) { -      mixin SiSUpod; -      auto sisupod=SiSUpod(); -      sisupod.sisupod_assemble(doc_matters.source_filename); +      SiSUpod!()(doc_matters.source_filename);        writeln("sisupod source");      }      if (doc_matters.opt_action_bool["text"]) { @@ -69,41 +66,15 @@ template outputHub() {        // text.scroll(contents, bookindex_unordered_hashes, biblio, dochead_make, dochead_meta, fn_src, opt_action_bool);      }      if (doc_matters.opt_action_bool["html"]) { -      mixin outputHTML; -      auto html=outputHTML(); -      html.css_write; -      html.scroll( -        contents, -        doc_matters, -      ); -      html.seg( -        contents, -        doc_matters, -      ); +      outputHTML!().scroll(contents,doc_matters); +      outputHTML!().seg(contents,doc_matters);      } else if(doc_matters.opt_action_bool["html_seg"]) { -      mixin outputHTML; -      auto html=outputHTML(); -      html.css_write; -      html.seg( -        contents, -        doc_matters, -      ); +      outputHTML!().seg(contents,doc_matters);      } else if(doc_matters.opt_action_bool["html_scroll"]) { -      mixin outputHTML; -      auto html=outputHTML(); -      html.css_write; -      html.scroll( -        contents, -        doc_matters, -      ); +      outputHTML!().scroll(contents,doc_matters);      }      if (doc_matters.opt_action_bool["epub"]) { -      mixin outputEPub; -      auto epub=outputEPub(); -      epub.doc_content(         // consolidate -        contents, -        doc_matters, -      ); +      outputEPub!()(contents, doc_matters);        // epub.css_write;        // writeln("epub processing");      } @@ -128,17 +99,44 @@ template outputHub() {  #+END_SRC  * output functions                                                   :output: +** output imports + +#+name: output_imports +#+BEGIN_SRC d +private import +  std.algorithm, +  std.array, +  std.container, +  std.exception, +  std.file, +  std.getopt, +  std.json, +  std.process, +  std.stdio, +  std.path, +  std.range, +  std.regex, +  std.string, +  std.traits, +  std.typecons, +  std.uni, +  std.utf, +  ao_defaults; +import +  ao_rgx, +  output_xhtmls; +#+END_SRC +  ** sisupod                                                         :sisupod:  *** sisupod template                                             :template:  #+BEGIN_SRC d :tangle ../src/sdp/source_sisupod.d  template SiSUpod() { -  struct SiSUpod { -    <<source_sisupod_mkdirs>> -    <<source_sisupod_config>> -    <<source_sisupod_text>> -    <<source_sisupod_images>> -  } +  <<output_imports>> +  <<source_sisupod_mkdirs>> +  <<source_sisupod_config>> +  <<source_sisupod_text>> +  <<source_sisupod_images>>  }  #+END_SRC @@ -146,12 +144,13 @@ template SiSUpod() {  #+name: source_sisupod_config  #+BEGIN_SRC d -void sisupod_assemble(S)( +void SiSUpod(S)(    S fn_src,  ) {    debug(asserts){      static assert(is(typeof(fn_src) == string));    } +  mixin SiSUrgxInit;    mixin SiSUpaths;    auto pth_sisupod = SiSUpodPaths();    mixin SiSUlanguageCodes; @@ -525,18 +524,17 @@ auto endnote(O)(      }  #+END_SRC -*** html output [#A]                                                 :html: +*** html [#A]                                                        :html:  **** html template                                              :template:  #+BEGIN_SRC d :tangle ../src/sdp/output_html.d  template outputHTML() { -  struct outputHTML { -    mixin outputXHTMLs; -    <<output_html>> -    <<output_html_scroll>> -    <<output_html_seg>> -    <<output_html_css>> -  } +  <<output_imports>> +  mixin outputXHTMLs; +  <<output_html>> +  <<output_html_scroll>> +  <<output_html_seg>> +  <<output_html_css>>  }  #+END_SRC @@ -576,6 +574,7 @@ void scroll(C,T)(    auto ref const C         contents,    auto ref T               doc_matters,  ) { +  mixin SiSUrgxInit;    auto xhtml_format = outputXHTMLs();    auto rgx = Rgx();    string[] doc_html; @@ -698,6 +697,8 @@ void seg_write_output_files(M,C)(    debug(asserts){      static assert(is(typeof(doc_html)      == string[][string]));    } +  mixin SiSUrgxInit; +  auto rgx = Rgx();    mixin SiSUpaths;    auto pth_html = HtmlPaths();    auto xhtml_format = outputXHTMLs(); @@ -728,8 +729,9 @@ void seg(C,M)(    auto ref const C         contents,    auto ref M               doc_matters,  ) { -  auto xhtml_format = outputXHTMLs(); +  mixin SiSUrgxInit;    auto rgx = Rgx(); +  auto xhtml_format = outputXHTMLs();    string[][string] doc_html;    string[] doc;    string segment_filename; @@ -2189,15 +2191,14 @@ auto css_write() {  #+BEGIN_SRC d :tangle ../src/sdp/output_epub.d  template outputEPub() { -  struct outputEPub { -    mixin InternalMarkup; -    mixin outputXHTMLs; -    <<output_epub_fixed>> -    <<output_epub_constructs>> -    <<output_epub_xhtml>> -    <<output_epub_xhtml_seg>> -    <<output_epub_css>> -  } +  <<output_imports>> +  mixin InternalMarkup; +  mixin outputXHTMLs; +  <<output_epub_fixed>> +  <<output_epub_constructs>> +  <<output_epub_xhtml>> +  <<output_epub_xhtml_seg>> +  <<output_epub_css>>  }  #+END_SRC @@ -2237,11 +2238,7 @@ string epub_container_xml() {  #+name: output_epub_constructs  #+BEGIN_SRC d -string epub_oebps_content( -  // string[string][string]   dochead_meta, -) { -  // string[] toc; -  // int counter = 0; +string epub_oebps_content(C,M)(C contents, M doc_matters) {    string uuid = "18275d951861c77f78acd05672c9906924c59f18a2e0ba06dad95959693e9bd8"; // TODO shared elsewhere    string content = format(q"ΒΆ<?xml version='1.0' encoding='utf-8'?>  <?xml version='1.0' encoding='utf-8'?> @@ -2287,7 +2284,7 @@ string epub_oebps_content(  #+name: output_epub_constructs  #+BEGIN_SRC d -string epub_oebps_toc() { +string epub_oebps_toc(C,M)(C contents, M doc_matters) {    int counter = 0;    string uuid = "18275d951861c77f78acd05672c9906924c59f18a2e0ba06dad95959693e9bd8"; // TODO shared elsewhere    auto markup = InlineMarkup(); @@ -2373,10 +2370,11 @@ obj.segment_anchor_tag,   // lev < 4 [no link]; lev == 4 [filename] markup.xhtml  #+name: output_epub_xhtml_seg  #+BEGIN_SRC d -void doc_content(C,T)( +void outputEPub(C,T)(    auto ref const C         contents,    auto ref T               doc_matters,  ) { +  mixin SiSUrgxInit;    auto xhtml_format = outputXHTMLs();    auto rgx = Rgx();    // string[] toc; @@ -2386,8 +2384,8 @@ void doc_content(C,T)(    string[] top_level_headings = ["","","",""];    auto mimetypes = epub_mimetypes;    auto meta_inf_container_xml = epub_container_xml; -  auto oebps_toc_ncx = epub_oebps_toc; -  auto oebps_content_opf = epub_oebps_content; +  auto oebps_toc_ncx = epub_oebps_toc(contents, doc_matters); +  auto oebps_content_opf = epub_oebps_content(contents, doc_matters);    foreach (part; doc_matters.keys_seq_seg) {      foreach (obj; contents[part]) {        if (obj.is_a == "heading") { | 
