diff options
Diffstat (limited to 'src/sdp/abstraction.d')
-rw-r--r-- | src/sdp/abstraction.d | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/src/sdp/abstraction.d b/src/sdp/abstraction.d deleted file mode 100644 index 351fd1f..0000000 --- a/src/sdp/abstraction.d +++ /dev/null @@ -1,116 +0,0 @@ -module sdp.abstraction; -template SiSUabstraction() { - /+ sdp: sisu document parser, see http://sisudoc.org +/ - import sdp.imports_for_ao; - - - mixin SiSUrgxInit; - mixin SiSUregisters; - mixin SiSUheaderExtractSDLang; - mixin SiSUnode; - mixin SiSUbiblio; - mixin SiSUrgxInitFlags; - mixin outputHub; - enum headBody { header, body_content, insert_filelist } - enum makeMeta { make, meta } - 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 confsdl = HeaderExtractSDL(); - auto conf_settings_aa = confsdl.configSettingsSDLangToAAmake(sdl_root_configuration); - auto conf_doc_make_aa = confsdl.documentMakeSDLangToAAmake(sdl_root_doc_make); - /+ ↓ read file (filename with path) +/ - /+ ↓ file tuple of header and content +/ - auto _header_body_inserts = - SiSUrawMarkupContent!()(fn_src); - static assert(!isTypeTuple!(_header_body_inserts)); - static assert(_header_body_inserts.length==3); - debug(header_and_body) { - writeln(header); - writeln(_header_body_inserts.length); - writeln(_header_body_inserts.length[headBody.body_content][0]); - } - /+ ↓ split header into make and meta +/ - auto _make_and_meta = - SiSUheaderExtractHub!()(_header_body_inserts[headBody.header], conf_doc_make_aa); - static assert(!isTypeTuple!(_make_and_meta)); - static assert(_make_and_meta.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]), - opts - ); - static assert(!isTypeTuple!(da)); - static assert(da.length==5); - auto doc_abstraction = da[docAbst.doc_abstraction]; /+ head ~ toc ~ body ~ endnotes_seg ~ glossary ~ bibliography ~ bookindex ~ blurb; +/ - auto _document_section_keys_sequenced = da[docAbst.section_keys]; - string[] _doc_html_segnames = da[docAbst.segnames]; - string[] _doc_epub_segnames_0_4 = da[docAbst.segnames_0_4]; - auto _images = da[docAbst.images]; - 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 dochead_make() { - string[string][string] _k = _make_and_meta[makeMeta.make]; - return _k; - } - auto dochead_meta() { - string[string][string] _k = _make_and_meta[makeMeta.meta]; - return _k; - } - auto src_path_info() { - string _pwd = env["pwd"]; - auto _k = SiSUpathsSRC!()(_pwd, fn_src); - return _k; - } - auto source_filename() { - string _k = fn_src; - return _k; - } - auto language() { - string _k; - if (auto m = fn_src.match(rgx.language_code_and_filename)) { - _k = m.captures[1]; - } else { - _k = "en"; - } - return _k; - } - auto file_insert_list() { - string[] _k = _header_body_inserts[headBody.insert_filelist]; - return _k; - } - auto image_list() { - auto _k = _images; - return _k; - } - auto opt_action_bool() { - bool[string] _k = opts; - return _k; - } - auto environment() { - auto _k = env; - return _k; - } - } - auto doc_matters = DocumentMatters(); - auto t = tuple(doc_abstraction, doc_matters); - static assert(t.length==2); - return t; - } -} |