From 0245c394af1a4a1400f87916bd10c398005f40da Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Tue, 14 Jun 2016 22:52:15 -0400 Subject: step4 some additional work --- org/sdp.org | 233 +++++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 174 insertions(+), 59 deletions(-) (limited to 'org/sdp.org') diff --git a/org/sdp.org b/org/sdp.org index dc56e8e..0b2fc53 100644 --- a/org/sdp.org +++ b/org/sdp.org @@ -39,6 +39,34 @@ enum ver = Version(0, 4, 0); [[./ao_defaults.org][ao_defaults]] [[./ao_output_debugs.org][ao_output_debugs]] [[./ao_read_source_files.org][ao_read_source_files]] +[[./output_hub.org][output hub]] + +**** sdp :import:sdp: +***** TODO src/sdp.d + +├── src +│   ├── sdp.d +│   └── sdp +│    ├── ao_abstract_doc_source.d +│    ├── ... +│    └── compile_time_info.d +└── views +   └── version.txt + +#+NAME: sdp_imports_use +#+BEGIN_SRC d +/+ sdp sisu document parser http://sisudoc.org +/ +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_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 + // std.conv; +#+END_SRC **** std :import:std: #+NAME: sdp_imports @@ -52,6 +80,7 @@ private import std.array, std.container, std.exception, + std.file, std.json, // std.path, std.range, @@ -65,32 +94,6 @@ private import std.conv : to; #+END_SRC -**** sdp :import:sdp: -***** TODO src/sdp.d - -├── src -│   ├── sdp.d -│   └── sdp -│    ├── ao_abstract_doc_source.d -│    ├── ... -│    └── compile_time_info.d -└── views -   └── version.txt - -#+NAME: sdp_imports_use -#+BEGIN_SRC d -/+ sdp sisu document parser +/ -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_read_source_files, // sdp/ao_read_source_files.d - ao_output_debugs, // sdp/ao_output_debugs.d - ao_rgx, // sdp/ao_rgx.d - ao_ansi_colors; // sdp/ao_ansi_colors.d - // std.conv; -#+END_SRC - **** version.txt :version: #+NAME: sdp_version_mixin @@ -108,9 +111,67 @@ mixin SiSUrgxInitFlags; mixin SiSUmarkupRaw; mixin SiSUdocAbstraction; mixin SiSUoutputDebugs; +mixin SiSUoutputHub; mixin ScreenTxtColors; #+END_SRC +*** sdp output :output: +#+NAME: sdp_args +#+BEGIN_SRC d +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, + 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"]) { + writeln("sisupod source"); + } + if (opt_action_bool["sisupod"]) { + writeln("sisupod source"); + } + if (opt_action_bool["text"]) { + writeln("text processing"); + // auto text=SDPoutput_text(); + // text.scroll(contents, bookindex_unordered_hashes, biblio, fn_src, opt_action_bool); + // // text.scroll(contents, bookindex_unordered_hashes, biblio, dochead_make, dochead_meta, fn_src, opt_action_bool); + } + 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); + } + if (opt_action_bool["epub"]) { + writeln("epub processing"); + } + if (opt_action_bool["pdf"]) { + writeln("pdf processing"); + } + if (opt_action_bool["odt"]) { + writeln("odt processing"); + } + if (opt_action_bool["sqlite"]) { + writeln("sqlite processing"); + } + if (opt_action_bool["postgresql"]) { + writeln("pgsql processing"); + } + return return_; + } +} +#+END_SRC + *** init :init: #+NAME: sdp_args @@ -118,6 +179,7 @@ mixin ScreenTxtColors; auto raw = MarkupRaw(); auto abs = Abstraction(); auto dbg = SDPoutputDebugs(); +auto output = SDPoutput(); /+ struct DocumentParts { string[string][] contents; @@ -169,17 +231,52 @@ look into using getopt #+BEGIN_SRC d bool[string] opt_action_bool = [ - "assertions" : false, - "html" : false, - "no_obj_cite_number" : false, - "verbose" : false, + "assertions" : false, + "concordance" : false, + "digest" : false, + "docbook" : false, + "epub" : false, + "html" : false, + "manifest" : false, + "no_ocn" : false, + "odt" : false, + "pdf" : false, + "postgresql" : false, + "qrcode" : false, + "sisupod" : false, + "source" : false, + "sqlite" : false, + "text" : false, + "verbose" : false, + "xhtml" : false, + "xml_dom" : false, + "xml_sax" : false, ]; auto helpInfo = getopt(args, std.getopt.config.passThrough, - "assert", "--assert set optional assertions on", &opt_action_bool["assertions"], - "html", "--html process html output", &opt_action_bool["html"], - "no-ocn", "--no-ocn suppress object cite number output", &opt_action_bool["no_obj_cite_number"], - "verbose|v", "--verbose output to terminal", &opt_action_bool["verbose"], + "assert", "--assert set optional assertions on", &opt_action_bool["assertions"], + "concordance", "--concordance file for document", &opt_action_bool["concordance"], + "digest", "--digest hash digest for each object", &opt_action_bool["digest"], + "docbook", "--docbook process docbook output", &opt_action_bool["docbook"], + "epub", "--epub process epub output", &opt_action_bool["epub"], + "html", "--html process html output", &opt_action_bool["html"], + "manifest", "--manifest process manifest output", &opt_action_bool["manifest"], + "no-ocn", "--no-ocn suppress object cite numbers", &opt_action_bool["no_ocn"], + "odf", "--odf process odf:odt output", &opt_action_bool["odt"], + "odt", "--odt process odf:odt output", &opt_action_bool["odt"], + "pdf", "--pdf process pdf output", &opt_action_bool["pdf"], + "pg", "--pg process postgresql output", &opt_action_bool["postgresql"], + "postgresql", "--postgresql process postgresql output", &opt_action_bool["postgresql"], + "qrcode", "--qrcode with document metadata", &opt_action_bool["qrcode"], + "sisupod", "--sisupod sisupod source content bundled", &opt_action_bool["sisupod"], + "source", "--source markup source text content", &opt_action_bool["source"], + "sqlite", "--sqlite process sqlite output", &opt_action_bool["sqlite"], + "text", "--text process text output", &opt_action_bool["text"], + "txt", "--txt process text output", &opt_action_bool["text"], + "verbose|v", "--verbose output to terminal", &opt_action_bool["verbose"], + "xhtml", "--xhtml process xhtml output", &opt_action_bool["xhtml"], + "xml-dom", "--xml-dom process xml dom output", &opt_action_bool["xml_dom"], + "xml-sax", "--xml-sax process xml sax output", &opt_action_bool["xml_sax"], ); if (helpInfo.helpWanted) { defaultGetoptPrinter("Some information about the program.", helpInfo.options); @@ -195,7 +292,7 @@ foreach(arg; args) { } #+END_SRC -** loop each file [+2] :loop:files: +** each file (loop) [+2] :loop:files: *** filename provided [+1] :file:process: **** loop scope :scope: #+NAME: sdp_each_file_do @@ -240,8 +337,7 @@ auto sourcefile_content = #+NAME: sdp_each_file_do #+BEGIN_SRC d /+ ↓ porcess document, return abstraction as tuple +/ -auto t = - abs.abstract_doc_source(sourcefile_content); +auto t = abs.abstract_doc_source(sourcefile_content); static assert(!isTypeTuple!(t)); auto doc_ao_contents = t[0]; // contents ~ endnotes ~ bookindex; // static assert(!isIterable!(doc_ao_contents)); @@ -260,16 +356,32 @@ auto doc_ao_biblio = t[4]; debug(checkdoc) { // checkbook & dumpdoc dbg.abstract_doc_source_debugs( doc_ao_contents, - doc_ao_make_json, - doc_ao_metadata_json, doc_ao_bookindex_unordered_hashes, doc_ao_biblio, + doc_ao_make_json, + doc_ao_metadata_json, fn_src, opt_action_bool ); } #+END_SRC +**** TODO process outputs :outputs: +***** [#A] html :html: +#+NAME: sdp_each_file_do +#+BEGIN_SRC d +/+ ↓ output hub +/ +output.hub( + doc_ao_contents, + doc_ao_bookindex_unordered_hashes, + doc_ao_biblio, + doc_ao_make_json, + doc_ao_metadata_json, + fn_src, + opt_action_bool +); +#+END_SRC + **** on exit :scope:exit: #+NAME: sdp_each_file_do #+BEGIN_SRC d @@ -304,31 +416,13 @@ break; ** sdp :sdp.d: *** TODO src/sdp.d -├── src -│   ├── sdp.d -│   └── sdp -│    ├── ao_abstract_doc_source.d -│    ├── ... -│    └── compile_time_info.d -├── views -│   └── version.txt - -├── src -│   ├── sdp -│   │   ├── ao_abstract_doc_source.d -│   │   ├── ... -│   │   └── compile_time_info.d -│   └── sdp.d -├── views -│   └── version.txt - #+BEGIN_SRC d :tangle ../src/sdp.d :shebang #!/usr/bin/env rdmd /+ sdp sdp.d +/ -<> <> +<> <> mixin CompileTimeInfo; mixin RgxInit; @@ -346,8 +440,29 @@ void main(string[] args) { } #+END_SRC +├── src +│   ├── sdp.d +│   └── sdp +│    ├── ao_abstract_doc_source.d +│    ├── ... +│    └── compile_time_info.d +├── views +│   └── version.txt + +├── src +│   ├── sdp +│   │   ├── ao_abstract_doc_source.d +│   │   ├── ... +│   │   └── compile_time_info.d +│   └── sdp.d +├── views +│   └── version.txt + * TODO work on -- figure out best program dir structure, issue with rdmd +** program dir structure +figure out best program dir structure for dub and compilers, issue with rdmd + +** sisu file structure |---------------------+------------------------------------------+------------------------+--------| | header | sisu /header markup/ | markup | | -- cgit v1.2.3