diff options
Diffstat (limited to 'src/sdp/sdp.d')
-rwxr-xr-x | src/sdp/sdp.d | 179 |
1 files changed, 78 insertions, 101 deletions
diff --git a/src/sdp/sdp.d b/src/sdp/sdp.d index 4e43a67..b0e75e6 100755 --- a/src/sdp/sdp.d +++ b/src/sdp/sdp.d @@ -1,9 +1,4 @@ #!/usr/bin/env rdmd -/+ - sdp: sisu document parser - a SiSU document parser writen in D - see http://sisudoc.org. -+/ module sdp.sisu_document_parser; import sdp.conf.compile_time_info, @@ -30,7 +25,11 @@ import sdp.output.paths_source; mixin(import("version.txt")); mixin CompileTimeInfo; -/++ A SiSU document parser writen in D. +/ +/++ +name "sdp" +description "A SiSU inspired document parser writen in D." +homepage "http://sisudoc.org" ++/ void main(string[] args) { mixin SiSUrgxInit; mixin SiSUregisters; @@ -149,152 +148,115 @@ void main(string[] args) { } struct OptActions { auto assertions() { - auto _k = opts["assertions"]; - return _k; + return opts["assertions"]; } auto concordance() { - auto _k = opts["concordance"]; - return _k; + return opts["concordance"]; } auto debug_do() { - auto _k = opts["debug"]; - return _k; + return opts["debug"]; } auto digest() { - auto _k = opts["digest"]; - return _k; + return opts["digest"]; } auto docbook() { - auto _k = opts["docbook"]; - return _k; + return opts["docbook"]; } auto epub() { - auto _k = opts["epub"]; - return _k; + return opts["epub"]; } auto html() { - auto _k = opts["html"]; - return _k; + return opts["html"]; } auto html_seg() { - auto _k = opts["html-seg"]; - return _k; + return opts["html-seg"]; } auto html_scroll() { - auto _k = opts["html-scroll"]; - return _k; + return opts["html-scroll"]; } auto manifest() { - auto _k = opts["manifest"]; - return _k; + return opts["manifest"]; } auto ocn() { - auto _k = opts["ocn"]; - return _k; + return opts["ocn"]; } auto odt() { - auto _k = opts["odt"]; - return _k; + return opts["odt"]; } auto pdf() { - auto _k = opts["pdf"]; - return _k; + return opts["pdf"]; } auto postgresql() { - auto _k = opts["postgresql"]; - return _k; + return opts["postgresql"]; } auto qrcode() { - auto _k = opts["qrcode"]; - return _k; + return opts["qrcode"]; } auto sisupod() { - auto _k = opts["sisupod"]; - return _k; + return opts["sisupod"]; } auto source() { - auto _k = opts["source"]; - return _k; + return opts["source"]; } auto sqlite_discrete() { - auto _k = opts["sqlite-discrete"]; - return _k; + return opts["sqlite-discrete"]; } auto sqlite_update() { - auto _k = opts["sqlite-update"]; - return _k; + return opts["sqlite-update"]; } auto sqlite_create() { - auto _k = opts["sqlite-create"]; - return _k; + return opts["sqlite-create"]; } auto sqlite_drop() { - auto _k = opts["sqlite-drop"]; - return _k; + return opts["sqlite-drop"]; } auto text() { - auto _k = opts["text"]; - return _k; + return opts["text"]; } auto verbose() { - auto _k = opts["verbose"]; - return _k; + return opts["verbose"]; } auto xhtml() { - auto _k = opts["xhtml"]; - return _k; + return opts["xhtml"]; } auto xml_dom() { - auto _k = opts["xml-dom"]; - return _k; + return opts["xml-dom"]; } auto xml_sax() { - auto _k = opts["xml-sax"]; - return _k; + return opts["xml-sax"]; } auto section_toc() { - auto _k = opts["section_toc"]; - return _k; + return opts["section_toc"]; } auto section_body() { - auto _k = opts["section_body"]; - return _k; + return opts["section_body"]; } auto section_endnotes() { - auto _k = opts["section_endnotes"]; - return _k; + return opts["section_endnotes"]; } auto section_glossary() { - auto _k = opts["section_glossary"]; - return _k; + return opts["section_glossary"]; } auto section_biblio() { - auto _k = opts["section_biblio"]; - return _k; + return opts["section_biblio"]; } auto section_bookindex() { - auto _k = opts["section_bookindex"]; - return _k; + return opts["section_bookindex"]; } auto section_blurb() { - auto _k = opts["section_blurb"]; - return _k; + return opts["section_blurb"]; } auto backmatter() { - auto _k = opts["backmatter"]; - return _k; + return opts["backmatter"]; } auto skip_output() { - auto _k = opts["skip-output"]; - return _k; + return opts["skip-output"]; } auto languages_set() { - auto _k = settings["lang"].split(","); - return _k; + return settings["lang"].split(","); } auto output_dir_set() { - auto _k = settings["output-dir"]; - return _k; + return settings["output-dir"]; } } auto _opt_action = OptActions(); @@ -321,24 +283,28 @@ void main(string[] args) { "file not found: «" ~ sisudoc_txt_ ~ "»" ); - try { - if (exists(sisudoc_txt_)) { - contents_location_raw_ = sisudoc_txt_.readText; + if (exists(sisudoc_txt_)) { + try { + if (exists(sisudoc_txt_)) { + contents_location_raw_ = sisudoc_txt_.readText; + } } - } - catch (ErrnoException ex) { - } - catch (FileException ex) { - // Handle errors - } - if (contents_location_raw_.match(rgx.pod_content_location)) { // (file name followed by language codes \n)+ - foreach (m; contents_location_raw_.matchAll(rgx.pod_content_location)) { - foreach (n; m.captures[2].matchAll(rgx.language_codes)) { - contents_location_ ~= "media/text/" ~ n.captures[1].to!string ~ "/" ~ m.captures[1].to!string ~ "\n"; + catch (ErrnoException ex) { + } + catch (FileException ex) { + // Handle errors + } + if (contents_location_raw_.match(rgx.pod_content_location)) { // (file name followed by language codes \n)+ + foreach (m; contents_location_raw_.matchAll(rgx.pod_content_location)) { + foreach (n; m.captures[2].matchAll(rgx.language_codes)) { + contents_location_ ~= "media/text/" ~ n.captures[1].to!string ~ "/" ~ m.captures[1].to!string ~ "\n"; + } } + } else { + contents_location_ = contents_location_raw_; } - } else { // (file name with path \n)+ - contents_location_ = contents_location_raw_; + } else { + writeln("manifest not found: ", sisudoc_txt_); } auto contents_locations_arr = (cast(char[]) contents_location_).split; @@ -359,7 +325,11 @@ void main(string[] args) { } } } else if (arg.match(rgx.src_pth_sst_or_ssm)) { - _manifests ~= PathMatters!()(_opt_action, _env, arg, arg); // gather input markup source file names for processing + if (exists(arg)==0) { + writeln("ERROR >> Processing Skipped! File not found: ", arg); + } else { + _manifests ~= PathMatters!()(_opt_action, _env, arg, arg); // gather input markup source file names for processing + } } else if (arg.match(rgx.src_pth_zip)) { // fns_src ~= arg; // gather input markup source file names for processing } else { // anything remaining, unused @@ -368,7 +338,13 @@ void main(string[] args) { } if (!(_opt_action.skip_output)) { + debug(steps) { + writeln("step0 commence → (without processing files)"); + } outputHubOp!()(_opt_action); + debug(steps) { + writeln("- step0 complete"); + } } if (_manifests.length > 1) { // _manifests[0] initialized dummy element foreach(manifest; _manifests[1..$]) { @@ -413,7 +389,13 @@ void main(string[] args) { } /+ ↓ output hub +/ if (!(doc_matters.opt.action.skip_output)) { + debug(steps) { + writeln("step5 commence → (process outputs)"); + } outputHub!()(doc_abstraction, doc_matters); + debug(steps) { + writeln("- step5 complete"); + } } scope(exit) { debug(checkdoc) { @@ -433,9 +415,4 @@ void main(string[] args) { } } unittest { - /++ - name "sdp" - description "A SiSU document parser writen in D." - homepage "http://sisudoc.org" - +/ } |