diff options
Diffstat (limited to 'src/sdp.d')
| -rwxr-xr-x | src/sdp.d | 81 | 
1 files changed, 45 insertions, 36 deletions
| @@ -8,11 +8,12 @@ import    compile_time_info,          // sdp/compile_time_info.d    ao_abstract_doc_source,     // sdp/ao_abstract_doc_source.d    ao_defaults,                // sdp/ao_defaults.d +  ao_header_extract,          // sdp/ao_header_extract.d    ao_read_source_files,       // sdp/ao_read_source_files.d    ao_output_debugs,           // sdp/ao_output_debugs.d -  output_hub,                 // output_hub.d    ao_rgx,                     // sdp/ao_rgx.d -  ao_ansi_colors;             // sdp/ao_ansi_colors.d +  ao_ansi_colors,             // sdp/ao_ansi_colors.d +  output_hub;                 // output_hub.d    // std.conv;  /+ sdp  sisu document parser +/  private import @@ -40,28 +41,19 @@ mixin CompileTimeInfo;  mixin RgxInit;  void main(string[] args) { -  mixin SiSUheader; -  mixin SiSUbiblio; -  mixin SiSUrgxInitFlags; -  mixin SiSUmarkupRaw; -  mixin SiSUdocAbstraction; -  mixin SiSUoutputDebugs; -  mixin SiSUoutputHub; -  mixin ScreenTxtColors;    struct SDPoutput {      auto hub(S)(        auto ref const S         contents,        string[][string][string] bookindex_unordered_hashes,        JSONValue[]              biblio, -      JSONValue[string]        dochead_make, -      JSONValue[string]        dochead_meta, +      // JSONValue[string]        dochead_make_json, +      // JSONValue[string]        dochead_meta_json,        string                   fn_src,        bool[string]             opt_action_bool      ) {        mixin ScreenTxtColors;        mixin RgxInit;        mixin SiSUoutputHub; -      // mixin SiSUoutput;        auto rgx = Rgx();        uint return_ = 0;        if (opt_action_bool["source"]) { @@ -79,8 +71,8 @@ void main(string[] args) {        if (opt_action_bool["html"]) {          auto html=SDPoutputHTML();          html.css_write; -        // html.scroll(contents, bookindex_unordered_hashes, biblio, fn_src, opt_action_bool); -        html.scroll(contents, bookindex_unordered_hashes, biblio, dochead_make, dochead_meta, fn_src, opt_action_bool); +        html.scroll(contents, bookindex_unordered_hashes, biblio, fn_src, opt_action_bool); +        // html.scroll(contents, bookindex_unordered_hashes, biblio, dochead_make_json, dochead_meta_json, fn_src, opt_action_bool);        }        if (opt_action_bool["epub"]) {          writeln("epub processing"); @@ -100,14 +92,25 @@ void main(string[] args) {        return return_;      }    } +  mixin SiSUheaderSkel; +  mixin SiSUheaderExtract; +  mixin SiSUbiblio; +  mixin SiSUrgxInitFlags; +  // mixin SiSUconfiguration; +  mixin SiSUmarkupRaw; +  mixin SiSUdocAbstraction; +  mixin SiSUoutputDebugs; +  mixin SiSUoutputHub; +  mixin ScreenTxtColors;    auto raw = MarkupRaw(); +  auto head = HeaderDocMetadataMakeJson();    auto abs = Abstraction();    auto dbg = SDPoutputDebugs();    auto output = SDPoutput();    /+    struct DocumentParts {      string[string][] contents; -    JSONValue[string] metadata_json; +    JSONValue[string] meta_json;      JSONValue[string] make_json;      string[][string][string] bookindex_unordered_hashes;      JSONValue[] biblio; @@ -120,8 +123,7 @@ void main(string[] args) {    scope(success) {      debug(checkdoc) {        writefln( -        "%s~ run complete, ok ~ %s (sdp-%s.%s.%s, %s v%s, %s %s)", -        scr_txt_color["cyan"], scr_txt_color["off"], +        "~ run complete, ok ~ (sdp-%s.%s.%s, %s v%s, %s %s)",          ver.major, ver.minor, ver.patch,          __VENDOR__, __VERSION__,          bits, os, @@ -203,10 +205,7 @@ void main(string[] args) {      if (!empty(fn_src)) {        scope(success) {          debug(checkdoc) { -          writefln( -            "%s~ document complete, ok ~%s", -            scr_txt_color["green"], scr_txt_color["off"], -          ); +          writeln("~ document complete, ok ~");          }          // stderr.writeln("0");        } @@ -226,17 +225,27 @@ void main(string[] args) {          "not a sisu markup filename"        );        /+ ↓ read file +/ -      auto sourcefile_content = -        raw.sourceContent(fn_src); +      auto header_and_content_tuple = raw.sourceContent(fn_src); +      static assert(!isTypeTuple!(header_and_content_tuple)); +      auto header = header_and_content_tuple[0]; +      auto sourcefile_content = header_and_content_tuple[1]; +      debug(header_and_content) { +        writeln(header); +        writeln(header_and_content_tuple.length); +        writeln(sourcefile_content[0]); +      } +      /+ ↓ headers metadata & make +/ +      auto header_content = head.headerContentJSON(header); +      static assert(!isTypeTuple!(header_content)); +      auto dochead_make_json = header_content[0]; +      auto dochead_meta_json = header_content[1];        /+ ↓ porcess document, return abstraction as tuple +/ -      auto t = abs.abstract_doc_source(sourcefile_content); +      auto t = abs.abstract_doc_source(sourcefile_content, dochead_make_json, dochead_meta_json);        static assert(!isTypeTuple!(t));        auto doc_ao_contents = t[0]; // contents ~ endnotes ~ bookindex;        // static assert(!isIterable!(doc_ao_contents)); -      auto doc_ao_metadata_json = t[1]; -      auto doc_ao_make_json = t[2]; -      auto doc_ao_bookindex_unordered_hashes = t[3]; -      auto doc_ao_biblio = t[4]; +      auto doc_ao_bookindex_unordered_hashes = t[1]; +      auto doc_ao_biblio = t[2];        // destroy(t);        /+ ↓ document parts +/        debug(checkdoc) { // checkbook & dumpdoc @@ -244,8 +253,8 @@ void main(string[] args) {            doc_ao_contents,            doc_ao_bookindex_unordered_hashes,            doc_ao_biblio, -          doc_ao_make_json, -          doc_ao_metadata_json, +          dochead_make_json, +          dochead_meta_json,            fn_src,            opt_action_bool          ); @@ -255,8 +264,8 @@ void main(string[] args) {          doc_ao_contents,          doc_ao_bookindex_unordered_hashes,          doc_ao_biblio, -        doc_ao_make_json, -        doc_ao_metadata_json, +        // doc_ao_make_json, +        // doc_ao_meta_json,          fn_src,          opt_action_bool        ); @@ -270,9 +279,9 @@ void main(string[] args) {          destroy(sourcefile_content);          destroy(t);          destroy(doc_ao_contents); -        destroy(doc_ao_make_json); -        destroy(doc_ao_metadata_json); -        destroy(doc_ao_bookindex_unordered_hashes); +        // destroy(doc_ao_make_json); +        // destroy(doc_ao_meta_json); +        // destroy(doc_ao_bookindex_unordered_hashes);          destroy(doc_ao_biblio);          destroy(fn_src);        } | 
