aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2017-12-01 11:36:01 -0500
committerRalph Amissah <ralph@amissah.com>2019-04-10 15:14:14 -0400
commit17b1e024c33bac309c36f439fe267a384548a8b8 (patch)
treeea88a9a3dc87f5c64f9d8b615adb169b5e5697d7
parent0.21.0 paths, pod manifest source alternative (diff)
0.22.0 document matters & pod matters structsdoc-reform_v0.0.22
- better integrated, redundancy removed
-rw-r--r--org/default_paths.org8
-rw-r--r--org/output_sisupod.org2
-rw-r--r--org/output_sqlite.org2
-rw-r--r--org/output_xmls.org6
-rw-r--r--org/sdp.org111
-rw-r--r--src/sdp/meta/metadoc.d103
-rw-r--r--src/sdp/output/epub3.d2
-rw-r--r--src/sdp/output/html.d4
-rw-r--r--src/sdp/output/paths_source.d8
-rw-r--r--src/sdp/output/source_sisupod.d2
-rw-r--r--src/sdp/output/sqlite.d2
-rwxr-xr-xsrc/sdp/sdp.d6
-rw-r--r--views/version.txt2
13 files changed, 144 insertions, 114 deletions
diff --git a/org/default_paths.org b/org/default_paths.org
index b2c1980..99da708 100644
--- a/org/default_paths.org
+++ b/org/default_paths.org
@@ -79,10 +79,10 @@ template PodManifest() {
#+name: template_paths_src
#+BEGIN_SRC d
-template PodManifestAndSrcFile() {
+template PodMatters() {
mixin SiSUrgxInit;
static auto rgx = Rgx();
- auto PodManifestAndSrcFile(O,E,P,F)(
+ auto PodMatters(O,E,P,F)(
O _opt_actions,
E _env,
P _pth = "",
@@ -90,7 +90,7 @@ template PodManifestAndSrcFile() {
char[][] _manifest_fn_list = [[]],
) {
auto _manifest = PodManifest!()(_pth);
- struct ManifestFilePlus_ {
+ struct ManifestMatters_ {
auto pwd() {
return _env["pwd"];
}
@@ -175,7 +175,7 @@ template PodManifestAndSrcFile() {
return _image_dirs;
}
}
- return ManifestFilePlus_();
+ return ManifestMatters_();
}
}
#+END_SRC
diff --git a/org/output_sisupod.org b/org/output_sisupod.org
index a267384..deb1c82 100644
--- a/org/output_sisupod.org
+++ b/org/output_sisupod.org
@@ -61,7 +61,7 @@ debug(asserts) {
// static assert(is(typeof(doc_matters) == tuple));
}
mixin SiSUoutputRgxInit;
-string pwd = doc_matters.environment["pwd"];
+string pwd = doc_matters.environment.pwd;
auto src_path_info = doc_matters.src_path_info;
auto pth_sisudoc_src = doc_matters.src_path_info;
auto pths_sisupod = SiSUpathsSisupods!()();
diff --git a/org/output_sqlite.org b/org/output_sqlite.org
index 328af1a..14b6577 100644
--- a/org/output_sqlite.org
+++ b/org/output_sqlite.org
@@ -467,7 +467,7 @@ auto html_table(O)(
#+name: sqlite_db_initialize
#+BEGIN_SRC d
auto pth_sqlite = SiSUpathsSQLite!()(doc_matters.src_path_info, doc_matters.language);
-auto db = Database(pth_sqlite.sqlite_file(doc_matters.environment["pwd"].baseName));
+auto db = Database(pth_sqlite.sqlite_file(doc_matters.environment.pwd.baseName));
// auto db = Database(":memory:"); // open database in memory
if (doc_matters.opt_action.sqlite_create) {
if ((doc_matters.opt_action.verbose)) { writeln("sqlite create tables... "); }
diff --git a/org/output_xmls.org b/org/output_xmls.org
index 3f82899..bcf8d8d 100644
--- a/org/output_xmls.org
+++ b/org/output_xmls.org
@@ -1490,7 +1490,7 @@ void scroll_write_output(M,C)(
catch (ErrnoException ex) {
// Handle error
}
- writeln(" ", doc_matters.environment["pwd"], "/", pth_html.fn_scroll(fn_src));
+ writeln(" ", doc_matters.environment.pwd, "/", pth_html.fn_scroll(fn_src));
}
#+END_SRC
@@ -1762,7 +1762,7 @@ void seg_write_output(M,D,E)(
catch (ErrnoException ex) {
// handle error
}
- writeln(" ", doc_matters.environment["pwd"], "/", pth_html.fn_seg(doc_matters.source_filename, "toc"));
+ writeln(" ", doc_matters.environment.pwd, "/", pth_html.fn_seg(doc_matters.source_filename, "toc"));
}
#+END_SRC
@@ -2632,7 +2632,7 @@ void epub3_write_output_files(M,D,E,Mt,Mic,Otnx,Otn,Oc)(
catch (ErrnoException ex) {
// Handle error
}
- writeln(" ", doc_matters.environment["pwd"], "/", fn_epub);
+ writeln(" ", doc_matters.environment.pwd, "/", fn_epub);
#+END_SRC
** zip debug, read zip archive
diff --git a/org/sdp.org b/org/sdp.org
index 32e9833..650fb21 100644
--- a/org/sdp.org
+++ b/org/sdp.org
@@ -26,7 +26,7 @@ struct Version {
int minor;
int patch;
}
-enum ver = Version(0, 21, 0);
+enum ver = Version(0, 22, 0);
#+END_SRC
** compilation restrictions (supported compilers)
@@ -486,14 +486,14 @@ auto _env = [
"home" : environment["HOME"],
];
auto _manifest = PodManifest!()();
-auto _manifest_plus = PodManifestAndSrcFile!()(_opt_action, _env);
+auto _manifest_plus = PodMatters!()(_opt_action, _env);
auto _manifests = [ _manifest_plus ];
foreach(arg; args[1..$]) {
_manifest = PodManifest!()(arg);
if (arg.match(rgx.flag_action)) {
flag_action ~= " " ~ arg; // flags not taken by getopt
} else if (arg.match(rgx.src_pth)) {
- _manifests ~= PodManifestAndSrcFile!()(_opt_action, _env, arg, arg); // gather input markup source file names for processing
+ _manifests ~= PodMatters!()(_opt_action, _env, arg, arg); // gather input markup source file names for processing
} else if (_manifest.pod_manifest_file_with_path) {
string contents_location_raw_;
string contents_location_;
@@ -536,7 +536,7 @@ foreach(arg; args[1..$]) {
|| (contents_location_pth_).match(lang_rgx_)
) {
auto _fns = (((tmp_dir_).chainPath(contents_location_pth_)).array).to!(string);
- _manifest_plus = PodManifestAndSrcFile!()(_opt_action, _env, arg, _fns, contents_locations_arr);
+ _manifest_plus = PodMatters!()(_opt_action, _env, arg, _fns, contents_locations_arr);
_manifests ~= _manifest_plus; // TODO how to capture?
}
}
@@ -805,68 +805,83 @@ debug(steps) {
writeln(__LINE__, ":", __FILE__, ": step4 commence → (doc_matters)");
}
struct DocumentMatters {
- auto keys_seq() {
- /+ contains .seg & .scroll sequences +/
- auto _k = _document_section_keys_sequenced;
- return _k;
- }
- string[] segnames() {
- string[] _k = _doc_html_segnames;
- return _k;
- }
- string[] segnames_lv_0_to_4() {
- string[] _k = _doc_epub_segnames_0_4;
- return _k;
- }
- auto conf_make_meta() {
- auto _k = _make_and_meta_struct;
- return _k;
- }
- auto source_filename() {
- string _k = _manifest.src_fn;
- return _k;
- }
- auto src_path_info() {
- string _pwd = _env["pwd"];
- auto _k = SiSUpathsSRC!()(_pwd, _manifest.src_fn);
- return _k;
- }
auto opt_action() {
/+ getopt options, commandline instructions, raw
- processing instructions --epub --html etc.
- command line config instructions --output-path
+/
- auto _k = _opt_action;
+ return _opt_action;
+ }
+ auto conf_make_meta() { // TODO meld with all make instructions
+ auto _k = _make_and_meta_struct;
return _k;
}
auto environment() {
- auto _k = _env;
+ struct Env_ {
+ auto pwd() {
+ return _manifest.pwd;
+ }
+ auto home() {
+ return _manifest.home;
+ }
+ }
+ return Env_();
+ }
+ auto is_pod() {
+ return _manifest.is_pod;
+ }
+ auto source_filename() {
+ return _manifest.src_fn;
+ }
+ auto src_path_info() { // consider, reconsider?
+ auto _k = SiSUpathsSRC!()(_manifest.pwd, _manifest.src_fn);
return _k;
}
auto language() {
- string _k;
- if (auto m = (_manifest.src_fn).match(rgx.language_code_and_filename)) {
- _k = m.captures[1];
- } else {
- _k = "en";
- }
- return _k;
+ return _manifest.src_lng;
+ }
+ auto output_path() {
+ return _manifest.output_path;
+ }
+ auto pod_manifest_list_of_filenames() {
+ return _manifest.pod_manifest_list_of_filenames;
+ }
+ auto pod_manifest_list_of_languages() {
+ return _manifest.pod_manifest_list_of_languages;
+ }
+ auto pod_manifest_filename() {
+ return _manifest.pod_manifest_filename;
+ }
+ auto pod_manifest_path() {
+ return _manifest.pod_manifest_path;
+ }
+ auto pod_manifest_file_with_path() {
+ return _manifest.pod_manifest_file_with_path;
+ }
+ auto pod_config_dirs() {
+ return _manifest.pod_config_dirs;
+ }
+ auto pod_image_dirs() {
+ return _manifest.pod_image_dirs;
}
auto file_insert_list() {
string[] _k = _header_body_inserts[headBody.insert_filelist];
return _k;
}
- auto pod_manifest() {
- /+ extensive information on
- - source processing paths
- - repetition of opt_action with additional processing, including
- - output path if any
- +/
- auto _k = _manifest;
+ auto image_list() {
+ return _images;
+ }
+ auto keys_seq() {
+ /+ contains .seg & .scroll sequences +/
+ auto _k = _document_section_keys_sequenced;
return _k;
}
- auto image_list() {
- auto _k = _images;
+ string[] segnames() {
+ string[] _k = _doc_html_segnames;
+ return _k;
+ }
+ string[] segnames_lv_0_to_4() {
+ string[] _k = _doc_epub_segnames_0_4;
return _k;
}
}
diff --git a/src/sdp/meta/metadoc.d b/src/sdp/meta/metadoc.d
index b028f8d..79f9849 100644
--- a/src/sdp/meta/metadoc.d
+++ b/src/sdp/meta/metadoc.d
@@ -88,68 +88,83 @@ template SiSUabstraction() {
writeln(__LINE__, ":", __FILE__, ": step4 commence → (doc_matters)");
}
struct DocumentMatters {
- auto keys_seq() {
- /+ contains .seg & .scroll sequences +/
- auto _k = _document_section_keys_sequenced;
- return _k;
- }
- string[] segnames() {
- string[] _k = _doc_html_segnames;
- return _k;
- }
- string[] segnames_lv_0_to_4() {
- string[] _k = _doc_epub_segnames_0_4;
- return _k;
- }
- auto conf_make_meta() {
- auto _k = _make_and_meta_struct;
- return _k;
- }
- auto source_filename() {
- string _k = _manifest.src_fn;
- return _k;
- }
- auto src_path_info() {
- string _pwd = _env["pwd"];
- auto _k = SiSUpathsSRC!()(_pwd, _manifest.src_fn);
- return _k;
- }
auto opt_action() {
/+ getopt options, commandline instructions, raw
- processing instructions --epub --html etc.
- command line config instructions --output-path
+/
- auto _k = _opt_action;
+ return _opt_action;
+ }
+ auto conf_make_meta() { // TODO meld with all make instructions
+ auto _k = _make_and_meta_struct;
return _k;
}
auto environment() {
- auto _k = _env;
+ struct Env_ {
+ auto pwd() {
+ return _manifest.pwd;
+ }
+ auto home() {
+ return _manifest.home;
+ }
+ }
+ return Env_();
+ }
+ auto is_pod() {
+ return _manifest.is_pod;
+ }
+ auto source_filename() {
+ return _manifest.src_fn;
+ }
+ auto src_path_info() { // consider, reconsider?
+ auto _k = SiSUpathsSRC!()(_manifest.pwd, _manifest.src_fn);
return _k;
}
auto language() {
- string _k;
- if (auto m = (_manifest.src_fn).match(rgx.language_code_and_filename)) {
- _k = m.captures[1];
- } else {
- _k = "en";
- }
- return _k;
+ return _manifest.src_lng;
+ }
+ auto output_path() {
+ return _manifest.output_path;
+ }
+ auto pod_manifest_list_of_filenames() {
+ return _manifest.pod_manifest_list_of_filenames;
+ }
+ auto pod_manifest_list_of_languages() {
+ return _manifest.pod_manifest_list_of_languages;
+ }
+ auto pod_manifest_filename() {
+ return _manifest.pod_manifest_filename;
+ }
+ auto pod_manifest_path() {
+ return _manifest.pod_manifest_path;
+ }
+ auto pod_manifest_file_with_path() {
+ return _manifest.pod_manifest_file_with_path;
+ }
+ auto pod_config_dirs() {
+ return _manifest.pod_config_dirs;
+ }
+ auto pod_image_dirs() {
+ return _manifest.pod_image_dirs;
}
auto file_insert_list() {
string[] _k = _header_body_inserts[headBody.insert_filelist];
return _k;
}
- auto pod_manifest() {
- /+ extensive information on
- - source processing paths
- - repetition of opt_action with additional processing, including
- - output path if any
- +/
- auto _k = _manifest;
+ auto image_list() {
+ return _images;
+ }
+ auto keys_seq() {
+ /+ contains .seg & .scroll sequences +/
+ auto _k = _document_section_keys_sequenced;
return _k;
}
- auto image_list() {
- auto _k = _images;
+ string[] segnames() {
+ string[] _k = _doc_html_segnames;
+ return _k;
+ }
+ string[] segnames_lv_0_to_4() {
+ string[] _k = _doc_epub_segnames_0_4;
return _k;
}
}
diff --git a/src/sdp/output/epub3.d b/src/sdp/output/epub3.d
index 78603b2..e31d114 100644
--- a/src/sdp/output/epub3.d
+++ b/src/sdp/output/epub3.d
@@ -765,7 +765,7 @@ template outputEPub3() {
catch (ErrnoException ex) {
// Handle error
}
- writeln(" ", doc_matters.environment["pwd"], "/", fn_epub);
+ writeln(" ", doc_matters.environment.pwd, "/", fn_epub);
debug(epub_archive) {
if (exists(fn_epub)) {
try {
diff --git a/src/sdp/output/html.d b/src/sdp/output/html.d
index b0b0405..a422a81 100644
--- a/src/sdp/output/html.d
+++ b/src/sdp/output/html.d
@@ -181,7 +181,7 @@ template outputHTML() {
catch (ErrnoException ex) {
// Handle error
}
- writeln(" ", doc_matters.environment["pwd"], "/", pth_html.fn_scroll(fn_src));
+ writeln(" ", doc_matters.environment.pwd, "/", pth_html.fn_scroll(fn_src));
}
void seg(D,I)(
auto return ref const D doc_abstraction,
@@ -440,7 +440,7 @@ template outputHTML() {
catch (ErrnoException ex) {
// handle error
}
- writeln(" ", doc_matters.environment["pwd"], "/", pth_html.fn_seg(doc_matters.source_filename, "toc"));
+ writeln(" ", doc_matters.environment.pwd, "/", pth_html.fn_seg(doc_matters.source_filename, "toc"));
}
void css(M)(
auto return ref M doc_matters,
diff --git a/src/sdp/output/paths_source.d b/src/sdp/output/paths_source.d
index c22efe0..967a632 100644
--- a/src/sdp/output/paths_source.d
+++ b/src/sdp/output/paths_source.d
@@ -42,10 +42,10 @@ template PodManifest() {
return ManifestFile_();
}
}
-template PodManifestAndSrcFile() {
+template PodMatters() {
mixin SiSUrgxInit;
static auto rgx = Rgx();
- auto PodManifestAndSrcFile(O,E,P,F)(
+ auto PodMatters(O,E,P,F)(
O _opt_actions,
E _env,
P _pth = "",
@@ -53,7 +53,7 @@ template PodManifestAndSrcFile() {
char[][] _manifest_fn_list = [[]],
) {
auto _manifest = PodManifest!()(_pth);
- struct ManifestFilePlus_ {
+ struct ManifestMatters_ {
auto pwd() {
return _env["pwd"];
}
@@ -138,7 +138,7 @@ template PodManifestAndSrcFile() {
return _image_dirs;
}
}
- return ManifestFilePlus_();
+ return ManifestMatters_();
}
}
template ConfigFilePaths() {
diff --git a/src/sdp/output/source_sisupod.d b/src/sdp/output/source_sisupod.d
index 106c419..20eaf39 100644
--- a/src/sdp/output/source_sisupod.d
+++ b/src/sdp/output/source_sisupod.d
@@ -15,7 +15,7 @@ template SiSUpod() {
// static assert(is(typeof(doc_matters) == tuple));
}
mixin SiSUoutputRgxInit;
- string pwd = doc_matters.environment["pwd"];
+ string pwd = doc_matters.environment.pwd;
auto src_path_info = doc_matters.src_path_info;
auto pth_sisudoc_src = doc_matters.src_path_info;
auto pths_sisupod = SiSUpathsSisupods!()();
diff --git a/src/sdp/output/sqlite.d b/src/sdp/output/sqlite.d
index 591b002..ee44d8a 100644
--- a/src/sdp/output/sqlite.d
+++ b/src/sdp/output/sqlite.d
@@ -457,7 +457,7 @@ template SQLiteBuildTablesAndPopulate() {
auto ref I doc_matters,
) {
auto pth_sqlite = SiSUpathsSQLite!()(doc_matters.src_path_info, doc_matters.language);
- auto db = Database(pth_sqlite.sqlite_file(doc_matters.environment["pwd"].baseName));
+ auto db = Database(pth_sqlite.sqlite_file(doc_matters.environment.pwd.baseName));
// auto db = Database(":memory:"); // open database in memory
if (doc_matters.opt_action.sqlite_create) {
if ((doc_matters.opt_action.verbose)) { writeln("sqlite create tables... "); }
diff --git a/src/sdp/sdp.d b/src/sdp/sdp.d
index 34f11d9..30f8d03 100755
--- a/src/sdp/sdp.d
+++ b/src/sdp/sdp.d
@@ -303,14 +303,14 @@ void main(string[] args) {
"home" : environment["HOME"],
];
auto _manifest = PodManifest!()();
- auto _manifest_plus = PodManifestAndSrcFile!()(_opt_action, _env);
+ auto _manifest_plus = PodMatters!()(_opt_action, _env);
auto _manifests = [ _manifest_plus ];
foreach(arg; args[1..$]) {
_manifest = PodManifest!()(arg);
if (arg.match(rgx.flag_action)) {
flag_action ~= " " ~ arg; // flags not taken by getopt
} else if (arg.match(rgx.src_pth)) {
- _manifests ~= PodManifestAndSrcFile!()(_opt_action, _env, arg, arg); // gather input markup source file names for processing
+ _manifests ~= PodMatters!()(_opt_action, _env, arg, arg); // gather input markup source file names for processing
} else if (_manifest.pod_manifest_file_with_path) {
string contents_location_raw_;
string contents_location_;
@@ -353,7 +353,7 @@ void main(string[] args) {
|| (contents_location_pth_).match(lang_rgx_)
) {
auto _fns = (((tmp_dir_).chainPath(contents_location_pth_)).array).to!(string);
- _manifest_plus = PodManifestAndSrcFile!()(_opt_action, _env, arg, _fns, contents_locations_arr);
+ _manifest_plus = PodMatters!()(_opt_action, _env, arg, _fns, contents_locations_arr);
_manifests ~= _manifest_plus; // TODO how to capture?
}
}
diff --git a/views/version.txt b/views/version.txt
index 022ef80..003d862 100644
--- a/views/version.txt
+++ b/views/version.txt
@@ -4,7 +4,7 @@ struct Version {
int minor;
int patch;
}
-enum ver = Version(0, 21, 0);
+enum ver = Version(0, 22, 0);
version (Posix) {
version (DigitalMars) {
} else version (LDC) {