diff options
author | Ralph Amissah <ralph@amissah.com> | 2017-05-09 13:01:06 -0400 |
---|---|---|
committer | Ralph Amissah <ralph@amissah.com> | 2019-04-10 15:14:14 -0400 |
commit | 60d6073bcfc4fa91253428094813de0dac41a2b4 (patch) | |
tree | cef8e223469724d9e42dea81d6ded5ffc75a9be2 /src/sdp/ao/conf_make_meta.d | |
parent | modules, collective imports (diff) |
0.16.0 files/modules re-arrangeddoc-reform_v0.0.16
Diffstat (limited to 'src/sdp/ao/conf_make_meta.d')
-rw-r--r-- | src/sdp/ao/conf_make_meta.d | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/sdp/ao/conf_make_meta.d b/src/sdp/ao/conf_make_meta.d new file mode 100644 index 0000000..0f6d27d --- /dev/null +++ b/src/sdp/ao/conf_make_meta.d @@ -0,0 +1,47 @@ +/++ + extract native/orig header return associative array<BR> + + the header is passed as text (lopped off top of a sisu markup file until the + required first heading ^A~), determine whether is a native header or sdlang one + with a regex check if whether it contains the "native header" required tag/field + @title: then process accordingly as a "native header" or "sdlang header" + converting the metadata and make instructions to a common json format used by + program internally. Moved to associative array. ++/ +module sdp.ao.conf_make_meta; +template SiSUheaderExtractHub() { + import + std.exception, + std.regex, + std.stdio, + std.traits, + std.typecons, + std.utf, + std.conv : to; + import sdlang; + import + sdp.ao.conf_make_meta_native, + sdp.ao.conf_make_meta_sdlang, + sdp.ao.rgx; + mixin SiSUrgxInit; + mixin SiSUheaderExtractNative; + mixin SiSUheaderExtractSDLang; + auto rgx = Rgx(); + auto SiSUheaderExtractHub(Src, DocMake)( + Src header_src, + DocMake conf_doc_make_aa + ) { + debug(asserts){ + static assert(is(typeof(header_src) == char[])); + static assert(is(typeof(conf_doc_make_aa) == string[string][string])); + } + auto head_native = HeaderDocMetadataAndMakeNativeToAA(); + auto head_sdlang = HeaderExtractSDL(); + auto header_make_and_meta_tuple = (header_src.match(rgx.native_header_meta_title)) + ? (head_native.headerNativeToAA(header_src)) + : (head_sdlang.headerSDLangToAA(header_src, conf_doc_make_aa)); + static assert(!isTypeTuple!(header_make_and_meta_tuple)); + static assert(header_make_and_meta_tuple.length==2); + return header_make_and_meta_tuple; + } +} |