aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sisudoc/spine.d
diff options
context:
space:
mode:
Diffstat (limited to 'src/sisudoc/spine.d')
-rwxr-xr-xsrc/sisudoc/spine.d147
1 files changed, 65 insertions, 82 deletions
diff --git a/src/sisudoc/spine.d b/src/sisudoc/spine.d
index 39563fb..75cd9d5 100755
--- a/src/sisudoc/spine.d
+++ b/src/sisudoc/spine.d
@@ -1,4 +1,3 @@
-#!/usr/bin/env rdmd
/+
- Name: SisuDoc Spine, Doc Reform [a part of]
- Description: documents, structuring, processing, publishing, search
@@ -7,7 +6,7 @@
- Author: Ralph Amissah
[ralph.amissah@gmail.com]
- - Copyright: (C) 2015 - 2024 Ralph Amissah, All Rights Reserved.
+ - Copyright: (C) 2015 - 2025 Ralph Amissah, All Rights Reserved.
- License: AGPL 3 or later:
@@ -55,32 +54,30 @@ description "A SiSU inspired document parser written in D."
homepage "https://sisudoc.org"
+/
@safe:
-import
- std.algorithm,
- std.datetime,
- std.getopt,
- std.file,
- std.path,
- std.process;
-import
- sisudoc.conf.compile_time_info,
- sisudoc.meta,
- sisudoc.meta.metadoc,
- sisudoc.meta.metadoc_curate,
- sisudoc.meta.metadoc_curate_authors,
- sisudoc.meta.metadoc_curate_topics,
- sisudoc.meta.metadoc_from_src,
- sisudoc.meta.conf_make_meta_structs,
- sisudoc.meta.conf_make_meta_json,
- sisudoc.meta.defaults,
- sisudoc.meta.doc_debugs,
- sisudoc.meta.rgx,
- sisudoc.meta.rgx_yaml,
- sisudoc.meta.rgx_files,
- sisudoc.io_in.paths_source,
- sisudoc.io_in.read_config_files,
- sisudoc.io_in.read_source_files,
- sisudoc.io_out.hub;
+import std.algorithm;
+import std.datetime;
+import std.getopt;
+import std.file;
+import std.path;
+import std.process;
+import sisudoc.conf.compile_time_info;
+import sisudoc.meta;
+import sisudoc.meta.metadoc;
+import sisudoc.meta.metadoc_curate;
+import sisudoc.meta.metadoc_curate_authors;
+import sisudoc.meta.metadoc_curate_topics;
+import sisudoc.meta.metadoc_from_src;
+import sisudoc.meta.conf_make_meta_structs;
+import sisudoc.meta.conf_make_meta_json;
+import sisudoc.meta.defaults;
+import sisudoc.meta.doc_debugs;
+import sisudoc.meta.rgx;
+import sisudoc.meta.rgx_yaml;
+import sisudoc.meta.rgx_files;
+import sisudoc.io_in.paths_source;
+import sisudoc.io_in.read_config_files;
+import sisudoc.io_in.read_source_files;
+import sisudoc.io_out.hub;
mixin(import("version.txt"));
mixin(import("configuration.txt"));
mixin CompileTimeInfo;
@@ -1059,66 +1056,59 @@ string program_name = "spine";
) {
writeln("--->\nstepX commence → (document abstraction) [", manifest.src.filename, "]");
}
- auto t = spineAbstraction!()(_env, program_info, _opt_action, _cfg, manifest, _make_and_meta_struct);
- static assert(t.length==2);
- auto doc_abstraction = t[dAM.abstraction];
- auto doc_matters = t[dAM.matters];
- if ((doc_matters.opt.action.debug_do)
+ auto doc = spineAbstraction!()(_env, program_info, _opt_action, _cfg, manifest, _make_and_meta_struct);
+ if ((doc.matters.opt.action.debug_do)
|| (_opt_action.debug_do_stages)
) {
writeln("- stepX complete for [", manifest.src.filename, "]");
}
/+ ↓ debugs +/
- if (doc_matters.opt.action.show_summary) {
+ if (doc.matters.opt.action.show_summary) {
import sisudoc.meta.metadoc_show_summary;
- spineMetaDocSummary!()(doc_abstraction, doc_matters);
+ spineMetaDocSummary!()(doc);
}
/+ ↓ debugs +/
- if (doc_matters.opt.action.show_metadata) {
+ if (doc.matters.opt.action.show_metadata) {
import sisudoc.meta.metadoc_show_metadata;
- spineShowMetaData!()(doc_matters);
+ spineShowMetaData!()(doc.matters);
}
/+ ↓ debugs +/
- if (doc_matters.opt.action.show_make) {
+ if (doc.matters.opt.action.show_make) {
import sisudoc.meta.metadoc_show_make;
- spineShowMake!()(doc_matters);
+ spineShowMake!()(doc.matters);
}
/+ ↓ debugs +/
- if (doc_matters.opt.action.show_config) {
+ if (doc.matters.opt.action.show_config) {
import sisudoc.meta.metadoc_show_config;
- spineShowConfig!()(doc_matters);
+ spineShowConfig!()(doc.matters);
}
- if (doc_matters.opt.action.curate) {
- auto _hvst = spineMetaDocCurate!()(doc_matters, hvst);
+ if (doc.matters.opt.action.curate) {
+ auto _hvst = spineMetaDocCurate!()(doc.matters, hvst);
if (
_hvst.title.length > 0
&& _hvst.author_surname_fn.length > 0
) {
hvst.curates ~= _hvst;
} else {
- if ((doc_matters.opt.action.debug_do)
+ if ((doc.matters.opt.action.debug_do)
|| (_opt_action.debug_do_curate)
- || (doc_matters.opt.action.vox_gt2)
+ || (doc.matters.opt.action.vox_gt2)
) {
writeln("WARNING curate: document header yaml does not contain information related to: title or author: ", _hvst.path_html_segtoc);
}
}
}
/+ ↓ debugs +/
- if (doc_matters.opt.action.debug_do) {
- spineDebugs!()(doc_abstraction, doc_matters);
+ if (doc.matters.opt.action.debug_do) {
+ spineDebugs!()(doc.abstraction, doc.matters);
}
/+ ↓ output hub +/
- if (!(doc_matters.opt.action.skip_output)) {
- if ((_opt_action.debug_do)
- || (_opt_action.debug_do_stages)
- ) {
+ if (!(doc.matters.opt.action.skip_output)) {
+ if ((_opt_action.debug_do) || (_opt_action.debug_do_stages)) {
writeln("step5 commence → (process outputs) [", manifest.src.filename, "]");
}
- doc_abstraction.outputHub!()(doc_matters);
- if ((_opt_action.debug_do)
- || (_opt_action.debug_do_stages)
- ) {
+ doc.outputHub!();
+ if ((_opt_action.debug_do) || (_opt_action.debug_do_stages)) {
writeln("- step5 complete for [", manifest.src.filename, "]");
}
}
@@ -1165,66 +1155,59 @@ string program_name = "spine";
) {
writeln("--->\nstepX commence → (document abstraction) [", manifest.src.filename, "]");
}
- auto t = spineAbstraction!()(_env, program_info, _opt_action, _cfg, manifest, _make_and_meta_struct);
- static assert(t.length==2);
- auto doc_abstraction = t[dAM.abstraction];
- auto doc_matters = t[dAM.matters];
- if ((doc_matters.opt.action.debug_do)
+ auto doc = spineAbstraction!()(_env, program_info, _opt_action, _cfg, manifest, _make_and_meta_struct);
+ if ((doc.matters.opt.action.debug_do)
|| (_opt_action.debug_do_stages)
) {
writeln("- stepX complete for [", manifest.src.filename, "]");
}
/+ ↓ debugs +/
- if (doc_matters.opt.action.show_summary) {
+ if (doc.matters.opt.action.show_summary) {
import sisudoc.meta.metadoc_show_summary;
- spineMetaDocSummary!()(doc_abstraction, doc_matters);
+ spineMetaDocSummary!()(doc);
}
/+ ↓ debugs +/
- if (doc_matters.opt.action.show_metadata) {
+ if (doc.matters.opt.action.show_metadata) {
import sisudoc.meta.metadoc_show_metadata;
- spineShowMetaData!()(doc_matters);
+ spineShowMetaData!()(doc.matters);
}
/+ ↓ debugs +/
- if (doc_matters.opt.action.show_make) {
+ if (doc.matters.opt.action.show_make) {
import sisudoc.meta.metadoc_show_make;
- spineShowMake!()(doc_matters);
+ spineShowMake!()(doc.matters);
}
/+ ↓ debugs +/
- if (doc_matters.opt.action.show_config) {
+ if (doc.matters.opt.action.show_config) {
import sisudoc.meta.metadoc_show_config;
- spineShowConfig!()(doc_matters);
+ spineShowConfig!()(doc.matters);
}
- if (doc_matters.opt.action.curate) {
- auto _hvst = spineMetaDocCurate!()(doc_matters, hvst);
+ if (doc.matters.opt.action.curate) {
+ auto _hvst = spineMetaDocCurate!()(doc.matters, hvst);
if (
_hvst.title.length > 0
&& _hvst.author_surname_fn.length > 0
) {
hvst.curates ~= _hvst;
} else {
- if ((doc_matters.opt.action.debug_do)
+ if ((doc.matters.opt.action.debug_do)
|| (_opt_action.debug_do_curate)
- || (doc_matters.opt.action.vox_gt2)
+ || (doc.matters.opt.action.vox_gt2)
) {
writeln("WARNING curate: document header yaml does not contain information related to: title or author: ", _hvst.path_html_segtoc);
}
}
}
/+ ↓ debugs +/
- if (doc_matters.opt.action.debug_do) {
- spineDebugs!()(doc_abstraction, doc_matters);
+ if (doc.matters.opt.action.debug_do) {
+ spineDebugs!()(doc.abstraction, doc.matters);
}
/+ ↓ output hub +/
- if (!(doc_matters.opt.action.skip_output)) {
- if ((_opt_action.debug_do)
- || (_opt_action.debug_do_stages)
- ) {
+ if (!(doc.matters.opt.action.skip_output)) {
+ if ((_opt_action.debug_do) || (_opt_action.debug_do_stages)) {
writeln("step5 commence → (process outputs) [", manifest.src.filename, "]");
}
- doc_abstraction.outputHub!()(doc_matters);
- if ((_opt_action.debug_do)
- || (_opt_action.debug_do_stages)
- ) {
+ doc.outputHub!();
+ if ((_opt_action.debug_do) || (_opt_action.debug_do_stages)) {
writeln("- step5 complete for [", manifest.src.filename, "]");
}
}