aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sdp
diff options
context:
space:
mode:
Diffstat (limited to 'src/sdp')
-rw-r--r--src/sdp/ao/abstraction.d18
-rw-r--r--src/sdp/ao/conf_make_meta_native.d4
-rw-r--r--src/sdp/ao/conf_make_meta_sdlang.d73
-rw-r--r--src/sdp/ao/defaults.d15
-rw-r--r--src/sdp/ao/doc_debugs.d4
-rw-r--r--src/sdp/ao/read_config_files.d17
-rw-r--r--src/sdp/ao/read_source_files.d6
-rw-r--r--src/sdp/output/hub.d15
-rw-r--r--src/sdp/output/paths_source.d10
-rwxr-xr-xsrc/sdp/sdp.d113
10 files changed, 150 insertions, 125 deletions
diff --git a/src/sdp/ao/abstraction.d b/src/sdp/ao/abstraction.d
index c592436..317f841 100644
--- a/src/sdp/ao/abstraction.d
+++ b/src/sdp/ao/abstraction.d
@@ -30,8 +30,8 @@ template SiSUabstraction() {
enum docAbst { doc_abstraction, section_keys, segnames, segnames_0_4, images }
auto rgx = Rgx();
auto SiSUabstraction(Fn,O,E)(Fn fn_src, O opts, E env){
- auto sdl_root_configuration = ConfigHub!()("conf.sdl", env);
- auto sdl_root_doc_make = ConfigHub!()("sisu_document_make", env);
+ auto sdl_root_configuration = configRead!()("conf.sdl", env);
+ auto sdl_root_doc_make = configRead!()("sisu_document_make", env);
auto confsdl = HeaderExtractSDL();
auto conf_settings_aa = confsdl.configSettingsSDLangToAAmake(sdl_root_configuration);
auto conf_doc_make_aa = confsdl.documentMakeSDLangToAAmake(sdl_root_doc_make);
@@ -47,15 +47,15 @@ template SiSUabstraction() {
writeln(_header_body_inserts.length[headBody.body_content][0]);
}
/+ ↓ split header into make and meta +/
- auto _make_and_meta =
+ auto _make_and_meta_tup =
SiSUheaderExtractHub!()(_header_body_inserts[headBody.header], conf_doc_make_aa);
- static assert(!isTypeTuple!(_make_and_meta));
- static assert(_make_and_meta.length==2);
+ static assert(!isTypeTuple!(_make_and_meta_tup));
+ static assert(_make_and_meta_tup.length==2);
/+ ↓ document abstraction: process document, return abstraction as tuple +/
auto da = SiSUdocAbstraction!()(
_header_body_inserts[headBody.body_content],
- _make_and_meta[makeMeta.make],
- _make_and_meta[makeMeta.meta],
+ _make_and_meta_tup[makeMeta.make],
+ _make_and_meta_tup[makeMeta.meta],
opts
);
static assert(!isTypeTuple!(da));
@@ -80,11 +80,11 @@ template SiSUabstraction() {
return _k;
}
auto dochead_make() {
- string[string][string] _k = _make_and_meta[makeMeta.make];
+ string[string][string] _k = _make_and_meta_tup[makeMeta.make];
return _k;
}
auto dochead_meta() {
- string[string][string] _k = _make_and_meta[makeMeta.meta];
+ string[string][string] _k = _make_and_meta_tup[makeMeta.meta];
return _k;
}
auto src_path_info() {
diff --git a/src/sdp/ao/conf_make_meta_native.d b/src/sdp/ao/conf_make_meta_native.d
index 8954c9a..aae0b4d 100644
--- a/src/sdp/ao/conf_make_meta_native.d
+++ b/src/sdp/ao/conf_make_meta_native.d
@@ -286,8 +286,8 @@ template SiSUheaderExtractNative() {
];
string[string] an_object;
int[string] line_occur;
- auto dochead_make = make_aa;
- auto dochead_meta = meta_aa;
+ auto dochead_make = conf_aa_empty;
+ auto dochead_meta = meta_aa_empty;
auto set_header = HeaderDocMetadataAndMakeNativeToAA();
char[][] source_header_arr =
(cast(char[]) src_header).split(rgx.newline_eol_delimiter);
diff --git a/src/sdp/ao/conf_make_meta_sdlang.d b/src/sdp/ao/conf_make_meta_sdlang.d
index 567853e..7e7dd62 100644
--- a/src/sdp/ao/conf_make_meta_sdlang.d
+++ b/src/sdp/ao/conf_make_meta_sdlang.d
@@ -20,20 +20,35 @@ template SiSUheaderExtractSDLang() {
mixin SiSUregisters;
mixin SiSUrgxInit;
auto rgx = Rgx();
- private auto sdlangToAAmake(C,Tag)(C conf, Tag conf_sdlang) {
+ private auto sdlangToAAheaderMakeMeta(C,Tag)(C conf, Tag conf_sdlang) {
debug(asserts){
static assert(is(typeof(conf) == string[string][string]));
}
foreach (maintag, subtags; conf) {
foreach (subtag, content; subtags) {
- if (!(conf_sdlang.maybe.tags[maintag].empty)) {
- if (!(conf_sdlang.tags[maintag][0].maybe.attributes[subtag].empty)
- && (conf_sdlang.tags[maintag][0].attributes[subtag][0].value.length > 0)) {
+ if (maintag in conf_sdlang.maybe.tags) {
+ Tag _maintag = conf_sdlang.getTag(maintag);
+ if ((subtag in _maintag.maybe.tags)
+ && (_maintag.getTagValues(subtag).length > 0)) {
debug(headersdlang) {
- writeln(conf_sdlang.tags[maintag][0].attributes[subtag][0].value);
+ writeln(__LINE__, ": ", maintag, ":", subtag, ": ", _maintag.getTagValues(subtag)[0]);
+ }
+ if (_maintag.getTagValues(subtag).length == 1) {
+ conf[maintag][subtag] =
+ (_maintag.getTagValues(subtag)[0]).to!string;
+ } else if (_maintag.getTagValues(subtag).length > 1) {
+ foreach (st; _maintag.getTagValues(subtag)) {
+ conf[maintag][subtag] ~=
+ st.to!string ~ ";";
+ }
+ }
+ } else if ((subtag in _maintag.maybe.attributes)
+ && (_maintag.maybe.attributes[subtag][0].value.length > 0)) {
+ debug(headersdlang) {
+ writeln(__LINE__, ": ", maintag, ":", subtag, ": ", conf_sdlang.tags[maintag][0].attributes[subtag][0].value);
}
conf[maintag][subtag] =
- to!string(conf_sdlang.tags[maintag][0].attributes[subtag][0].value);
+ (conf_sdlang.tags[maintag][0].attributes[subtag][0].value).to!string;
}
}
}
@@ -41,11 +56,11 @@ template SiSUheaderExtractSDLang() {
return conf;
}
private auto configSettingsSDLangToAAmake(Tag)(Tag conf_sdlang) {
- auto conf = sdlangToAAmake(conf_aa, conf_sdlang);
+ auto conf = sdlangToAAheaderMakeMeta(conf_aa_empty, conf_sdlang);
return conf;
}
private auto documentMakeSDLangToAAmake(Tag)(Tag document_make_sdlang) {
- auto dochead_make = sdlangToAAmake(make_aa, document_make_sdlang);
+ auto dochead_make = sdlangToAAheaderMakeMeta(conf_aa_empty, document_make_sdlang);
return dochead_make;
}
final private auto headerMakeSDLang(Hs)(Hs src_header) {
@@ -73,7 +88,19 @@ template SiSUheaderExtractSDLang() {
}
debug(sdlang) {
writeln("header SDL:");
- writeln(sdl_root_header.toSDLDocument());
+ writeln(__LINE__, ": ", sdl_root_header.toSDLDocument());
+ writeln(__LINE__, ": ", sdl_root_header.maybe.namespaces);
+ writeln("header make sdlang: ", sdl_root_header.toSDLDocument());
+ writeln(__LINE__, ": ", sdl_root_header.getTagValues("title"));
+ writeln(__LINE__, ": ", sdl_root_header.getTagValues("creator"));
+ Tag creator = sdl_root_header.getTag("creator");
+ if (creator !is null) {
+ if ("author" in creator.maybe.tags) {
+ writeln(__LINE__, ": ", creator.getTagValues("author"));
+ } else if ("author" in creator.maybe.attributes) {
+ writeln(__LINE__, ": ", creator.maybe.attributes["author"][0].value);
+ }
+ }
}
return sdl_root_header;
}
@@ -91,26 +118,28 @@ template SiSUheaderExtractSDLang() {
}
/+ get sdlang tags +/
auto header_sdlang=headerMakeSDLang(to!string(header_clean));
- debug(sdlang) {
- writeln("--------------");
- stdout.rawWrite( header_sdlang.toSDLDocument() );
- writeln("--------------");
- Value test = header_sdlang.tags["title"][0].values[0];
- assert(test == typeid(string));
- // writeln(header_sdlang.maybe.tags["title"]);
- // writeln(header_sdlang.maybe.tags["title"][0].maybe.attributes["subtitle"]);
- }
return header_sdlang; // sdlang.ast.Tag
}
private auto headerSDLangToAAmake(Tag,Ma)(Tag header_sdlang, Ma dochead_make) {
debug(asserts){
static assert(is(typeof(dochead_make) == string[string][string]));
}
- dochead_make = sdlangToAAmake(dochead_make, header_sdlang);
- auto dochead_meta = sdlangToAAmake(meta_aa, header_sdlang);
+ dochead_make = sdlangToAAheaderMakeMeta(dochead_make, header_sdlang);
+ auto dochead_meta = sdlangToAAheaderMakeMeta(meta_aa_empty, header_sdlang);
if (dochead_meta["title"]["main"].empty) {
- dochead_meta["title"]["main"] =
- to!string(header_sdlang.maybe.tags["title"][0].values[0]);
+ {
+ Tag _maintag = header_sdlang.getTag("title");
+ if (_maintag !is null) {
+ if ("main" in _maintag.maybe.tags) {
+ dochead_meta["title"]["main"] =
+ to!string(_maintag.getTagValues("main"));
+ } else if ("main" !in _maintag.maybe.attributes) {
+ writeln(__LINE__, ": ", _maintag.values[0]);
+ dochead_meta["title"]["main"] =
+ (_maintag.values[0]).to!string; // test that this exists
+ }
+ }
+ }
}
if (!(dochead_meta["title"]["subtitle"].empty)
&& (dochead_meta["title"]["sub"].empty)) {
diff --git a/src/sdp/ao/defaults.d b/src/sdp/ao/defaults.d
index 4a989b6..caee701 100644
--- a/src/sdp/ao/defaults.d
+++ b/src/sdp/ao/defaults.d
@@ -22,7 +22,7 @@ template SiSUregisters() {
std.uni,
std.utf,
std.conv : to;
- string[string][string] conf_aa() {
+ string[string][string] conf_aa_empty() {
auto conf_ = [
"webserv": [
"url_root" : "",
@@ -77,12 +77,7 @@ template SiSUregisters() {
"action" : "",
"db" : "",
"title" : ""
- ]
- ];
- return conf_;
- }
- string[string][string] make_aa() {
- auto make_ = [
+ ],
"make": [
"bold" : "",
"breaks" : "",
@@ -98,11 +93,11 @@ template SiSUregisters() {
"num_depth" : "",
"substitute" : "",
"texpdf_font" : ""
- ]
+ ],
];
- return make_;
+ return conf_;
}
- string[string][string] meta_aa() {
+ string[string][string] meta_aa_empty() {
auto meta_ = [
"classify": [
"dewey" : "",
diff --git a/src/sdp/ao/doc_debugs.d b/src/sdp/ao/doc_debugs.d
index 419f5cd..87a64f4 100644
--- a/src/sdp/ao/doc_debugs.d
+++ b/src/sdp/ao/doc_debugs.d
@@ -60,7 +60,7 @@ template SiSUdebugs() {
__FILE__,
__LINE__,
);
- foreach (obj; contents) {
+ foreach (obj; contents[key]) {
if (obj.use != "empty") {
writefln(
"[%s][%s]\n%s",
@@ -235,7 +235,7 @@ template SiSUdebugs() {
__FILE__,
__LINE__,
);
- foreach (obj; contents) {
+ foreach (obj; contents[key]) {
if (obj.use != "empty") {
writefln(
"* [%s][%s] %s",
diff --git a/src/sdp/ao/read_config_files.d b/src/sdp/ao/read_config_files.d
index 57213c4..8f525f3 100644
--- a/src/sdp/ao/read_config_files.d
+++ b/src/sdp/ao/read_config_files.d
@@ -4,12 +4,12 @@
ao_config_files.d
+/
module sdp.ao.read_config_files;
-template ConfigIn() {
+template configIn() {
import
sdp.ao,
std.file,
std.path;
- final string ConfigIn(C,E)(C conf_sdl, E env) {
+ final string configIn(C,E)(C conf_sdl, E env) {
string dot_pwd = chainPath(to!string(env["pwd"]), ".sisu").array;
string underscore_pwd = chainPath(to!string(env["pwd"]), "_sisu").array;
string dot_home = chainPath(to!string(env["home"]), ".sisu").array;
@@ -61,26 +61,19 @@ template ConfigSDLang() {
stderr.writeln("SDLang problem with content for ", conf_sdl_filename);
stderr.writeln(e.msg);
}
- debug(sdlang) {
- Value output_dir_structure_by = sdl_root_conf.tags["output_dir_structure_by"][0].values[0];
- assert(output_dir_structure_by.type == typeid(string));
- writeln(output_dir_structure_by);
- writeln("conf SDL:");
- writeln(sdl_root_conf.toSDLDocument());
- }
return sdl_root_conf;
}
}
/+
+/
-template ConfigHub() {
+template configRead() {
import
sdp.ao,
std.file,
std.path;
- final auto ConfigHub(C,E)(C conf_sdl, E env) {
- auto configuration = ConfigIn!()(conf_sdl, env);
+ final auto configRead(C,E)(C conf_sdl, E env) {
+ auto configuration = configIn!()(conf_sdl, env);
auto sdl_root = ConfigSDLang!()(configuration, conf_sdl);
return sdl_root;
}
diff --git a/src/sdp/ao/read_source_files.d b/src/sdp/ao/read_source_files.d
index 3b348f3..db20cfd 100644
--- a/src/sdp/ao/read_source_files.d
+++ b/src/sdp/ao/read_source_files.d
@@ -115,14 +115,14 @@ template SiSUrawMarkupContent() {
return t;
}
final char[][] getInsertMarkupSourceContentRawLineArray(
- in char[] fn_src,
+ in char[] fn_src_insert,
Regex!(char) rgx_file
) {
enforce(
- fn_src.match(rgx_file),
+ fn_src_insert.match(rgx_file),
"not a sisu markup filename"
);
- auto source_txt_str = readInMarkupSource(fn_src);
+ auto source_txt_str = readInMarkupSource(fn_src_insert);
auto source_line_arr = markupSourceLineArray(source_txt_str);
return source_line_arr;
}
diff --git a/src/sdp/output/hub.d b/src/sdp/output/hub.d
index fd64851..2a1221f 100644
--- a/src/sdp/output/hub.d
+++ b/src/sdp/output/hub.d
@@ -27,9 +27,11 @@ template outputHub() {
{ writeln("sisupod source processing... "); }
SiSUpod!()(doc_matters);
if ((doc_matters.opt_action["verbose"])
+ && (doc_matters.opt_action["debug"])
&& (doc_matters.opt_action["source"]))
{ writeln("sisu source done"); }
if ((doc_matters.opt_action["verbose"])
+ && (doc_matters.opt_action["debug"])
&& (doc_matters.opt_action["sisupod"]))
{ writeln("sisupod done"); }
}
@@ -40,24 +42,27 @@ template outputHub() {
if (doc_matters.opt_action["html"]) {
if ((doc_matters.opt_action["verbose"])) { writeln("html scroll processing... "); }
outputHTML!().scroll(doc_abstraction, doc_matters);
- if ((doc_matters.opt_action["verbose"])) { writeln("html scroll done"); }
+ if ((doc_matters.opt_action["verbose"]) && (doc_matters.opt_action["debug"])) { writeln("html scroll done"); }
if ((doc_matters.opt_action["verbose"])) { writeln("html seg processing... "); }
outputHTML!().seg(doc_abstraction, doc_matters);
- if ((doc_matters.opt_action["verbose"])) { writeln("html seg done"); }
+ if ((doc_matters.opt_action["verbose"]) && (doc_matters.opt_action["debug"])) { writeln("html seg done"); }
+ outputHTML!().css(doc_matters);
} else if (doc_matters.opt_action["html-seg"]) {
if ((doc_matters.opt_action["verbose"])) { writeln("html seg processing... "); }
outputHTML!().seg(doc_abstraction, doc_matters);
- if ((doc_matters.opt_action["verbose"])) { writeln("html seg done"); }
+ if ((doc_matters.opt_action["verbose"]) && (doc_matters.opt_action["debug"])) { writeln("html seg done"); }
+ outputHTML!().css(doc_matters);
} else if (doc_matters.opt_action["html-scroll"]) {
if ((doc_matters.opt_action["verbose"])) { writeln("html scroll processing... "); }
outputHTML!().scroll(doc_abstraction, doc_matters);
- if ((doc_matters.opt_action["verbose"])) { writeln("html scroll done"); }
+ if ((doc_matters.opt_action["verbose"]) && (doc_matters.opt_action["debug"])) { writeln("html scroll done"); }
+ outputHTML!().css(doc_matters);
}
if (doc_matters.opt_action["epub"]) {
if ((doc_matters.opt_action["verbose"])) { writeln("epub3 processing... "); }
outputEPub3!()(doc_abstraction, doc_matters);
// epub.css_write;
- if ((doc_matters.opt_action["verbose"])) { writeln("epub3 done"); }
+ if ((doc_matters.opt_action["verbose"]) && (doc_matters.opt_action["debug"])) { writeln("epub3 done"); }
}
if (doc_matters.opt_action["pdf"]) {
/+ mixin outputPDF; +/
diff --git a/src/sdp/output/paths_source.d b/src/sdp/output/paths_source.d
index 7658df5..80e2c1a 100644
--- a/src/sdp/output/paths_source.d
+++ b/src/sdp/output/paths_source.d
@@ -14,7 +14,7 @@ template SiSUpathsSRC() {
auto rgx = Rgx();
auto SiSUpathsSRC(D,Fn)(
D _pwd,
- Fn _fn_src,
+ Fn _fn_src_and_relative_path,
) {
struct SisuSrcPaths {
auto pwd() {
@@ -23,10 +23,10 @@ template SiSUpathsSRC() {
auto language() {
// use command line info as well?
string _k;
- if (auto m = _fn_src.match(rgx.language_code_and_filename)) {
+ if (auto m = _fn_src_and_relative_path.match(rgx.language_code_and_filename)) {
_k = m.captures[1];
} else {
- _k = "en";
+ _k = "xx"; // original default was "en" but is not known
}
return _k;
}
@@ -49,10 +49,10 @@ template SiSUpathsSRC() {
return text_root.chainPath(language).array;
}
auto doc_src_with_relative_path() {
- return pwd.chainPath(_fn_src).array;
+ return pwd.chainPath(_fn_src_and_relative_path).array;
}
auto doc_src_fn() {
- return _fn_src.baseName.array;
+ return _fn_src_and_relative_path.baseName.array;
}
}
return SisuSrcPaths();
diff --git a/src/sdp/sdp.d b/src/sdp/sdp.d
index 3816f9b..60d56f9 100755
--- a/src/sdp/sdp.d
+++ b/src/sdp/sdp.d
@@ -147,68 +147,71 @@ void main(string[] args) {
"pwd" : environment["PWD"],
"home" : environment["HOME"],
];
- auto sdl_root_configuration = ConfigHub!()("conf.sdl", env);
- auto sdl_root_doc_make = ConfigHub!()("sisu_document_make", env);
+ auto sdl_root_configuration = configRead!()("conf.sdl", env);
+ auto sdl_root_doc_make = configRead!()("sisu_document_make", env);
auto confsdl = HeaderExtractSDL();
auto conf_settings_aa = confsdl.configSettingsSDLangToAAmake(sdl_root_configuration);
auto conf_doc_make_aa = confsdl.documentMakeSDLangToAAmake(sdl_root_doc_make);
- foreach(fn_src; fns_src) {
- if (!empty(fn_src)) {
- scope(success) {
- debug(checkdoc) {
- writefln(
- "%s\n%s",
- "~ document complete, ok ~",
- "------------------------------------------------------------------",
- );
+
+ if (fns_src.length > 0) {
+ foreach(fn_src; fns_src) {
+ if (!empty(fn_src)) {
+ scope(success) {
+ debug(checkdoc) {
+ writefln(
+ "%s\n%s",
+ "~ document complete, ok ~",
+ "------------------------------------------------------------------",
+ );
+ }
}
- }
- scope(failure) {
- debug(checkdoc) {
- stderr.writefln(
- "~ document run failure ~ (%s v%s)\n\t%s",
- __VENDOR__, __VERSION__,
- fn_src
- );
+ scope(failure) {
+ debug(checkdoc) {
+ stderr.writefln(
+ "~ document run failure ~ (%s v%s)\n\t%s",
+ __VENDOR__, __VERSION__,
+ fn_src
+ );
+ }
}
- }
- enforce(
- fn_src.match(rgx.src_pth),
- "not a sisu markup filename"
- );
- auto t =
- SiSUabstraction!()(fn_src, opts, env);
- static assert(!isTypeTuple!(t));
- static assert(t.length==2);
- auto doc_abstraction = t[dAM.abstraction];
- auto doc_matters = t[dAM.matters];
- /+ ↓ debugs +/
- if (doc_matters.opt_action["verbose"]) {
- SiSUabstractionSummary!()(doc_abstraction, doc_matters);
- }
- /+ ↓ debugs +/
- if ((doc_matters.opt_action["debug"])
- || (doc_matters.opt_action["verbose"])
- ) {
- SiSUdebugs!()(doc_abstraction, doc_matters);
- }
- /+ ↓ output hub +/
- if (!(opts["skip-output"])) {
- outputHub!()(doc_abstraction, doc_matters);
- }
- scope(exit) {
- debug(checkdoc) {
- writefln(
- "processed file: %s",
- fn_src
- );
+ enforce(
+ fn_src.match(rgx.src_pth),
+ "not a sisu markup filename"
+ );
+ auto t =
+ SiSUabstraction!()(fn_src, opts, env);
+ static assert(!isTypeTuple!(t));
+ static assert(t.length==2);
+ auto doc_abstraction = t[dAM.abstraction];
+ auto doc_matters = t[dAM.matters];
+ /+ ↓ debugs +/
+ if (doc_matters.opt_action["verbose"]) {
+ SiSUabstractionSummary!()(doc_abstraction, doc_matters);
+ }
+ /+ ↓ debugs +/
+ if ((doc_matters.opt_action["debug"])
+ || (doc_matters.opt_action["verbose"])
+ ) {
+ SiSUdebugs!()(doc_abstraction, doc_matters);
+ }
+ /+ ↓ output hub +/
+ if (!(opts["skip-output"])) {
+ outputHub!()(doc_abstraction, doc_matters);
+ }
+ scope(exit) {
+ debug(checkdoc) {
+ writefln(
+ "processed file: %s",
+ fn_src
+ );
+ }
+ destroy(fn_src);
}
- destroy(fn_src);
+ } else {
+ /+ no recognized filename provided +/
+ writeln("no recognized filename");
+ break; // terminate, stop
}
- } else {
- /+ no recognized filename provided +/
- writeln("no recognized filename");
- break; // terminate, stop
}
}
}