From 60d6073bcfc4fa91253428094813de0dac41a2b4 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Tue, 9 May 2017 13:01:06 -0400 Subject: 0.16.0 files/modules re-arranged --- src/sdp/ao/conf_make_meta.d | 47 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/sdp/ao/conf_make_meta.d (limited to 'src/sdp/ao/conf_make_meta.d') 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
+ + 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; + } +} -- cgit v1.2.3