aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sdp.d
diff options
context:
space:
mode:
Diffstat (limited to 'src/sdp.d')
-rwxr-xr-xsrc/sdp.d155
1 files changed, 92 insertions, 63 deletions
diff --git a/src/sdp.d b/src/sdp.d
index d17c379..c29014c 100755
--- a/src/sdp.d
+++ b/src/sdp.d
@@ -8,13 +8,18 @@ import
compile_time_info, // sdp/compile_time_info.d
ao_abstract_doc_source, // sdp/ao_abstract_doc_source.d
ao_defaults, // sdp/ao_defaults.d
- ao_header_extract, // sdp/ao_header_extract.d
+ ao_read_config_files, // sdp/ao_read_config_files.d
ao_read_source_files, // sdp/ao_read_source_files.d
ao_output_debugs, // sdp/ao_output_debugs.d
ao_rgx, // sdp/ao_rgx.d
ao_ansi_colors, // sdp/ao_ansi_colors.d
output_hub; // output_hub.d
// std.conv;
+/+ sdlang http://sdlang.org +/
+import sdlang; // sdlang.d
+ // sdlang.parser, // sdlang/parser.d
+ // sdlang.exceptions; // sdp/ao_ansi_colors.d
+ // // std.conv;
/+ sdp sisu document parser +/
private import
std.getopt,
@@ -36,74 +41,73 @@ private import
std.utf,
// std.variant,
std.conv : to;
+struct SDPoutput {
+ auto hub(S)(
+ auto ref const S contents,
+ string[][string][string] bookindex_unordered_hashes,
+ JSONValue[] biblio,
+ // JSONValue[string] dochead_make_json,
+ // JSONValue[string] dochead_meta_json,
+ string fn_src,
+ bool[string] opt_action_bool
+ ) {
+ mixin ScreenTxtColors;
+ mixin RgxInit;
+ mixin SiSUoutputHub;
+ auto rgx = Rgx();
+ uint return_ = 0;
+ if (opt_action_bool["source"]) {
+ writeln("sisupod source");
+ }
+ if (opt_action_bool["sisupod"]) {
+ writeln("sisupod source");
+ }
+ if (opt_action_bool["text"]) {
+ writeln("text processing");
+ // auto text=SDPoutput_text();
+ // text.scroll(contents, bookindex_unordered_hashes, biblio, fn_src, opt_action_bool);
+ // // text.scroll(contents, bookindex_unordered_hashes, biblio, dochead_make, dochead_meta, fn_src, opt_action_bool);
+ }
+ if (opt_action_bool["html"]) {
+ auto html=SDPoutputHTML();
+ html.css_write;
+ html.scroll(contents, bookindex_unordered_hashes, biblio, fn_src, opt_action_bool);
+ // html.scroll(contents, bookindex_unordered_hashes, biblio, dochead_make_json, dochead_meta_json, fn_src, opt_action_bool);
+ }
+ if (opt_action_bool["epub"]) {
+ writeln("epub processing");
+ }
+ if (opt_action_bool["pdf"]) {
+ writeln("pdf processing");
+ }
+ if (opt_action_bool["odt"]) {
+ writeln("odt processing");
+ }
+ if (opt_action_bool["sqlite"]) {
+ writeln("sqlite processing");
+ }
+ if (opt_action_bool["postgresql"]) {
+ writeln("pgsql processing");
+ }
+ return return_;
+ }
+}
mixin(import("version.txt"));
mixin CompileTimeInfo;
mixin RgxInit;
void main(string[] args) {
- struct SDPoutput {
- auto hub(S)(
- auto ref const S contents,
- string[][string][string] bookindex_unordered_hashes,
- JSONValue[] biblio,
- // JSONValue[string] dochead_make_json,
- // JSONValue[string] dochead_meta_json,
- string fn_src,
- bool[string] opt_action_bool
- ) {
- mixin ScreenTxtColors;
- mixin RgxInit;
- mixin SiSUoutputHub;
- auto rgx = Rgx();
- uint return_ = 0;
- if (opt_action_bool["source"]) {
- writeln("sisupod source");
- }
- if (opt_action_bool["sisupod"]) {
- writeln("sisupod source");
- }
- if (opt_action_bool["text"]) {
- writeln("text processing");
- // auto text=SDPoutput_text();
- // text.scroll(contents, bookindex_unordered_hashes, biblio, fn_src, opt_action_bool);
- // // text.scroll(contents, bookindex_unordered_hashes, biblio, dochead_make, dochead_meta, fn_src, opt_action_bool);
- }
- if (opt_action_bool["html"]) {
- auto html=SDPoutputHTML();
- html.css_write;
- html.scroll(contents, bookindex_unordered_hashes, biblio, fn_src, opt_action_bool);
- // html.scroll(contents, bookindex_unordered_hashes, biblio, dochead_make_json, dochead_meta_json, fn_src, opt_action_bool);
- }
- if (opt_action_bool["epub"]) {
- writeln("epub processing");
- }
- if (opt_action_bool["pdf"]) {
- writeln("pdf processing");
- }
- if (opt_action_bool["odt"]) {
- writeln("odt processing");
- }
- if (opt_action_bool["sqlite"]) {
- writeln("sqlite processing");
- }
- if (opt_action_bool["postgresql"]) {
- writeln("pgsql processing");
- }
- return return_;
- }
- }
mixin SiSUheaderSkel;
- mixin SiSUheaderExtract;
mixin SiSUbiblio;
mixin SiSUrgxInitFlags;
- // mixin SiSUconfiguration;
+ mixin SiSUconfiguration;
mixin SiSUmarkupRaw;
mixin SiSUdocAbstraction;
mixin SiSUoutputDebugs;
mixin SiSUoutputHub;
mixin ScreenTxtColors;
auto raw = MarkupRaw();
- auto head = HeaderDocMetadataMakeJson();
+ auto headsdl = HeaderExtractSDL();
auto abs = Abstraction();
auto dbg = SDPoutputDebugs();
auto output = SDPoutput();
@@ -200,6 +204,34 @@ void main(string[] args) {
arg_unrecognized ~= " " ~ arg;
}
}
+ auto conf = Config();
+ auto configuration = conf.readInConfigFile();
+ /+ sdlang config +/
+ Tag sdl_root_conf;
+ try {
+ sdl_root_conf = parseSource(configuration);
+ }
+ catch(SDLangParseException e) {
+ stderr.writeln("SDLang problem with config.sdl content");
+ // Error messages of the form:
+ // myFile.sdl(5:28): Error: Invalid integer suffix.
+ stderr.writeln(e.msg);
+ }
+ debug(sdlang) {
+ // Value is a std.variant.Algebraic
+ 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);
+
+ // Tag person = sdl_root_conf.namespaces["myNamespace"].tags["person"][0];
+ // writeln("Name: ", person.attributes["name"][0].value);
+ //
+ // int age = person.tags["age"][0].values[0].get!int();
+ // writeln("Age: ", age);
+
+ writeln("config SDL:");
+ writeln(sdl_root_conf.toSDLDocument());
+ }
foreach(fn_src; fns_src) {
// foreach(fn_src; fns_src) {
if (!empty(fn_src)) {
@@ -234,13 +266,10 @@ void main(string[] args) {
writeln(header_and_content_tuple.length);
writeln(sourcefile_content[0]);
}
- /+ ↓ headers metadata & make +/
- auto header_content = head.headerContentJSON(header);
- static assert(!isTypeTuple!(header_content));
- auto dochead_make_json = header_content[0];
- auto dochead_meta_json = header_content[1];
+ /+ ↓ headers metadata & make sdlang +/
+ auto header_sdlang = headsdl.headerSDLang(header);
/+ ↓ porcess document, return abstraction as tuple +/
- auto t = abs.abstract_doc_source(sourcefile_content, dochead_make_json, dochead_meta_json);
+ auto t = abs.abstract_doc_source(sourcefile_content);
static assert(!isTypeTuple!(t));
auto doc_ao_contents = t[0]; // contents ~ endnotes ~ bookindex;
// static assert(!isIterable!(doc_ao_contents));
@@ -253,8 +282,8 @@ void main(string[] args) {
doc_ao_contents,
doc_ao_bookindex_unordered_hashes,
doc_ao_biblio,
- dochead_make_json,
- dochead_meta_json,
+ // doc_ao_make_json,
+ // doc_ao_metadata_json,
fn_src,
opt_action_bool
);