diff options
-rw-r--r-- | org/sdp.org | 69 | ||||
-rwxr-xr-x | src/sdp.d | 50 |
2 files changed, 60 insertions, 59 deletions
diff --git a/org/sdp.org b/org/sdp.org index 9452b57..663ead0 100644 --- a/org/sdp.org +++ b/org/sdp.org @@ -47,8 +47,7 @@ void main(string[] args) { foreach(fn_src; fns_src) { if (!empty(fn_src)) { <<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_read_and_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>> @@ -384,80 +383,78 @@ enforce( #+END_SRC *** 0. prepare document, _document abstraction_ -**** 0. _read in raw file_ (using filename with path) :file:read: +**** 0. (a) _read in raw file_ & (b) split content into: _doc header & doc content_ - [[./ao_read_source_files.org][ao_read_source_files]] - -#+NAME: sdp_each_file_do_read_sisu_markup_file -#+BEGIN_SRC d -/+ ↓ read file +/ -auto read_in_file_string = raw.sourceContent(fn_src); -#+END_SRC - -**** 1. split raw content file into: _doc header & doc content_ - [[./ao_read_source_files.org][ao_read_source_files]] -#+NAME: sdp_each_file_do_split_sisu_markup_file_content_into_header_and_body +#+NAME: sdp_each_file_do_read_and_split_sisu_markup_file_content_into_header_and_body #+BEGIN_SRC d +/+ ↓ read file (filename with path) +/ /+ ↓ 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]; -auto _file_insert_list = header_and_body_tuple[2]; +auto _0_header_1_body_content_2_insert_filelist_tuple = + raw.sourceContentSplitIntoHeaderAndBody(raw.sourceContent(fn_src), 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) { writeln(header); - writeln(header_and_body_tuple.length); - writeln(content_body[0]); + writeln(_0_header_1_body_content_2_insert_filelist_tuple.length); + writeln(_0_header_1_body_content_2_insert_filelist_tuple.length[1][0]); } #+END_SRC -**** 2. split doc header into: _metadata & make_ :doc:header:metadata:make: +**** 1. split doc header into: _metadata & make_ :doc:header:metadata:make: - [[./ao_conf_make_meta.org][ao_conf_make_meta]] #+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 = header_make_and_meta_tuple[0]; -string[string][string] _dochead_meta = header_make_and_meta_tuple[1]; +auto _0_make_1_dochead_meta_tuple = + head.headerContentAA(_0_header_1_body_content_2_insert_filelist_tuple[0], conf_doc_make_aa); +static assert(!isTypeTuple!(_0_make_1_dochead_meta_tuple)); +static assert(_0_make_1_dochead_meta_tuple.length==2); #+END_SRC -**** 3. processing: _document abstraction, tuple_ :processing: +**** 2. processing: _document abstraction, tuple_ :processing: - [[./ao_abstract_doc_source.org][ao_abstract_doc_source]] #+NAME: sdp_each_file_do_document_abstraction #+BEGIN_SRC d /+ ↓ document abstraction: process document, return abstraction as tuple +/ -auto t = abs.abstract_doc_source(content_body, _dochead_make, _dochead_meta, _opt_action_bool); +auto t = abs.abstract_doc_source( + (_0_header_1_body_content_2_insert_filelist_tuple[1]), + (_0_make_1_dochead_meta_tuple[0]), + (_0_make_1_dochead_meta_tuple[1]), + _opt_action_bool +); static assert(!isTypeTuple!(t)); auto doc_abstraction = t[0]; // head ~ toc ~ contents ~ endnotes_seg ~ glossary ~ bibliography ~ bookindex ~blurb; -string[][string] document_section_keys_sequenced = t[1]; -string[] doc_html_segnames = t[2]; +string[][string] _document_section_keys_sequenced = t[1]; +string[] _doc_html_segnames = t[2]; #+END_SRC -**** 4. _document matters_ (compiled from various sources) +**** 3. _document matters_ (compiled from various sources) #+NAME: sdp_each_file_do_document_abstraction #+BEGIN_SRC d struct DocumentMatters { string[] keys_seq_seg() { - string[] _k = document_section_keys_sequenced["seg"]; + string[] _k = _document_section_keys_sequenced["seg"]; return _k; } string[] keys_seq_scroll() { - string[] _k = document_section_keys_sequenced["scroll"]; + string[] _k = _document_section_keys_sequenced["scroll"]; return _k; } string[] segnames() { - string[] _k = doc_html_segnames; + string[] _k = _doc_html_segnames; return _k; } auto dochead_make() { - string[string][string] _k = _dochead_make; + string[string][string] _k = _0_make_1_dochead_meta_tuple[0]; return _k; } auto dochead_meta() { - string[string][string] _k = _dochead_meta; + string[string][string] _k = _0_make_1_dochead_meta_tuple[1]; return _k; } auto source_filename() { @@ -465,7 +462,7 @@ struct DocumentMatters { return _k; } auto file_insert_list() { - string[] _k = _file_insert_list; + string[] _k = _0_header_1_body_content_2_insert_filelist_tuple[2]; return _k; } auto opt_action_bool() { @@ -516,10 +513,10 @@ scope(exit) { fn_src ); } - destroy(content_body); + destroy(_0_header_1_body_content_2_insert_filelist_tuple); destroy(t); destroy(doc_abstraction); - destroy(doc_html_segnames); + destroy(_doc_html_segnames); destroy(fn_src); } #+END_SRC @@ -204,48 +204,52 @@ void main(string[] args) { match(fn_src, rgx.src_pth), "not a sisu markup filename" ); - /+ ↓ read file +/ - auto read_in_file_string = raw.sourceContent(fn_src); + /+ ↓ read file (filename with path) +/ /+ ↓ 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]; - auto _file_insert_list = header_and_body_tuple[2]; + auto _0_header_1_body_content_2_insert_filelist_tuple = + raw.sourceContentSplitIntoHeaderAndBody(raw.sourceContent(fn_src), 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) { writeln(header); - writeln(header_and_body_tuple.length); - writeln(content_body[0]); + writeln(_0_header_1_body_content_2_insert_filelist_tuple.length); + writeln(_0_header_1_body_content_2_insert_filelist_tuple.length[1][0]); } /+ ↓ 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 = header_make_and_meta_tuple[0]; - string[string][string] _dochead_meta = header_make_and_meta_tuple[1]; + auto _0_make_1_dochead_meta_tuple = + head.headerContentAA(_0_header_1_body_content_2_insert_filelist_tuple[0], conf_doc_make_aa); + static assert(!isTypeTuple!(_0_make_1_dochead_meta_tuple)); + static assert(_0_make_1_dochead_meta_tuple.length==2); /+ ↓ document abstraction: process document, return abstraction as tuple +/ - auto t = abs.abstract_doc_source(content_body, _dochead_make, _dochead_meta, _opt_action_bool); + auto t = abs.abstract_doc_source( + (_0_header_1_body_content_2_insert_filelist_tuple[1]), + (_0_make_1_dochead_meta_tuple[0]), + (_0_make_1_dochead_meta_tuple[1]), + _opt_action_bool + ); static assert(!isTypeTuple!(t)); auto doc_abstraction = t[0]; // head ~ toc ~ contents ~ endnotes_seg ~ glossary ~ bibliography ~ bookindex ~blurb; - string[][string] document_section_keys_sequenced = t[1]; - string[] doc_html_segnames = t[2]; + string[][string] _document_section_keys_sequenced = t[1]; + string[] _doc_html_segnames = t[2]; struct DocumentMatters { string[] keys_seq_seg() { - string[] _k = document_section_keys_sequenced["seg"]; + string[] _k = _document_section_keys_sequenced["seg"]; return _k; } string[] keys_seq_scroll() { - string[] _k = document_section_keys_sequenced["scroll"]; + string[] _k = _document_section_keys_sequenced["scroll"]; return _k; } string[] segnames() { - string[] _k = doc_html_segnames; + string[] _k = _doc_html_segnames; return _k; } auto dochead_make() { - string[string][string] _k = _dochead_make; + string[string][string] _k = _0_make_1_dochead_meta_tuple[0]; return _k; } auto dochead_meta() { - string[string][string] _k = _dochead_meta; + string[string][string] _k = _0_make_1_dochead_meta_tuple[1]; return _k; } auto source_filename() { @@ -253,7 +257,7 @@ void main(string[] args) { return _k; } auto file_insert_list() { - string[] _k = _file_insert_list; + string[] _k = _0_header_1_body_content_2_insert_filelist_tuple[2]; return _k; } auto opt_action_bool() { @@ -283,10 +287,10 @@ void main(string[] args) { fn_src ); } - destroy(content_body); + destroy(_0_header_1_body_content_2_insert_filelist_tuple); destroy(t); destroy(doc_abstraction); - destroy(doc_html_segnames); + destroy(_doc_html_segnames); destroy(fn_src); } } else { |