aboutsummaryrefslogtreecommitdiffhomepage
path: root/org/sdp.org
diff options
context:
space:
mode:
Diffstat (limited to 'org/sdp.org')
-rw-r--r--org/sdp.org99
1 files changed, 59 insertions, 40 deletions
diff --git a/org/sdp.org b/org/sdp.org
index 47cecf8..ebf427e 100644
--- a/org/sdp.org
+++ b/org/sdp.org
@@ -24,7 +24,7 @@ struct Version {
int minor;
int patch;
}
-enum ver = Version(0, 7, 0);
+enum ver = Version(0, 7, 1);
#+END_SRC
* sdp.d sisu document parser :sdp.d:
@@ -131,13 +131,21 @@ std.path,
std.stdio,
std.variant,
-**** version.txt :version:
+**** mixins
+***** version.txt :version:
#+NAME: sdp_version_mixin
#+BEGIN_SRC d
mixin(import("version.txt"));
#+END_SRC
+***** std mixins
+#+NAME: std_mixins
+#+BEGIN_SRC d
+mixin CompileTimeInfo;
+mixin RgxInit;
+#+END_SRC
+
*** mixin :mixin:
#+NAME: sdp_mixin
@@ -289,7 +297,7 @@ auto conf_doc_make_aa = confsdl.documentMakeSDLangToAAmake(sdl_root_doc_make);
*** filename provided [+1] :file:process:
**** scope (loop) :scope:
-#+NAME: sdp_each_file_do
+#+NAME: sdp_each_file_do_scope
#+BEGIN_SRC d
scope(success) {
debug(checkdoc) {
@@ -314,39 +322,47 @@ enforce(
);
#+END_SRC
-**** [#A] read file :file:read:
+**** [#A] read in raw file (using filename with path) :file:read:
[[./ao_markup_source_raw.org][ao_markup_source_raw]]
-#+NAME: sdp_each_file_do
+#+NAME: sdp_each_file_do_read_sisu_markup_file
#+BEGIN_SRC d
/+ ↓ read file +/
-auto header_and_content_tuple = raw.sourceContent(fn_src);
-static assert(!isTypeTuple!(header_and_content_tuple));
-auto header = header_and_content_tuple[0];
-auto sourcefile_content = header_and_content_tuple[1];
-debug(header_and_content) {
+auto read_in_file_string = raw.sourceContent(fn_src);
+#+END_SRC
+
+**** [#A] split raw content file into: doc header & doc content :file:read:
+
+#+NAME: sdp_each_file_do_split_sisu_markup_file_content_into_header_and_body
+#+BEGIN_SRC d
+/+ ↓ file tuple of header and content +/
+auto header_and_body_tuple = raw.sourceContentSplitIntoHeaderAndBody(read_in_file_string, fn_src);
+auto header = header_and_body_tuple[0];
+auto content_body = header_and_body_tuple[1];
+debug(header_and_body) {
writeln(header);
- writeln(header_and_content_tuple.length);
- writeln(sourcefile_content[0]);
+ writeln(header_and_body_tuple.length);
+ writeln(content_body[0]);
}
#+END_SRC
-**** [#A] read doc header: metadata & make :doc:header:metadata:make:
+**** [#A] split doc header into: metadata & make :doc:header:metadata:make:
-#+NAME: sdp_each_file_do
+#+NAME: sdp_each_file_do_split_sisu_markup_file_header_into_make_and_meta
#+BEGIN_SRC d
+/+ ↓ split header into make and meta +/
auto header_make_and_meta_tuple = head.headerContentAA(header, conf_doc_make_aa);
static assert(!isTypeTuple!(header_make_and_meta_tuple));
-string[string][string] dochead_make_aa = header_make_and_meta_tuple[0];
-string[string][string] dochead_meta_aa = header_make_and_meta_tuple[1];
+string[string][string] dochead_make = header_make_and_meta_tuple[0];
+string[string][string] dochead_meta = header_make_and_meta_tuple[1];
#+END_SRC
**** [#A] processing: document abstraction, tuple :processing:
-#+NAME: sdp_each_file_do
+#+NAME: sdp_each_file_do_document_abstraction
#+BEGIN_SRC d
-/+ ↓ process document, return abstraction as tuple +/
-auto t = abs.abstract_doc_source(sourcefile_content, dochead_make_aa, dochead_meta_aa);
+/+ ↓ document abstraction: process document, return abstraction as tuple +/
+auto t = abs.abstract_doc_source(content_body, dochead_make, dochead_meta);
static assert(!isTypeTuple!(t));
auto doc_ao_contents = t[0]; // contents ~ endnotes ~ bookindex;
// static assert(!isIterable!(doc_ao_contents));
@@ -355,19 +371,18 @@ auto doc_ao_biblio = t[2];
// destroy(t);
#+END_SRC
-**** TODO debug :debug:
-***** [#A] debug document parts (checkdoc) :checkdoc:
+**** TODO debug (document parts, checkdoc) :debug:checkdoc:
-#+NAME: sdp_each_file_do
+#+NAME: sdp_each_file_do_debugs_checkdoc
#+BEGIN_SRC d
-/+ ↓ document parts +/
+/+ ↓ debugs +/
debug(checkdoc) { // checkbook & dumpdoc
dbg.abstract_doc_source_debugs(
doc_ao_contents,
doc_ao_bookindex_unordered_hashes,
doc_ao_biblio,
- dochead_make_aa,
- dochead_meta_aa,
+ dochead_make,
+ dochead_meta,
fn_src,
opt_action_bool
);
@@ -376,15 +391,15 @@ debug(checkdoc) { // checkbook & dumpdoc
**** TODO process outputs :outputs:
-#+NAME: sdp_each_file_do
+#+NAME: sdp_each_file_do_selected_output
#+BEGIN_SRC d
/+ ↓ output hub +/
output.hub(
doc_ao_contents,
doc_ao_bookindex_unordered_hashes,
doc_ao_biblio,
- dochead_make_aa,
- dochead_meta_aa,
+ dochead_make,
+ dochead_meta,
fn_src,
opt_action_bool
);
@@ -392,7 +407,7 @@ output.hub(
**** scope (on loop exit) :scope:exit:
-#+NAME: sdp_each_file_do
+#+NAME: sdp_each_file_do_scope_exit
#+BEGIN_SRC d
scope(exit) {
debug(checkdoc) {
@@ -401,7 +416,7 @@ scope(exit) {
fn_src
);
}
- destroy(sourcefile_content);
+ destroy(content_body);
destroy(t);
destroy(doc_ao_contents);
// destroy(doc_ao_make_aa);
@@ -422,21 +437,18 @@ break;
#+END_SRC
* tangles (code structure) :tangle:
-** sdp :sdp.d:
-*** TODO src/sdp.d
+** TODO sdp src/sdp.d :sdp.d:
#+BEGIN_SRC d :tangle ../src/sdp.d :shebang #!/usr/bin/env rdmd
/+
sdp
- sdp.d
+/
<<imports_sdp>>
<<imports_sdlang>>
<<imports_std>>
<<sdp_output_selection>>
<<sdp_version_mixin>>
-mixin CompileTimeInfo;
-mixin RgxInit;
+<<std_mixins>>
/++ A SiSU document parser writen in D. +/
void main(string[] args) {
<<sdp_mixin>>
@@ -444,7 +456,14 @@ void main(string[] args) {
<<sdp_conf_files>>
foreach(fn_src; fns_src) {
if (!empty(fn_src)) {
- <<sdp_each_file_do>>
+ <<sdp_each_file_do_scope>>
+ <<sdp_each_file_do_read_sisu_markup_file>>
+ <<sdp_each_file_do_split_sisu_markup_file_content_into_header_and_body>>
+ <<sdp_each_file_do_split_sisu_markup_file_header_into_make_and_meta>>
+ <<sdp_each_file_do_document_abstraction>>
+ <<sdp_each_file_do_debugs_checkdoc>>
+ <<sdp_each_file_do_selected_output>>
+ <<sdp_each_file_do_scope_exit>>
} else {
<<sdp_no_filename_provided>>
}
@@ -640,12 +659,12 @@ democratizing_innovation.eric_von_hippel.sst
#+END_SRC
** read markup files
-**** regular .sst
+*** regular .sst
relatively straight forward
-**** master .ssm
+*** master .ssm
master files have been able to read in inser files .ssi and regular files .sst
-***** reading in .ssi files is straightforward
-***** reading in .sst files is more problematic
+**** reading in .ssi files is straightforward
+**** reading in .sst files is more problematic
.sst files have their own root (structure)
either
- the root needs to be disabled - not used