From bc6971c1d19d4dcb80f872de6aa1f39a1584b738 Mon Sep 17 00:00:00 2001
From: Ralph Amissah <ralph@amissah.com>
Date: Fri, 27 Jan 2017 20:58:33 -0500
Subject: read src file and split into head and body, template

---
 org/ao_read_source_files.org   | 13 +++++++++++++
 org/sdp.org                    |  4 +---
 src/sdp.d                      |  4 +---
 src/sdp/ao_read_source_files.d | 13 +++++++++++++
 4 files changed, 28 insertions(+), 6 deletions(-)

diff --git a/org/ao_read_source_files.org b/org/ao_read_source_files.org
index 350ee19..c362f9a 100644
--- a/org/ao_read_source_files.org
+++ b/org/ao_read_source_files.org
@@ -75,12 +75,25 @@ template SiSUconfigSDLangHub() {
 +/
 template SiSUmarkupRaw() {
   private import
+    ao_rgx;
+  private import
+    std.array,
     std.exception,
+    std.path,
     std.regex,
     std.stdio,
+    std.traits,
+    std.typecons,
     std.utf,
     std.conv : to;
+  mixin SiSUrgxInit;
   auto rgx = Rgx();
+  auto rawsrc = MarkupRaw();
+  auto SiSUmarkupRaw(Fn)(Fn fn_src) {
+    auto _0_header_1_body_content_2_insert_filelist_tuple =
+      rawsrc.sourceContentSplitIntoHeaderAndBody(rawsrc.sourceContent(fn_src), fn_src);
+    return _0_header_1_body_content_2_insert_filelist_tuple;
+  }
   struct MarkupRaw {
     final sourceContent(in string fn_src) {
       auto raw = MarkupRawUnit();
diff --git a/org/sdp.org b/org/sdp.org
index 48a4e12..86f0c98 100644
--- a/org/sdp.org
+++ b/org/sdp.org
@@ -190,7 +190,6 @@ mixin SiSUnode;
 mixin SiSUbiblio;
 mixin SiSUrgxInitFlags;
 mixin SiSUconfigSDLangHub;
-mixin SiSUmarkupRaw;
 mixin outputHub;
 #+END_SRC
 
@@ -198,7 +197,6 @@ mixin outputHub;
 
 #+NAME: sdp_args
 #+BEGIN_SRC d
-auto raw = MarkupRaw();
 /+
 struct DocumentParts {
   string[string][] contents;
@@ -381,7 +379,7 @@ enforce(
 /+ ↓ read file (filename with path) +/
 /+ ↓ file tuple of header and content +/
 auto _0_header_1_body_content_2_insert_filelist_tuple =
-  raw.sourceContentSplitIntoHeaderAndBody(raw.sourceContent(fn_src), fn_src);
+  SiSUmarkupRaw!()(fn_src);
 static assert(!isTypeTuple!(_0_header_1_body_content_2_insert_filelist_tuple));
 static assert(_0_header_1_body_content_2_insert_filelist_tuple.length==3);
 debug(header_and_body) {
diff --git a/src/sdp.d b/src/sdp.d
index fddffbd..20133cd 100755
--- a/src/sdp.d
+++ b/src/sdp.d
@@ -48,9 +48,7 @@ void main(string[] args) {
   mixin SiSUbiblio;
   mixin SiSUrgxInitFlags;
   mixin SiSUconfigSDLangHub;
-  mixin SiSUmarkupRaw;
   mixin outputHub;
-  auto raw = MarkupRaw();
   /+
   struct DocumentParts {
     string[string][] contents;
@@ -196,7 +194,7 @@ void main(string[] args) {
       /+ ↓ read file (filename with path) +/
       /+ ↓ file tuple of header and content +/
       auto _0_header_1_body_content_2_insert_filelist_tuple =
-        raw.sourceContentSplitIntoHeaderAndBody(raw.sourceContent(fn_src), fn_src);
+        SiSUmarkupRaw!()(fn_src);
       static assert(!isTypeTuple!(_0_header_1_body_content_2_insert_filelist_tuple));
       static assert(_0_header_1_body_content_2_insert_filelist_tuple.length==3);
       debug(header_and_body) {
diff --git a/src/sdp/ao_read_source_files.d b/src/sdp/ao_read_source_files.d
index f25ed7e..c7616a2 100644
--- a/src/sdp/ao_read_source_files.d
+++ b/src/sdp/ao_read_source_files.d
@@ -5,12 +5,25 @@
 +/
 template SiSUmarkupRaw() {
   private import
+    ao_rgx;
+  private import
+    std.array,
     std.exception,
+    std.path,
     std.regex,
     std.stdio,
+    std.traits,
+    std.typecons,
     std.utf,
     std.conv : to;
+  mixin SiSUrgxInit;
   auto rgx = Rgx();
+  auto rawsrc = MarkupRaw();
+  auto SiSUmarkupRaw(Fn)(Fn fn_src) {
+    auto _0_header_1_body_content_2_insert_filelist_tuple =
+      rawsrc.sourceContentSplitIntoHeaderAndBody(rawsrc.sourceContent(fn_src), fn_src);
+    return _0_header_1_body_content_2_insert_filelist_tuple;
+  }
   struct MarkupRaw {
     final sourceContent(in string fn_src) {
       auto raw = MarkupRawUnit();
-- 
cgit v1.2.3