From 2dd7d2083c23fe9e79a984c534c2283fc4d7e581 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Thu, 20 Jun 2019 13:45:58 -0400 Subject: harvest reorganized --- src/doc_reform/doc_reform.d | 678 ++------------------------------------------ 1 file changed, 25 insertions(+), 653 deletions(-) (limited to 'src/doc_reform/doc_reform.d') diff --git a/src/doc_reform/doc_reform.d b/src/doc_reform/doc_reform.d index 550ee28..d48851b 100755 --- a/src/doc_reform/doc_reform.d +++ b/src/doc_reform/doc_reform.d @@ -62,6 +62,8 @@ import std.process; import doc_reform.meta, + doc_reform.meta.metadoc_harvests_authors, + doc_reform.meta.metadoc_harvests_topics, doc_reform.meta.metadoc_summary, doc_reform.meta.metadoc_harvest, doc_reform.meta.metadoc_from_src, @@ -91,26 +93,7 @@ void main(string[] args) { mixin DocReformBiblio; mixin DocReformRgxInitFlags; mixin outputHub; - struct Harvest { - string title = ""; - string[] author_arr = []; - string author = ""; - string author_surname = ""; - string author_surname_fn = ""; - string language = ""; - string language_original = ""; - string uid = ""; - string date_published = ""; - string[] topic_register_arr = []; - string path_html_seg = ""; - string path_html_scroll = ""; - string path_epub = ""; - string url_html_seg = ""; - string url_html_scroll = ""; - string url_epub = ""; - } - Harvest harvested; - Harvest[] harvests; + auto hvst = DocReformHarvest!(); string flag_action; string arg_unrecognized; enum dAM { abstraction, matters } @@ -282,15 +265,24 @@ void main(string[] args) { || opts["harvest-authors"] || opts["harvest-topics"] ) - ? true - : false; + ? true : false; return _is; } bool harvest_authors() { - return opts["harvest-authors"]; + bool _is = ( + opts["harvest"] + || opts["harvest-authors"] + ) + ? true : false; + return _is; } bool harvest_topics() { - return opts["harvest-topics"]; + bool _is = ( + opts["harvest"] + || opts["harvest-topics"] + ) + ? true : false; + return _is; } bool html() { bool _is; @@ -441,6 +433,7 @@ void main(string[] args) { _is = false; } else if (opts["abstraction"] || concordance + || harvest || html || epub || odt @@ -494,6 +487,7 @@ void main(string[] args) { || concordance || source || pod + || harvest || html || epub || odt @@ -682,19 +676,7 @@ void main(string[] args) { DocReformMetaDocSummary!()(doc_abstraction, doc_matters); } if (doc_matters.opt.action.harvest) { - if (doc_matters.opt.action.harvest_authors) { - } - if (doc_matters.opt.action.harvest_topics) { - } - Harvest[] DocReformMetaDocHarvests()( - Harvest harvested, - Harvest[] harvests, - ) { - harvests ~= harvested; - return harvests; - } - harvested = DocReformMetaDocHarvest!()(doc_matters, harvested); - harvests = DocReformMetaDocHarvests!()(harvested, harvests); + hvst.harvests ~= DocReformMetaDocHarvest!()(doc_matters, hvst); } /+ ↓ debugs +/ if (doc_matters.opt.action.debug_do) { @@ -777,19 +759,7 @@ void main(string[] args) { DocReformMetaDocSummary!()(doc_abstraction, doc_matters); } if (doc_matters.opt.action.harvest) { - if (doc_matters.opt.action.harvest_authors) { - } - if (doc_matters.opt.action.harvest_topics) { - } - Harvest[] DocReformMetaDocHarvests()( - Harvest harvested, - Harvest[] harvests, - ) { - harvests ~= harvested; - return harvests; - } - harvested = DocReformMetaDocHarvest!()(doc_matters, harvested); - harvests = DocReformMetaDocHarvests!()(harvested, harvests); + hvst.harvests ~= DocReformMetaDocHarvest!()(doc_matters, hvst); } /+ ↓ debugs +/ if (doc_matters.opt.action.debug_do) { @@ -827,610 +797,12 @@ void main(string[] args) { } } } - if (_opt_action.very_verbose - && harvests.length > 0 - ) { - auto min_repeat_number = 42; - string[] _document_topic_register; - string[] _topic_register; - string[] _sub_topic_register; - Harvest[][string][string][string][string] subject_trees; - string[] topics = []; - string _auth = ""; - foreach(k, doc_harvest; harvests) { - _topic_register = []; - foreach(topic; doc_harvest.topic_register_arr.sort) { - _sub_topic_register = []; - string _spaces; - string[] subject_tree = topic.split(mkup.sep); - switch (subject_tree.length) { - case 1: - subject_trees[subject_tree[0]]["_a"]["_a"]["_a"] ~= doc_harvest; - break; - case 2: - subject_trees[subject_tree[0]][subject_tree[1]]["_a"]["_a"] ~= doc_harvest; - break; - case 3: - subject_trees[subject_tree[0]][subject_tree[1]][subject_tree[2]]["_a"] ~= doc_harvest; - break; - case 4: - subject_trees[subject_tree[0]][subject_tree[1]][subject_tree[2]][subject_tree[3]] ~= doc_harvest; - break; - default: - break; - } - _topic_register ~= _sub_topic_register.join("\n"); - } - auto char_repeat_number = (doc_harvest.title.length - + doc_harvest.author.length + 16); - char_repeat_number = (char_repeat_number > min_repeat_number) - ? char_repeat_number - : min_repeat_number; - _document_topic_register ~= format( - "\"%s\", %s%s\n%s", - doc_harvest.title, - doc_harvest.author, - (doc_harvest.date_published.length > 0) ? " (" ~ doc_harvest.date_published ~ ")" : "", - _topic_register.sort!("toUpper(a) < toUpper(b)", SwapStrategy.unstable).release.join("\n"), - ); - } - topics ~= format(q"┃ - - - -Metadata Harvest - Topics - - - - - - - - - - - - - -

Metadata Harvest - Topics (output organised by language & filetype)

-

[ HOME ] also see Metadata Harvest - Authors

-

ABCDEFGHIJKLMNOPQRSTUVWXYZ,  -

-
-

English   

-
-┃") ~ "\n"; - char _prev_k = "_".to!char; - int _kn; - foreach(k0; - subject_trees.keys - .sort!("toUpper(a) < toUpper(b)", SwapStrategy.unstable) - ) { - if (k0.toUpper.to!(char[])[0] != _prev_k) { - topics ~= format(q"┃

%s

┃", - k0.toUpper.to!(char[])[0], - k0.toUpper.to!(char[])[0], - ); - _prev_k = k0.toUpper.to!(char[])[0]; - } - if (k0 != "_a") { - topics ~= format(q"┃

%s

┃", - k0, k0,) ~ "\n"; - writeln("", k0); - if ("_a" in subject_trees[k0]) { - foreach (t_a_; - subject_trees[k0]["_a"]["_a"]["_a"] - .multiSort!("toUpper(a.title) < toUpper(b.title)", "a.author < b.author", SwapStrategy.unstable) - ) { - _auth = []; - if (t_a_.author_arr.length < 2) { - _auth = format(q"┃ %s┃", - t_a_.author_surname, - t_a_.author, - ); - } else { - foreach (a; t_a_.author_arr) { - _auth ~= format(q"┃ %s,┃", - t_a_.author_surname, - a, - ); - } - } - topics ~= format(q"┃

"%s" -%s┃", - "url", - t_a_.title, - _auth, - ) ~ "\n"; - writeln("- ", t_a_.title, " - ", t_a_.author); - } - } - foreach(k1; - subject_trees[k0].keys - .sort!("toUpper(a) < toUpper(b)", SwapStrategy.unstable) - ) { - if (k1 != "_a") { - topics ~= format(q"┃

%s

┃", - k1, k1,) ~ "\n"; - writeln(" ", k1); - if ("_a" in subject_trees[k0][k1]) { - foreach (t_a_; - subject_trees[k0][k1]["_a"]["_a"] - .multiSort!("toUpper(a.title) < toUpper(b.title)", "a.author < b.author", SwapStrategy.unstable) - ) { - _auth = []; - if (t_a_.author_arr.length < 2) { - _auth = format(q"┃ %s┃", - t_a_.author_surname, - t_a_.author, - ); - } else { - foreach (a; t_a_.author_arr) { - _auth ~= format(q"┃ %s,┃", - t_a_.author_surname, - a, - ); - } - } - topics ~= format(q"┃

%s -%s┃", - "url", - t_a_.title, - _auth, - ) ~ "\n"; - writeln(" - ", t_a_.title, " - ", t_a_.author); - } - } - } - foreach(k2; - subject_trees[k0][k1].keys - .sort!("toUpper(a) < toUpper(b)", SwapStrategy.unstable) - ) { - if (k2 != "_a") { - topics ~= format(q"┃

%s

┃", - k2, k2,) ~ "\n"; - writeln(" ", k2); - if ("_a" in subject_trees[k0][k1][k2]) { - foreach (t_a_; - subject_trees[k0][k1][k2]["_a"] - .multiSort!("toUpper(a.title) < toUpper(b.title)", "a.author < b.author", SwapStrategy.unstable) - ) { - _auth = []; - if (t_a_.author_arr.length < 2) { - _auth = format(q"┃ %s┃", - t_a_.author_surname, - t_a_.author, - ); - } else { - foreach (a; t_a_.author_arr) { - _auth ~= format(q"┃ %s,┃", - t_a_.author_surname, - a, - ); - } - } - topics ~= format(q"┃

%s -%s┃", - "url", - t_a_.title, - _auth, - ) ~ "\n"; - writeln(" - ", t_a_.title, " - ", t_a_.author); - } - } - } - foreach(k3; - subject_trees[k0][k1][k2].keys - .sort!("toUpper(a) < toUpper(b)", SwapStrategy.unstable) - ) { - if (k3 != "_a") { - topics ~= format(q"┃

%s

┃", - k3, k3,) ~ "\n"; - writeln(" ", k3); - { - foreach (t_a_; - subject_trees[k0][k1][k2][k3] - .multiSort!("toUpper(a.title) < toUpper(b.title)", "a.author < b.author", SwapStrategy.unstable) - ) { - _auth = []; - if (t_a_.author_arr.length < 2) { - _auth = format(q"┃%s┃", - t_a_.author_surname, - t_a_.author, - ); - } else { - foreach (a; t_a_.author_arr) { - _auth ~= format(q"┃ %s,┃", - t_a_.author_surname, - a, - ); - } - } - topics ~= format(q"┃

%s -%s┃", - "url", - t_a_.title, - _auth, - ) ~ "\n"; - writeln(" - ", t_a_.title, " - ", t_a_.author); - } - } - } - } - } - } - } - } - topics ~= format(q"┃ -


- - - - - - - - -┃") ~ "\n"; - try { - auto f = File("topics.html", "w"); - foreach (o; topics) { - f.writeln(o); - } - } catch (ErrnoException ex) { - // Handle error - } - } - if ((_opt_action.verbose - || _opt_action.very_verbose) - && harvests.length > 0 - ) { - string[] authors = []; - authors ~= format(q"┃ - - - - -Metadata Harvest - Authors - - - - - - - - - - - - - -

Metadata Harvest - Authors (output organised by language & filetype)

-

[ HOME ] also see Metadata Harvest - Topics

-

-
-

English   

-
-

ABCDEFGHIJKLMNOPQRSTUVWXYZ,  -┃") ~ "\n"; - string[string] _au; - string[] _auth_date_title; - string[] _author_date_title; - string _prev_auth = ""; - char _prev_k = "_".to!char; - foreach(doc_harvest; - harvests - .multiSort!( - "toUpper(a.author_surname_fn) < toUpper(b.author_surname_fn)", - "a.date_published < b.date_published", - "a.title < b.title", - SwapStrategy.unstable - ) - ) { - if (doc_harvest.author_surname_fn != _prev_auth) { - _au[doc_harvest.author_surname_fn] - = format(q"┃

%s

%s "%s" [%s]

┃", - doc_harvest.author_surname, - doc_harvest.author_surname_fn, - (doc_harvest.date_published.length > 0) - ? doc_harvest.date_published : "", - "url", - doc_harvest.title, - doc_harvest.language, - ); - _prev_auth = doc_harvest.author_surname_fn; - } else { - _au[doc_harvest.author_surname_fn] - ~= format(q"┃

%s "%s" [%s]

┃", - (doc_harvest.date_published.length > 0) - ? doc_harvest.date_published : "", - "url", - doc_harvest.title, - doc_harvest.language, - ); - } - _author_date_title ~= format(q"┃%s %s "%s" [%s]┃", - doc_harvest.author_surname_fn, - (doc_harvest.date_published.length > 0) - ? "(" ~ doc_harvest.date_published ~ ")" : "", - doc_harvest.title, - doc_harvest.language, - ); - // writeln(doc_harvest.author_date_title); - } - foreach (k; _au.keys.sort) { - if (k.toUpper.to!(char[])[0] != _prev_k) { - authors ~= format(q"┃

%s

┃", - k.toUpper.to!(char[])[0], - k.toUpper.to!(char[])[0], - ); - _prev_k = k.toUpper.to!(char[])[0]; - } - authors ~= _au[k]; - } - authors ~= format(q"┃ -
- - - - - - - - -┃") ~ "\n"; - try { - auto f = File("authors.html", "w"); - foreach (o; authors) { - f.writeln(o); - } - } catch (ErrnoException ex) { - // Handle error + if (hvst.harvests.length > 0) { + if (_opt_action.harvest_topics) { + DocReformMetaDocHarvestsTopics!()(hvst, _opt_action); } - foreach(_adt; _author_date_title.sort) { - writeln(_adt); + if (_opt_action.harvest_authors) { + DocReformMetaDocHarvestsAuthors!()(hvst.harvests, _opt_action); } } } -- cgit v1.2.3