aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2017-07-13 07:44:03 -0400
committerRalph Amissah <ralph@amissah.com>2019-04-10 15:14:14 -0400
commit22cea68385b57a1593f5751e49cfdd41d8067997 (patch)
tree9e61339eb58679977c24962b1cfd2f50aa7f2998
parentsdl extract and composite conf (make) (diff)
0.18.0 rename meta from ao (considered adr)
-rw-r--r--makefile2
-rw-r--r--maker.org2
-rw-r--r--org/default_misc.org38
-rw-r--r--org/default_paths.org8
-rw-r--r--org/default_regex.org62
-rw-r--r--org/imports.org14
-rw-r--r--org/meta_abstraction.org (renamed from org/ao_doc_abstraction.org)643
-rw-r--r--org/meta_conf_make_meta.org (renamed from org/ao_conf_make_meta.org)62
-rw-r--r--org/meta_debugs.org (renamed from org/ao_debugs.org)76
-rw-r--r--org/meta_read_source_files.org (renamed from org/ao_read_source_files.org)96
-rw-r--r--org/output_xmls_css.org4
-rw-r--r--org/sdp.org290
-rw-r--r--src/sdp/meta/composite_make.d (renamed from src/sdp/ao/composite_make.d)6
-rw-r--r--src/sdp/meta/conf_make_meta.d (renamed from src/sdp/ao/conf_make_meta.d)8
-rw-r--r--src/sdp/meta/conf_make_meta_native.d (renamed from src/sdp/ao/conf_make_meta_native.d)6
-rw-r--r--src/sdp/meta/conf_make_meta_sdlang.d (renamed from src/sdp/ao/conf_make_meta_sdlang.d)6
-rw-r--r--src/sdp/meta/defaults.d (renamed from src/sdp/ao/defaults.d)2
-rw-r--r--src/sdp/meta/doc_debugs.d (renamed from src/sdp/ao/doc_debugs.d)6
-rw-r--r--src/sdp/meta/metadoc.d (renamed from src/sdp/ao/abstraction.d)26
-rw-r--r--src/sdp/meta/metadoc_from_src.d (renamed from src/sdp/ao/abstract_doc_source.d)268
-rw-r--r--src/sdp/meta/metadoc_summary.d (renamed from src/sdp/ao/abstraction_summary.d)6
-rw-r--r--src/sdp/meta/object_setter.d (renamed from src/sdp/ao/object_setter.d)5
-rw-r--r--src/sdp/meta/package.d (renamed from src/sdp/ao/package.d)6
-rw-r--r--src/sdp/meta/read_config_files.d (renamed from src/sdp/ao/read_config_files.d)10
-rw-r--r--src/sdp/meta/read_source_files.d (renamed from src/sdp/ao/read_source_files.d)10
-rw-r--r--src/sdp/meta/rgx.d (renamed from src/sdp/ao/rgx.d)4
-rw-r--r--src/sdp/output/paths_output.d2
-rw-r--r--src/sdp/output/paths_source.d4
-rwxr-xr-xsrc/sdp/sdp.d26
-rw-r--r--views/version.txt2
30 files changed, 1001 insertions, 699 deletions
diff --git a/makefile b/makefile
index 949fa12..4c2ab15 100644
--- a/makefile
+++ b/makefile
@@ -195,7 +195,7 @@ release_rdmd: distclean tangle $(PRG_SRCDIR)/$(PRG_SRC)
$(DC_FLAG_BINOF)$(PRG_BINDIR)/$(PRG_BIN) \
$(PRG_SRCDIR)/$(PRG_SRC)
skel:
- mkdir -p $(PRG_SRCDIR)/$(PRG_NAME)/ao; \
+ mkdir -p $(PRG_SRCDIR)/$(PRG_NAME)/meta; \
mkdir -p $(PRG_SRCDIR)/$(PRG_NAME)/conf; \
mkdir -p $(PRG_SRCDIR)/$(PRG_NAME)/output; \
mkdir -p $(PRG_SRCDIR)/$(PRG_NAME); \
diff --git a/maker.org b/maker.org
index 191751e..75b513f 100644
--- a/maker.org
+++ b/maker.org
@@ -431,7 +431,7 @@ release_rdmd: distclean tangle $(PRG_SRCDIR)/$(PRG_SRC)
#+BEGIN_SRC makefile :tangle makefile
skel:
- mkdir -p $(PRG_SRCDIR)/$(PRG_NAME)/ao; \
+ mkdir -p $(PRG_SRCDIR)/$(PRG_NAME)/meta; \
mkdir -p $(PRG_SRCDIR)/$(PRG_NAME)/conf; \
mkdir -p $(PRG_SRCDIR)/$(PRG_NAME)/output; \
mkdir -p $(PRG_SRCDIR)/$(PRG_NAME); \
diff --git a/org/default_misc.org b/org/default_misc.org
index 4fe8a7b..993d2a0 100644
--- a/org/default_misc.org
+++ b/org/default_misc.org
@@ -11,33 +11,33 @@
#+PROPERTY: header-args :padline no :exports code :noweb yes
#+EXPORT_SELECT_TAGS: export
#+EXPORT_EXCLUDE_TAGS: noexport
-#+FILETAGS: :sdp:rel:ao:
+#+FILETAGS: :sdp:rel:meta:
#+TAGS: assert(a) class(c) debug(d) mixin(m) sdp(s) tangle(T) template(t) WEB(W) noexport(n)
[[./sdp.org][sdp]] [[./][org/]]
-* 0. ao defaults :module:sdp:ao_defaults:
+* 0. meta defaults :module:sdp:meta_defaults:
** 0. module template
#+name: tangle_defaults
-#+BEGIN_SRC d :tangle ../src/sdp/ao/defaults.d
+#+BEGIN_SRC d :tangle ../src/sdp/meta/defaults.d
/++
default settings
+/
-module sdp.ao.defaults;
+module sdp.meta.defaults;
template SiSUregisters() {
- <<ao_defaults_imports>>
- <<ao_defaults_template_registers>>
+ <<meta_defaults_imports>>
+ <<meta_defaults_template_registers>>
}
-<<ao_defaults_template_init_flags>>
-<<ao_defaults_template_node>>
-<<ao_defaults_template_biblio>>
+<<meta_defaults_template_init_flags>>
+<<meta_defaults_template_node>>
+<<meta_defaults_template_biblio>>
<<defaults_template_markup>>
<<defaults_template_language_codes>>
#+END_SRC
** imports
-#+name: ao_defaults_imports
+#+name: meta_defaults_imports
#+BEGIN_SRC d
import
std.algorithm,
@@ -63,7 +63,7 @@ import
** settings metadata associative array indexes :settings:
**** conf associative array
-#+name: ao_defaults_template_registers
+#+name: meta_defaults_template_registers
#+BEGIN_SRC d
string[string][string] conf_aa_empty() {
auto conf_ = [
@@ -144,7 +144,7 @@ string[string][string] conf_aa_empty() {
**** meta (metadata) associative array
-#+name: ao_defaults_template_registers
+#+name: meta_defaults_template_registers
#+BEGIN_SRC d
string[string][string] meta_aa_empty() {
auto meta_ = [
@@ -212,7 +212,7 @@ string[string][string] meta_aa_empty() {
** metadata associative array indexes :header:
-#+name: ao_defaults_template_registers
+#+name: meta_defaults_template_registers
#+BEGIN_SRC d
auto ptr_head_main =
[
@@ -310,7 +310,7 @@ auto config_jsonstr = `{
*** notes headers
-#+name: ao_defaults_template
+#+name: meta_defaults_template
#+BEGIN_SRC d
/+
/+
@@ -390,7 +390,7 @@ header.
** template: flags regex initialize :regex_flags:
-#+name: ao_defaults_template_init_flags
+#+name: meta_defaults_template_init_flags
#+BEGIN_SRC d
template SiSUrgxInitFlags() {
/+ regex flags +/
@@ -434,7 +434,7 @@ template SiSUrgxInitFlags() {
}
#+END_SRC
-#+name: ao_defaults_template_node
+#+name: meta_defaults_template_node
#+BEGIN_SRC d
template SiSUnode() {
string[string] node_metadata_heading_str() {
@@ -482,7 +482,7 @@ template SiSUnode() {
** template: bibliography :biblio:
-#+name: ao_defaults_template_biblio
+#+name: meta_defaults_template_biblio
#+BEGIN_SRC d
template SiSUbiblio() {
// required: deemed_author (author || editor); year; fulltitle;
@@ -562,7 +562,7 @@ import
std.conv : to;
#+END_SRC
-* 2. defaults shared by ao & output (generic)
+* 2. defaults shared by meta & output (generic)
** template: internal markup :markup:
#+name: defaults_template_markup
@@ -693,7 +693,7 @@ template SiSUlanguageCodes() {
* +set colors for terminal+ (unused) :colors:terminal:
-#+name: ao_ansi_colors
+#+name: meta_ansi_colors
#+BEGIN_SRC d
string[string] scr_txt_color = [
"off" : "\033[0m",
diff --git a/org/default_paths.org b/org/default_paths.org
index 3a250a0..2a414bd 100644
--- a/org/default_paths.org
+++ b/org/default_paths.org
@@ -11,7 +11,7 @@
#+PROPERTY: header-args :padline no :exports code :noweb yes
#+EXPORT_SELECT_TAGS: export
#+EXPORT_EXCLUDE_TAGS: noexport
-#+FILETAGS: :sdp:rel:file:path:
+#+FILETAGS: :sdp:rel:path:file:
#+TAGS: assert(a) class(c) debug(d) mixin(m) sdp(s) tangle(T) template(t) WEB(W) noexport(n)
[[./sdp.org][sdp]] [[./][org/]]
@@ -22,14 +22,14 @@
/++
read configuration files<BR>
- read config files<BR>
- ao_config_files.d
+ meta_config_files.d
+/
module sdp.output.paths_source;
import std.array,
std.path,
std.regex,
std.stdio;
-import sdp.ao.rgx;
+import sdp.meta.rgx;
template SiSUpathsSRC() {
mixin SiSUrgxInit;
auto rgx = Rgx();
@@ -93,7 +93,7 @@ import std.array,
std.path,
std.regex,
std.stdio;
-import sdp.ao.rgx;
+import sdp.meta.rgx;
<<template_paths_sisupod>>
<<template_paths_sisupod_zipped_archive>>
<<template_paths_sisupod_unzipped_filesystem>>
diff --git a/org/default_regex.org b/org/default_regex.org
index e1f8d26..95167b4 100644
--- a/org/default_regex.org
+++ b/org/default_regex.org
@@ -11,11 +11,11 @@
#+PROPERTY: header-args :padline no :exports code :noweb yes
#+EXPORT_SELECT_TAGS: export
#+EXPORT_EXCLUDE_TAGS: noexport
-#+FILETAGS: :sdp:rel:ao:
+#+FILETAGS: :sdp:rel:meta:
#+TAGS: assert(a) class(c) debug(d) mixin(m) sdp(s) tangle(T) template(t) WEB(W) noexport(n)
[[./sdp.org][sdp]] [[./][org/]]
-* 0. ao ctRegex :module:sdp:ao_rgx:
+* 0. meta ctRegex :module:sdp:meta_rgx:
[[./sdp.org][sdp]] [[./][org/]]
http://dlang.org/phobos/std_regex.html
- Plain string, in which case it's compiled to bytecode before matching.
@@ -24,16 +24,16 @@ http://dlang.org/phobos/std_regex.html
** 0. module template
-#+name: tangle_ao_rgx
-#+BEGIN_SRC d :tangle ../src/sdp/ao/rgx.d
+#+name: tangle_meta_rgx
+#+BEGIN_SRC d :tangle ../src/sdp/meta/rgx.d
/++
regex: regular expressions used in sisu document parser
+/
-module sdp.ao.rgx;
+module sdp.meta.rgx;
template SiSUrgxInit() {
- import sdp.ao.defaults;
+ import sdp.meta.defaults;
struct Rgx {
- <<ao_rgx>>
+ <<meta_rgx>>
<<prgmkup_rgx>>
}
}
@@ -41,7 +41,7 @@ template SiSUrgxInit() {
** misc :misc:
-#+name: ao_rgx
+#+name: meta_rgx
#+BEGIN_SRC d
/+ misc +/
static true_dollar = ctRegex!(`\$`, "gm");
@@ -76,7 +76,7 @@ static numeric_col = ctRegex!(`^[ 0-9,.$£₤
** comments :comment:
-#+name: ao_rgx
+#+name: meta_rgx
#+BEGIN_SRC d
/+ comments +/
static comment = ctRegex!(`^%+ `);
@@ -85,7 +85,7 @@ static comments = ctRegex!(`^%+ |^%+$`);
** config
-#+name: ao_rgx
+#+name: meta_rgx
#+BEGIN_SRC d
/+ header +/
static make_simple_substitutions_rb = ctRegex!(`(?P<substitution>/(?P<match>.+?)/,[ ]*['"](?P<replace>.+?)['"])`);
@@ -95,7 +95,7 @@ static make_simple_substitutions_d = ctRegex!(`(?P<substitu
** native headers
*** native header :native:header:
-#+name: ao_rgx
+#+name: meta_rgx
#+BEGIN_SRC d
/+ header +/
static main_headers =
@@ -114,7 +114,7 @@ static raw_author_munge = ctRegex!(`(\S.+?),\s+(.+
*** subheader :native:subheader:
-#+name: ao_rgx
+#+name: meta_rgx
#+BEGIN_SRC d
/+ head +/
static native_subhead_creator = ctRegex!(`^(?:author|translator|illustrator)$`, "m");
@@ -131,7 +131,7 @@ static native_subhead_make = ctRegex!(`^(?:cover_imag
** heading & paragraph operators :paragraph:operator:
-#+name: ao_rgx
+#+name: meta_rgx
#+BEGIN_SRC d
/+ heading & paragraph operators +/
static heading_a = ctRegex!(`^:?[A][~] `, "m");
@@ -162,7 +162,7 @@ static para_attribs = ctRegex!(`^_(?:(?:[0-9])
** blocked markup
*** blocked markup :block:tic:
-#+name: ao_rgx
+#+name: meta_rgx
#+BEGIN_SRC d
/+ blocked markup +/
static block_open = ctRegex!("^((code([.][a-z][0-9a-z_]+)?|poem|group|block|quote|table)[{].*?$)|^`{3} (code([.][a-z][0-9a-z_]+)?|poem|group|block|quote|table)|^[{]table(~h)?(?P<columns>(?:[ ]+[0-9]+;)+)[}]");
@@ -171,7 +171,7 @@ static block_poem_open = ctRegex!("^((poem[{].*?$
** blocked markup tics :block:tic:
-#+name: ao_rgx
+#+name: meta_rgx
#+BEGIN_SRC d
/+ blocked markup tics +/
static block_tic_open = ctRegex!("^`{3} (code([.][a-z][0-9a-z_]+)?|poem|group|block|quote|table)"); // what of numbered code?
@@ -186,7 +186,7 @@ static block_tic_close = ctRegex!("^(`{3})$","m")
*** blocked markup curly :block:curly:
-#+name: ao_rgx
+#+name: meta_rgx
#+BEGIN_SRC d
/+ blocked markup curly +/
static block_curly_open = ctRegex!(`^((code([.][a-z][0-9a-z_]+)?|poem|group|block|quote|table)[{].*?$)`);
@@ -207,7 +207,7 @@ static block_curly_table_special_markup = ctRegex!(`^[{]table((~h)
*** block sub-matches :block:curly:
-#+name: ao_rgx
+#+name: meta_rgx
#+BEGIN_SRC d
static table_head_instructions = ctRegex!(`(?P<c_heading>h)?(?:[ ]+c(?P<c_num>[0-9]);)?(?P<c_widths>(?:[ ]+[0-9]+[lr]?;)+)`);
static table_col_widths_and_alignment = ctRegex!(`(?P<width>[0-9]+)(?P<align>[lr]?)`);
@@ -220,7 +220,7 @@ static table_col_separator_nl = ctRegex!(`[┊]$`, "mg")
** inline markup footnotes endnotes :inline:footnote:
-#+name: ao_rgx
+#+name: meta_rgx
#+BEGIN_SRC d
/+ inline markup footnotes endnotes +/
static inline_notes_curly_gen = ctRegex!(`~\{.+?\}~`, "m");
@@ -246,7 +246,7 @@ static note_ref = ctRegex!(`^\S+?noteref_(
*** links/ urls :inline:footnote:
-#+name: ao_rgx
+#+name: meta_rgx
#+BEGIN_SRC d
static inline_url_generic = ctRegex!(`(?:^|[}(\[ ])(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)[a-zA-Z0-9_#]`, "mg");
static inline_url = ctRegex!(`((?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)[a-zA-Z0-9_]\S*)`, "mg");
@@ -258,14 +258,14 @@ static inline_link_endnote_url_helper = ctRegex!(`\{~\^\s+(?P<c
*** images :images:
-#+name: ao_rgx
+#+name: meta_rgx
#+BEGIN_SRC d
static image = ctRegex!(`([a-zA-Z0-9._-]+?\.(?:png|gif|jpg))`, "mg");
#+END_SRC
*** inline markup book index :inline:bookindex:
-#+name: ao_rgx
+#+name: meta_rgx
#+BEGIN_SRC d
/+ inline markup book index +/
static book_index = ctRegex!(`^=\{\s*(.+?)\}$`, "m");
@@ -275,7 +275,7 @@ static book_index_close = ctRegex!(`^(.*?)\}$`, "m
** no obj_cite_number object :ocn:off:object:
-#+name: ao_rgx
+#+name: meta_rgx
#+BEGIN_SRC d
/+ no obj_cite_number object +/
static obj_cite_number_off = ctRegex!(`~#$`, "m");
@@ -285,7 +285,7 @@ static obj_cite_number_off_all = ctRegex!(`[~-]#$`, "m");
** no obj_cite_number block :ocn:off:block:
-#+name: ao_rgx
+#+name: meta_rgx
#+BEGIN_SRC d
/+ no obj_cite_number block +/
static obj_cite_number_off_block = ctRegex!(`^--~#$`);
@@ -296,7 +296,7 @@ static obj_cite_number_block_marks = ctRegex!(`^--[+~-]#$`);
** ignore outside code blocks :block:code:
-#+name: ao_rgx
+#+name: meta_rgx
#+BEGIN_SRC d
/+ ignore outside code blocks +/
static skip_from_regular_parse = ctRegex!(`^(--[+~-]#|-[\\]{2}-|=[.\\]{2}=)$`);
@@ -304,7 +304,7 @@ static skip_from_regular_parse = ctRegex!(`^(--[+~-]#|-[\\]{2}-|=[.\\]{2}=)$`
** line & page breaks :break:
-#+name: ao_rgx
+#+name: meta_rgx
#+BEGIN_SRC d
/+ line & page breaks +/
static break_line_within_object = ctRegex!(`[\\]{2}( |$)`);
@@ -317,7 +317,7 @@ static parent = ctRegex!(`([0-7]):([0-9]
** json :json:
-#+name: ao_rgx
+#+name: meta_rgx
#+BEGIN_SRC d
/+ json +/
static tailing_comma = ctRegex!(`,$`, "m");
@@ -325,7 +325,7 @@ static tailing_comma = ctRegex!(`,$`, "m");
** biblio tags :biblio:tags:
-#+name: ao_rgx
+#+name: meta_rgx
#+BEGIN_SRC d
/+ biblio tags +/
static biblio_tags = ctRegex!(`^(is|au|author_raw|author|author_arr|editor_raw|ed|editor_arr|ti|title|subtitle|fulltitle|lng|language|trans|src|jo|journal|in|vol|volume|edn|edition|yr|year|pl|place|pb|pub|publisher|url|pg|pages|note|short_name|id):\s+(.+)`);
@@ -334,7 +334,7 @@ static biblio_abbreviations = ctRegex!(`^(au|ed|ti|lng
** bookindex split :bookindex:split:
-#+name: ao_rgx
+#+name: meta_rgx
#+BEGIN_SRC d
/+ bookindex split +/
static bi_main_terms_split = ctRegex!(`\s*;\s*`);
@@ -345,7 +345,7 @@ static bi_term_and_obj_cite_numbers_match = ctRegex!(`^(.+?)\+(\d+)`
** language codes :language:codes:
-#+name: ao_rgx
+#+name: meta_rgx
#+BEGIN_SRC d
/+ language codes +/
auto language_codes =
@@ -363,7 +363,7 @@ http://dlang.org/phobos/std_regex.html
** 0. module template
-#+name: tangle_ao_rgx
+#+name: tangle_meta_rgx
#+BEGIN_SRC d :tangle ../src/sdp/output/rgx.d
/++
regex: regular expressions used in sisu document parser
@@ -390,7 +390,7 @@ static xhtml_greater_than = ctRegex!(`[>]`); // &gt
static xhtml_line_break = ctRegex!(` [\\]{2}`); // <br />
#+END_SRC
-* 2. ctRegex defaults shared by ao & output (generic)
+* 2. ctRegex defaults shared by meta & output (generic)
** misc generic
#+name: prgmkup_rgx
diff --git a/org/imports.org b/org/imports.org
index a76cd3f..a67f24d 100644
--- a/org/imports.org
+++ b/org/imports.org
@@ -14,21 +14,21 @@
#+FILETAGS: :sdp:rel:imports:
#+TAGS: assert(a) class(c) debug(d) mixin(m) sdp(s) tangle(T) template(t) WEB(W) noexport(n)
-* 1. imports for ao
+* 1. imports for meta
** package dir
-#+BEGIN_SRC d :tangle ../src/sdp/ao/package.d
-module sdp.ao;
-<<imports_for_ao_general>>
+#+BEGIN_SRC d :tangle ../src/sdp/meta/package.d
+module sdp.meta;
+<<imports_for_meta_general>>
#+END_SRC
** import list
-#+NAME: imports_for_ao_general
+#+NAME: imports_for_meta_general
#+BEGIN_SRC d
public import
- sdp.ao.defaults,
- sdp.ao.rgx;
+ sdp.meta.defaults,
+ sdp.meta.rgx;
/+ std +/
public import
std.array,
diff --git a/org/ao_doc_abstraction.org b/org/meta_abstraction.org
index dae2285..afc5eb1 100644
--- a/org/ao_doc_abstraction.org
+++ b/org/meta_abstraction.org
@@ -11,111 +11,22 @@
#+PROPERTY: header-args :padline no :exports code :noweb yes
#+EXPORT_SELECT_TAGS: export
#+EXPORT_EXCLUDE_TAGS: noexport
-#+FILETAGS: :sdp:rel:ao:
+#+FILETAGS: :sdp:rel:meta:
#+TAGS: assert(a) class(c) debug(d) mixin(m) sdp(s) tangle(T) template(t) WEB(W) noexport(n)
[[./sdp.org][sdp]] [[./][org/]]
-* 0. the document notes
-** abstraction
-- abstract for downstream processing
- - identify document structure and objects
- - identify document structure (headings/levels/sections)
- - identify objects
- - set document, generate common abstraction for downstream parsing
- - set different document sections, toc, body, endnotes, book index, etc.
- - object numbers, heading/ chapter numbering etc, endnote numbers
- - unify object representations
- - multiple markups for same object type given single representation
- - extract object attributes
- - unify inline markup on objects
- - inline markup made easier to identify
-
-- simplify downstream parsing
-
-** document sections
-
-|--------------+--------------+---+---+--------------------------------------------------+---+---+---|
-| front matter | head | | | | | | |
-|--------------+--------------+---+---+--------------------------------------------------+---+---+---|
-| toc | toc | | | generated: headings | | | |
-|--------------+--------------+---+---+--------------------------------------------------+---+---+---|
-| body | body | | | default section | | | |
-| | | | | - heading | | | |
-| | | | | - para | | | |
-| | | | | - code | | | |
-| | | | | - poem | | | |
-| | | | | - group | | | |
-| | | | | - block | | | |
-| | | | | - quote | | | |
-| | | | | - table | | | |
-|--------------+--------------+---+---+--------------------------------------------------+---+---+---|
-| back matter | endnote | | | generated: inline note markup | | | |
-|--------------+--------------+---+---+--------------------------------------------------+---+---+---|
-| | glossary | | | identified section, limited markup | | | |
-| | | | | - the heading | | | |
-| | | | | - paragraph | | | |
-|--------------+--------------+---+---+--------------------------------------------------+---+---+---|
-| | bibliography | | | generated from inline special markup | | | |
-| | | | | appended to paragraphs contained in body section | | | |
-|--------------+--------------+---+---+--------------------------------------------------+---+---+---|
-| | blurb | | | identified section, limited markup | | | |
-| | | | | - the heading | | | |
-| | | | | - paragraphs | | | |
-|--------------+--------------+---+---+--------------------------------------------------+---+---+---|
-
-** objects
-
-|-------+--------------+----------------------------+--------------------------+----------------+-----------------+----------------+------------|
-| | | identified by | object notes | attributes | inline | embedded | special |
-| | | | | | | appended | characters |
-|-------+--------------+----------------------------+--------------------------+----------------+-----------------+----------------+------------|
-| para | heading | level markers | | | - italics | - endnotes | |
-| | | at start of line | | | | - bibliography | |
-|-------+--------------+----------------------------+--------------------------+----------------+-----------------+----------------+------------|
-| | paragraph | delimited by two new lines | default object | - indent | - bold | - endnotes | |
-| | | | [discard leading & | - bullet | - italics | - bibliography | |
-| | | | newline whitespace] | | - underscore | | |
-| | | | | | - strikethrough | | |
-| | | | | | - superscript | | |
-| | | | | | - subscript | | |
-|-------+--------------+----------------------------+--------------------------+----------------+-----------------+----------------+------------|
-| block | | open and close tags | | | | | |
-|-------+--------------+----------------------------+--------------------------+----------------+-----------------+----------------+------------|
-| TODO | quote | | | - language? | | | |
-|-------+--------------+----------------------------+--------------------------+----------------+-----------------+----------------+------------|
-| TODO | group | | - inline markup applied | - language? | as paragraph | - endnotes | |
-| | | | - [discard leading & | | | - bibliography | |
-| | | | newline whitespace] | | | | |
-|-------+--------------+----------------------------+--------------------------+----------------+-----------------+----------------+------------|
-| TODO | block | | - inline markup applied | | as paragraph | - endnotes | |
-| | | | - whitespace indentation | | | - bibliography | |
-| | | | & newlines | | | | |
-|-------+--------------+----------------------------+--------------------------+----------------+-----------------+----------------+------------|
-| | poem / verse | open and close tags | verse is the object | | | - endnotes | |
-| | | | - inline markup applied | | | - bibliography | |
-| | | (for poem) | - whitespace indentation | | | | |
-| | | | & newlines | | | | |
-|-------+--------------+----------------------------+--------------------------+----------------+-----------------+----------------+------------|
-| | code | | - contents untouched | - syntax | | | |
-| | | | - whitespace indentation | - numbered | | | |
-| | | | & newlines | | | | |
-|-------+--------------+----------------------------+--------------------------+----------------+-----------------+----------------+------------|
-| | table | | | - column width | | | |
-| | | | | - heading row | | | |
-|-------+--------------+----------------------------+--------------------------+----------------+-----------------+----------------+------------|
-
-* 1. Document Abstraction :module:sdp:ao_abstract_doc_source:
+* 1. Document Abstraction :module:sdp:meta_metadoc_from_src:
Process markup document, create document abstraction.
** 0. module template
-#+BEGIN_SRC d :tangle ../src/sdp/ao/abstract_doc_source.d
+#+BEGIN_SRC d :tangle ../src/sdp/meta/metadoc_from_src.d
/++
document abstraction:
abstraction of sisu markup for downstream processing
- ao_abstract_doc_source.d
+ meta_metadoc_from_src.d
+/
-module sdp.ao.abstract_doc_source;
+module sdp.meta.metadoc_from_src;
template SiSUdocAbstraction() {
/+ ↓ abstraction imports +/
<<abs_top_imports>>
@@ -195,32 +106,32 @@ template SiSUdocAbstraction() {
<<abs_functions_table>>
/+ abstraction functions ↑ +/
/+ ↓ abstraction function emitters +/
- <<ao_emitters_ocn>>
+ <<meta_emitters_ocn>>
/+ +/
- <<ao_emitters_obj_inline_markup_munge>>
- <<ao_emitters_obj_inline_markup>>
- <<ao_emitters_obj_inline_markup_and_anchor_tags_and_misc>>
- <<ao_emitters_obj_inline_markup_table_of_contents>>
- <<ao_emitters_obj_inline_markup_private>>
- <<ao_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags>>
- <<ao_emitters_obj_inline_markup_close>>
+ <<meta_emitters_obj_inline_markup_munge>>
+ <<meta_emitters_obj_inline_markup>>
+ <<meta_emitters_obj_inline_markup_and_anchor_tags_and_misc>>
+ <<meta_emitters_obj_inline_markup_table_of_contents>>
+ <<meta_emitters_obj_inline_markup_private>>
+ <<meta_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags>>
+ <<meta_emitters_obj_inline_markup_close>>
/+ +/
- <<ao_emitters_obj_attributes>>
- <<ao_emitters_obj_attributes_public>>
- <<ao_emitters_obj_attributes_private>>
- <<ao_emitters_obj_attributes_private_an_attribute>>
- <<ao_emitters_obj_attributes_private_json>>
- <<ao_emitters_obj_attributes_private_close>>
+ <<meta_emitters_obj_attributes>>
+ <<meta_emitters_obj_attributes_public>>
+ <<meta_emitters_obj_attributes_private>>
+ <<meta_emitters_obj_attributes_private_an_attribute>>
+ <<meta_emitters_obj_attributes_private_json>>
+ <<meta_emitters_obj_attributes_private_close>>
/+ +/
- <<ao_emitters_book_index_nugget>>
- <<ao_emitters_book_index_report_indented>>
- <<ao_emitters_book_index_report_section>>
+ <<meta_emitters_book_index_nugget>>
+ <<meta_emitters_book_index_report_indented>>
+ <<meta_emitters_book_index_report_section>>
/+ +/
- <<ao_emitters_endnotes>>
+ <<meta_emitters_endnotes>>
/+ +/
- <<ao_emitters_bibliography>>
+ <<meta_emitters_bibliography>>
/+ +/
- <<ao_emitters_metadata>>
+ <<meta_emitters_metadata>>
/+ abstraction functions emitters ↑ +/
/+ ↓ abstraction functions assertions +/
<<abs_functions_assertions>>
@@ -231,11 +142,11 @@ template SiSUdocAbstraction() {
** 1. _pre loop processing_ :pre:
*** imports :imports:
-[[./ao_defaults.org][ao_defaults]]
+[[./meta_defaults.org][meta_defaults]]
#+name: abs_top_imports
#+BEGIN_SRC d
-import sdp.ao;
+import sdp.meta;
import
std.algorithm,
std.container,
@@ -243,9 +154,9 @@ import
std.json,
std.path;
import
- sdp.ao.defaults,
- sdp.ao.object_setter,
- sdp.ao.rgx;
+ sdp.meta.defaults,
+ sdp.meta.object_setter,
+ sdp.meta.rgx;
#+END_SRC
*** mixins :mixins:
@@ -320,57 +231,58 @@ enum DomTags { none, open, close, close_and_open, open_still, }
#+name: abs_top_init_struct
#+BEGIN_SRC d
-void heading_ancestors(O)(
- auto return ref O obj,
- return ref string[] lv_ancestors,
+auto obj_heading_ancestors(O)(
+ O obj,
+ string[] lv_ancestors_txt,
) {
switch (obj.heading_lev_markup) {
case 0:
- lv_ancestors[0] = obj.text.to!string;
+ lv_ancestors_txt[0] = obj.text.to!string;
foreach(k; 1..8) {
- lv_ancestors[k] = "";
+ lv_ancestors_txt[k] = "";
}
goto default;
case 1:
- lv_ancestors[1] = obj.text.to!string;
+ lv_ancestors_txt[1] = obj.text.to!string;
foreach(k; 2..8) {
- lv_ancestors[k] = "";
+ lv_ancestors_txt[k] = "";
}
goto default;
case 2:
- lv_ancestors[2] = obj.text.to!string;
+ lv_ancestors_txt[2] = obj.text.to!string;
foreach(k; 3..8) {
- lv_ancestors[k] = "";
+ lv_ancestors_txt[k] = "";
}
goto default;
case 3:
- lv_ancestors[3] = obj.text.to!string;
+ lv_ancestors_txt[3] = obj.text.to!string;
foreach(k; 4..8) {
- lv_ancestors[k] = "";
+ lv_ancestors_txt[k] = "";
}
goto default;
case 4:
- lv_ancestors[4] = obj.text.to!string;
+ lv_ancestors_txt[4] = obj.text.to!string;
foreach(k; 5..8) {
- lv_ancestors[k] = "";
+ lv_ancestors_txt[k] = "";
}
goto default;
case 5:
- lv_ancestors[5] = obj.text.to!string;
+ lv_ancestors_txt[5] = obj.text.to!string;
foreach(k; 6..8) {
- lv_ancestors[k] = "";
+ lv_ancestors_txt[k] = "";
}
goto default;
case 6:
- lv_ancestors[6] = obj.text.to!string;
- lv_ancestors[7] = "";
+ lv_ancestors_txt[6] = obj.text.to!string;
+ lv_ancestors_txt[7] = "";
goto default;
case 7:
- lv_ancestors[7] = obj.text.to!string;
+ lv_ancestors_txt[7] = obj.text.to!string;
goto default;
default:
- obj.heading_ancestors_text = lv_ancestors.dup;
+ obj.heading_ancestors_text = lv_ancestors_txt.dup;
}
+ return obj;
}
#+END_SRC
@@ -378,7 +290,11 @@ void heading_ancestors(O)(
#+name: abs_top_init_struct
#+BEGIN_SRC d
-auto dom_set_markup_tags(int[] dom, int lev) {
+auto obj_dom_set_markup_tags(O)(
+ O obj,
+ int[] dom,
+ int lev
+) {
foreach (i; 0 .. 8) {
if (i < lev) {
if (dom[i] == DomTags.open
@@ -415,7 +331,8 @@ auto dom_set_markup_tags(int[] dom, int lev) {
debug(dom_magic_numbers) {
writeln("marked up: ", lev, ": ", dom);
}
- return dom;
+ obj.dom_markedup = dom.dup;
+ return obj;
}
#+END_SRC
@@ -423,7 +340,11 @@ auto dom_set_markup_tags(int[] dom, int lev) {
#+name: abs_top_init_struct
#+BEGIN_SRC d
-auto dom_set_collapsed_tags(int[] dom, int lev) {
+auto obj_dom_set_collapsed_tags(O)(
+ O obj,
+ int[] dom,
+ int lev
+) {
foreach (i; 0 .. 8) {
if (i < lev) {
if (dom[i] == DomTags.open
@@ -460,7 +381,8 @@ auto dom_set_collapsed_tags(int[] dom, int lev) {
debug(dom_magic_numbers) {
writeln("collapsed: ", lev, ": ", dom);
}
- return dom;
+ obj.dom_collapsed = dom.dup;
+ return obj;
}
#+END_SRC
@@ -521,7 +443,7 @@ string[string] obj_cite_number_poem = [
"start" : "",
"end" : ""
];
-string[] lv_ancestors = [ "", "", "", "", "", "", "", "", ];
+string[] lv_ancestors_txt = [ "", "", "", "", "", "", "", "", ];
int[string] lv = [
"lv" : State.off,
"h0" : State.off,
@@ -583,6 +505,8 @@ comp_obj_heading_.parent_ocn = 1;
comp_obj_heading_.parent_lev_markup = 0;
comp_obj_heading_.ptr_html_segnames = html_segnames_ptr;
comp_obj_heading_.anchor_tags = ["toc"];
+comp_obj_heading_.dom_markedup = [ 1, 1, 0, 0, 1, 0, 0, 0];
+comp_obj_heading_.dom_collapsed = [ 1, 1, 1, 0, 0, 0, 0, 0];
auto toc_head = comp_obj_heading_;
html_segnames_ptr_cntr++;
the_table_of_contents_section = [
@@ -722,6 +646,8 @@ if there is a glossary section you need to:
comp_obj_heading_.heading_lev_collapsed = 1;
comp_obj_heading_.parent_ocn = 1;
comp_obj_heading_.parent_lev_markup = 0;
+ comp_obj_heading_.dom_markedup = [ 1, 1, 0, 0, 0, 0, 0, 0];
+ comp_obj_heading_.dom_collapsed = [ 1, 1, 0, 0, 0, 0, 0, 0];
the_glossary_section ~= comp_obj_heading_;
comp_obj_heading_ = comp_obj_heading_.init;
comp_obj_heading_.use = "backmatter";
@@ -736,6 +662,8 @@ if there is a glossary section you need to:
comp_obj_heading_.heading_lev_collapsed = 2;
comp_obj_heading_.parent_ocn = 1;
comp_obj_heading_.parent_lev_markup = 0;
+ comp_obj_heading_.dom_markedup = [ 1, 1, 0, 0, 1, 0, 0, 0];
+ comp_obj_heading_.dom_collapsed = [ 1, 1, 1, 0, 0, 0, 0, 0];
comp_obj_heading_.anchor_tags = ["glossary"];
the_glossary_section ~= comp_obj_heading_;
} else {
@@ -804,6 +732,8 @@ if there is a blurb section you need to:
comp_obj_heading_.heading_lev_collapsed = 1;
comp_obj_heading_.parent_ocn = 1;
comp_obj_heading_.parent_lev_markup = 0;
+ comp_obj_heading_.dom_markedup = [ 1, 1, 0, 0, 0, 0, 0, 0];
+ comp_obj_heading_.dom_collapsed = [ 1, 1, 0, 0, 0, 0, 0, 0];
the_blurb_section ~= comp_obj_heading_;
comp_obj_heading_ = comp_obj_heading_.init;
comp_obj_heading_.use = "backmatter";
@@ -819,6 +749,8 @@ if there is a blurb section you need to:
comp_obj_heading_.parent_ocn = 1;
comp_obj_heading_.parent_lev_markup = 0;
comp_obj_heading_.anchor_tags = ["blurb"];
+ comp_obj_heading_.dom_markedup = [ 1, 1, 0, 0, 1, 0, 0, 0];
+ comp_obj_heading_.dom_collapsed = [ 1, 1, 1, 0, 0, 0, 0, 0];
the_blurb_section ~= comp_obj_heading_;
} else if (line.matchFirst(rgx.heading)
&& (opt_action["backmatter"] && opt_action["section_blurb"])) {
@@ -1191,7 +1123,7 @@ if ((type["heading"] == State.on)
obj_cite_number, // int
cntr, // int
heading_ptr, // int
- lv_ancestors, // string[]
+ lv_ancestors_txt, // string[]
an_object["is"], // string
html_segnames_ptr, // int
substantive_object_and_anchor_tags_tuple[sObj.notes_reg],
@@ -1721,16 +1653,23 @@ the_document_head_section ~= the_document_body_section[0];
the_document_body_section=the_document_body_section[1..$];
#+END_SRC
-*** _minor loops_ :post:
-**** 1. loop: backmatter loop up to lev4: html_segnames, set backmatter pointers
+*** _post main-loop loops_ :post:
+**** 1. _loop backmatter:_ loop up to lev4, extract html_segnames, set pointers
+
+this extra loop is needed to determine pre and (in particular) next segment for
+html, that is then used in a subsequent loop
-could optimise by
-- skipping second and third pass unless the output html seg or epub is being made!
-NOTE there are issues attempting to do this on first pass
-- as
+NOTE there are issues attempting to do this on first pass as:
- backmatter is created out of sequence and
- it is not certain which are present
-it is quite neat to have all in one place as we have here:
+
+ - it is quite neat to have all in one place as we have here
+
+ - could optimise a bit by
+ - skipping second (and third) loop unless the html seg or epub output is
+ selected
+
+***** section: endnotes
#+name: abs_post
#+BEGIN_SRC d
@@ -1745,6 +1684,12 @@ if (the_endnotes_section.length > 1) {
}
html_segnames_ptr_cntr++;
}
+#+END_SRC
+
+***** section: glossary
+
+#+name: abs_post
+#+BEGIN_SRC d
if (the_glossary_section.length > 1) {
html_segnames ~= "glossary";
html_segnames_ptr = html_segnames_ptr_cntr;
@@ -1756,6 +1701,12 @@ if (the_glossary_section.length > 1) {
}
html_segnames_ptr_cntr++;
}
+#+END_SRC
+
+***** section: bibliography
+
+#+name: abs_post
+#+BEGIN_SRC d
if (the_bibliography_section.length > 1) {
html_segnames ~= "bibliography";
html_segnames_ptr = html_segnames_ptr_cntr;
@@ -1767,6 +1718,12 @@ if (the_bibliography_section.length > 1) {
}
html_segnames_ptr_cntr++;
}
+#+END_SRC
+
+***** section: book index
+
+#+name: abs_post
+#+BEGIN_SRC d
if (the_bookindex_section["scroll"].length > 1) {
html_segnames ~= "bookindex";
html_segnames_ptr = html_segnames_ptr_cntr;
@@ -1784,6 +1741,12 @@ if (the_bookindex_section["scroll"].length > 1) {
}
html_segnames_ptr_cntr++;
}
+#+END_SRC
+
+***** section: blurb
+
+#+name: abs_post
+#+BEGIN_SRC d
if (the_blurb_section.length > 1) {
html_segnames ~= "blurb";
html_segnames_ptr = html_segnames_ptr_cntr;
@@ -1797,7 +1760,7 @@ if (the_blurb_section.length > 1) {
}
#+END_SRC
-**** 2. loop: all objects structural relationships (sections, segments, objects)
+**** 2. _loop all objects:_ encode _structural relationships_ (sections, segments, objects)
needed for DOM structure, segnames & subtoc, backmatter pointers & unique image
list
@@ -1824,6 +1787,8 @@ Build here:
during the third pass all previous and next segment names are known
next are not yet known for backmatter during the second pass
+***** images
+
#+name: abs_post
#+BEGIN_SRC d
string[] _images;
@@ -1835,6 +1800,12 @@ auto extract_images(S)(S content_block) {
return images_;
}
string[] segnames_0_4;
+#+END_SRC
+
+***** section: head
+
+#+name: abs_post
+#+BEGIN_SRC d
foreach (ref obj; the_document_head_section) {
if (obj.is_a == "heading") {
debug(dom) {
@@ -1843,19 +1814,27 @@ foreach (ref obj; the_document_head_section) {
if (obj.heading_lev_markup <= 4) {
segnames_0_4 ~= obj.segment_anchor_tag;
}
+ /+ dom structure (marked up & collapsed) +/
if ((opt_action["html"])
|| (opt_action["html-scroll"])
|| (opt_action["html-seg"])
- || (opt_action["epub"])) {
- obj.dom_markedup =
- dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed =
- dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ || (opt_action["epub"])
+ || (opt_action["sqlite"])
+ || (opt_action["postgresql"])) {
+ obj = obj_dom_set_markup_tags(obj, dom_markedup, obj.heading_lev_markup);
+ obj = obj_dom_set_collapsed_tags(obj, dom_collapsed, obj.heading_lev_collapsed);
}
- heading_ancestors(obj, lv_ancestors);
+ obj = obj_heading_ancestors(obj, lv_ancestors_txt);
}
}
+#+END_SRC
+
+***** section: toc
+
+#+name: abs_post
+#+BEGIN_SRC d
if (the_table_of_contents_section["scroll"].length > 1) {
+ /+ scroll +/
dom_markedup_buffer = dom_markedup.dup;
dom_collapsed_buffer = dom_collapsed.dup;
foreach (ref obj; the_table_of_contents_section["scroll"]) {
@@ -1867,18 +1846,20 @@ if (the_table_of_contents_section["scroll"].length > 1) {
assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);
}
}
+ /+ dom structure (marked up & collapsed) +/
if ((opt_action["html"])
|| (opt_action["html-scroll"])
|| (opt_action["html-seg"])
- || (opt_action["epub"])) {
- obj.dom_markedup =
- dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed =
- dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ || (opt_action["epub"])
+ || (opt_action["sqlite"])
+ || (opt_action["postgresql"])) {
+ obj = obj_dom_set_markup_tags(obj, dom_markedup, obj.heading_lev_markup);
+ obj = obj_dom_set_collapsed_tags(obj, dom_collapsed, obj.heading_lev_collapsed);
}
- heading_ancestors(obj, lv_ancestors);
+ obj = obj_heading_ancestors(obj, lv_ancestors_txt);
}
}
+ /+ seg +/
dom_markedup = dom_markedup_buffer.dup;
dom_collapsed = dom_collapsed_buffer.dup;
foreach (ref obj; the_table_of_contents_section["seg"]) {
@@ -1897,15 +1878,19 @@ if (the_table_of_contents_section["scroll"].length > 1) {
|| (opt_action["html-scroll"])
|| (opt_action["html-seg"])
|| (opt_action["epub"])) {
- obj.dom_markedup =
- dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed =
- dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ obj = obj_dom_set_markup_tags(obj, dom_markedup, obj.heading_lev_markup);
+ obj = obj_dom_set_collapsed_tags(obj, dom_collapsed, obj.heading_lev_collapsed);
}
- heading_ancestors(obj, lv_ancestors);
+ obj = obj_heading_ancestors(obj, lv_ancestors_txt);
}
}
}
+#+END_SRC
+
+***** section: document body
+
+#+name: abs_post
+#+BEGIN_SRC d
/+ multiple 1~ levels, loop through document body +/
if (the_document_body_section.length > 1) {
foreach (ref obj; the_document_body_section) {
@@ -1924,22 +1909,29 @@ if (the_document_body_section.length > 1) {
assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);
}
}
+ /+ dom structure (marked up & collapsed) +/
if ((opt_action["html"])
|| (opt_action["html-scroll"])
|| (opt_action["html-seg"])
- || (opt_action["epub"])) {
- obj.dom_markedup =
- dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed =
- dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ || (opt_action["epub"])
+ || (opt_action["sqlite"])
+ || (opt_action["postgresql"])) {
+ obj = obj_dom_set_markup_tags(obj, dom_markedup, obj.heading_lev_markup);
+ obj = obj_dom_set_collapsed_tags(obj, dom_collapsed, obj.heading_lev_collapsed);
}
- heading_ancestors(obj, lv_ancestors);
+ obj = obj_heading_ancestors(obj, lv_ancestors_txt);
} else if (obj.is_a == "para") {
_images ~= extract_images(obj.text);
}
}
}
auto images=uniq(_images.sort());
+#+END_SRC
+
+***** section: endnotes
+
+#+name: abs_post
+#+BEGIN_SRC d
/+ optional only one 1~ level +/
if (the_endnotes_section.length > 1) {
dom_markedup_buffer = dom_markedup.dup;
@@ -1961,19 +1953,26 @@ if (the_endnotes_section.length > 1) {
assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);
}
}
+ /+ dom structure (marked up & collapsed) +/
if ((opt_action["html"])
|| (opt_action["html-scroll"])
|| (opt_action["html-seg"])
- || (opt_action["epub"])) {
- obj.dom_markedup =
- dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed =
- dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ || (opt_action["epub"])
+ || (opt_action["sqlite"])
+ || (opt_action["postgresql"])) {
+ obj = obj_dom_set_markup_tags(obj, dom_markedup, obj.heading_lev_markup);
+ obj = obj_dom_set_collapsed_tags(obj, dom_collapsed, obj.heading_lev_collapsed);
}
- heading_ancestors(obj, lv_ancestors);
+ obj = obj_heading_ancestors(obj, lv_ancestors_txt);
}
}
}
+#+END_SRC
+
+***** section: glossary
+
+#+name: abs_post
+#+BEGIN_SRC d
/+ optional only one 1~ level +/
if (the_glossary_section.length > 1) {
foreach (ref obj; the_glossary_section) {
@@ -1991,19 +1990,26 @@ if (the_glossary_section.length > 1) {
assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);
}
}
+ /+ dom structure (marked up & collapsed) +/
if ((opt_action["html"])
|| (opt_action["html-scroll"])
|| (opt_action["html-seg"])
- || (opt_action["epub"])) {
- obj.dom_markedup =
- dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed =
- dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ || (opt_action["epub"])
+ || (opt_action["sqlite"])
+ || (opt_action["postgresql"])) {
+ obj = obj_dom_set_markup_tags(obj, dom_markedup, obj.heading_lev_markup);
+ obj = obj_dom_set_collapsed_tags(obj, dom_collapsed, obj.heading_lev_collapsed);
}
- heading_ancestors(obj, lv_ancestors);
+ obj = obj_heading_ancestors(obj, lv_ancestors_txt);
}
}
}
+#+END_SRC
+
+***** section: bibliography
+
+#+name: abs_post
+#+BEGIN_SRC d
/+ optional only one 1~ level +/
if (the_bibliography_section.length > 1) {
foreach (ref obj; the_bibliography_section) {
@@ -2021,21 +2027,29 @@ if (the_bibliography_section.length > 1) {
assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);
}
}
+ /+ dom structure (marked up & collapsed) +/
if ((opt_action["html"])
|| (opt_action["html-scroll"])
|| (opt_action["html-seg"])
- || (opt_action["epub"])) {
- obj.dom_markedup =
- dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed =
- dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ || (opt_action["epub"])
+ || (opt_action["sqlite"])
+ || (opt_action["postgresql"])) {
+ obj = obj_dom_set_markup_tags(obj, dom_markedup, obj.heading_lev_markup);
+ obj = obj_dom_set_collapsed_tags(obj, dom_collapsed, obj.heading_lev_collapsed);
}
- heading_ancestors(obj, lv_ancestors);
+ obj = obj_heading_ancestors(obj, lv_ancestors_txt);
}
}
}
+#+END_SRC
+
+***** section: book index (scroll, seg)
+
+#+name: abs_post
+#+BEGIN_SRC d
/+ optional only one 1~ level +/
if (the_bookindex_section["scroll"].length > 1) {
+ /+ scroll +/
dom_markedup_buffer = dom_markedup.dup;
dom_collapsed_buffer = dom_collapsed.dup;
foreach (ref obj; the_bookindex_section["scroll"]) {
@@ -2052,18 +2066,20 @@ if (the_bookindex_section["scroll"].length > 1) {
assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);
}
}
+ /+ dom structure (marked up & collapsed) +/
if ((opt_action["html"])
|| (opt_action["html-scroll"])
|| (opt_action["html-seg"])
- || (opt_action["epub"])) {
- obj.dom_markedup =
- dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed =
- dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ || (opt_action["epub"])
+ || (opt_action["sqlite"])
+ || (opt_action["postgresql"])) {
+ obj = obj_dom_set_markup_tags(obj, dom_markedup, obj.heading_lev_markup);
+ obj = obj_dom_set_collapsed_tags(obj, dom_collapsed, obj.heading_lev_collapsed);
}
- heading_ancestors(obj, lv_ancestors);
+ obj = obj_heading_ancestors(obj, lv_ancestors_txt);
}
}
+ /+ seg +/
dom_markedup = dom_markedup_buffer.dup;
dom_collapsed = dom_collapsed_buffer.dup;
foreach (ref obj; the_bookindex_section["seg"]) {
@@ -2081,19 +2097,26 @@ if (the_bookindex_section["scroll"].length > 1) {
assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);
}
}
+ /+ dom structure (marked up & collapsed) +/
if ((opt_action["html"])
|| (opt_action["html-scroll"])
|| (opt_action["html-seg"])
- || (opt_action["epub"])) {
- obj.dom_markedup =
- dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed =
- dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ || (opt_action["epub"])
+ || (opt_action["sqlite"])
+ || (opt_action["postgresql"])) {
+ obj = obj_dom_set_markup_tags(obj, dom_markedup, obj.heading_lev_markup);
+ obj = obj_dom_set_collapsed_tags(obj, dom_collapsed, obj.heading_lev_collapsed);
}
- heading_ancestors(obj, lv_ancestors);
+ obj = obj_heading_ancestors(obj, lv_ancestors_txt);
}
}
}
+#+END_SRC
+
+***** section: blurb
+
+#+name: abs_post
+#+BEGIN_SRC d
/+ optional only one 1~ level +/
if (the_blurb_section.length > 1) {
foreach (ref obj; the_blurb_section) {
@@ -2111,42 +2134,53 @@ if (the_blurb_section.length > 1) {
assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);
}
}
+ /+ dom structure (marked up & collapsed) +/
if ((opt_action["html"])
|| (opt_action["html-scroll"])
|| (opt_action["html-seg"])
- || (opt_action["epub"])) {
- obj.dom_markedup =
- dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed =
- dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ || (opt_action["epub"])
+ || (opt_action["sqlite"])
+ || (opt_action["postgresql"])) {
+ obj = obj_dom_set_markup_tags(obj, dom_markedup, obj.heading_lev_markup);
+ obj = obj_dom_set_collapsed_tags(obj, dom_collapsed, obj.heading_lev_collapsed);
}
- heading_ancestors(obj, lv_ancestors);
+ obj = obj_heading_ancestors(obj, lv_ancestors_txt);
}
}
+}
+#+END_SRC
+
+**** TODO update BUG?
+
+#+name: abs_post
+#+BEGIN_SRC d
/+ TODO
- note create/insert heading object sole purpose eof close all open tags
sort out:
- obj.dom_markedup = dom_markedup;
- obj.dom_collapsed = dom_collapsed;
+/
- dom_markedup = dom_set_markup_tags(dom_markedup, 0);
- dom_collapsed = dom_set_collapsed_tags(dom_collapsed, 0);
- comp_obj_heading_ = comp_obj_heading_.init;
- comp_obj_heading_.use = "empty";
- comp_obj_heading_.is_of = "para";
- comp_obj_heading_.is_a = "heading";
- comp_obj_heading_.ocn = 0;
- comp_obj_para.obj_cite_number = "";
- comp_obj_heading_.segment_anchor_tag = "";
- comp_obj_heading_.marked_up_level = "";
- comp_obj_heading_.heading_lev_markup = 9;
- comp_obj_heading_.heading_lev_collapsed = 9;
- comp_obj_heading_.parent_ocn = 0;
- comp_obj_heading_.parent_lev_markup = 0;
- comp_obj_heading_.dom_markedup = dom_markedup.dup;
- comp_obj_heading_.dom_collapsed = dom_collapsed.dup;
- the_dom_tail_section ~= comp_obj_heading_;
-}
+comp_obj_heading_ = comp_obj_heading_.init;
+comp_obj_heading_.use = "empty";
+comp_obj_heading_.is_of = "para";
+comp_obj_heading_.is_a = "heading";
+comp_obj_heading_.ocn = 0;
+comp_obj_para.obj_cite_number = "";
+comp_obj_heading_.segment_anchor_tag = "";
+comp_obj_heading_.marked_up_level = "";
+comp_obj_heading_.heading_lev_markup = 9;
+comp_obj_heading_.heading_lev_collapsed = 9;
+comp_obj_heading_.parent_ocn = 0;
+comp_obj_heading_.parent_lev_markup = 0;
+comp_obj_heading_.dom_markedup = dom_markedup.dup;
+comp_obj_heading_.dom_collapsed = dom_collapsed.dup;
+obj_dom_set_markup_tags(comp_obj_heading_, dom_markedup, 0);
+obj_dom_set_collapsed_tags(comp_obj_heading_, dom_collapsed, 0);
+obj_heading_ancestors(comp_obj_heading_, lv_ancestors_txt);
+comp_obj_heading_ = obj_dom_set_markup_tags(comp_obj_heading_, dom_markedup, 0);
+comp_obj_heading_ = obj_dom_set_collapsed_tags(comp_obj_heading_, dom_collapsed, 0);
+comp_obj_heading_ = obj_heading_ancestors(comp_obj_heading_, lv_ancestors_txt);
+the_dom_tail_section ~= comp_obj_heading_;
#+END_SRC
** 4. _return document tuple_ :post:
@@ -2178,7 +2212,8 @@ auto document_the = [
#+BEGIN_SRC d
string[][string] document_section_keys_sequenced = [
"seg": ["head", "toc_seg", "body",],
- "scroll": ["head", "toc_scroll", "body",]
+ "scroll": ["head", "toc_scroll", "body",],
+ "sql": ["head", "body",]
];
if (document_the["endnotes"].length > 1) {
document_section_keys_sequenced["seg"] ~= "endnotes";
@@ -2187,13 +2222,16 @@ if (document_the["endnotes"].length > 1) {
if (document_the["glossary"].length > 1) {
document_section_keys_sequenced["seg"] ~= "glossary";
document_section_keys_sequenced["scroll"] ~= "glossary";
+ document_section_keys_sequenced["sql"] ~= "glossary";
}
if (document_the["bibliography"].length > 1) {
document_section_keys_sequenced["seg"] ~= "bibliography";
document_section_keys_sequenced["scroll"] ~= "bibliography";
+ document_section_keys_sequenced["sql"] ~= "bibliography";
}
if (document_the["bookindex_seg"].length > 1) {
document_section_keys_sequenced["seg"] ~= "bookindex_seg";
+ document_section_keys_sequenced["sql"] ~= "bookindex_seg";
}
if (document_the["bookindex_scroll"].length > 1) {
document_section_keys_sequenced["scroll"] ~= "bookindex_scroll";
@@ -2201,6 +2239,7 @@ if (document_the["bookindex_scroll"].length > 1) {
if (document_the["blurb"].length > 1) {
document_section_keys_sequenced["seg"] ~= "blurb";
document_section_keys_sequenced["scroll"] ~= "blurb";
+ document_section_keys_sequenced["sql"] ~= "blurb";
}
if ((opt_action["html"])
|| (opt_action["html-scroll"])
@@ -4357,7 +4396,7 @@ auto table_substantive_munge_special(O,T)(
**** object :object:
***** ocn :ocn:
-#+name: ao_emitters_ocn
+#+name: meta_emitters_ocn
#+BEGIN_SRC d
struct OCNemitter {
int obj_cite_number, obj_cite_number_;
@@ -4383,7 +4422,7 @@ struct OCNemitter {
****** { struct, inline markup munge
-#+name: ao_emitters_obj_inline_markup_munge
+#+name: meta_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
struct ObjInlineMarkupMunge {
string[string] obj_txt;
@@ -4403,7 +4442,7 @@ struct ObjInlineMarkupMunge {
****** url links
-#+name: ao_emitters_obj_inline_markup_munge
+#+name: meta_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
string url_links(Ot)(Ot obj_txt_in) {
debug(asserts) {
@@ -4466,7 +4505,7 @@ struct ObjInlineMarkupMunge {
****** footnotes endnotes markup
-#+name: ao_emitters_obj_inline_markup_munge
+#+name: meta_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
auto footnotes_endnotes_markup_and_number_or_stars(Ot)(Ot obj_txt_in, bool reset_note_numbers) {
debug(asserts) {
@@ -4528,7 +4567,7 @@ struct ObjInlineMarkupMunge {
****** object notes and links
-#+name: ao_emitters_obj_inline_markup_munge
+#+name: meta_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
private auto object_notes_and_links_(Ot)(Ot obj_txt_in, bool reset_note_numbers=false)
in {
@@ -4590,7 +4629,7 @@ struct ObjInlineMarkupMunge {
- identified text by heading level marker followed by text until two new lines
- general markup
-#+name: ao_emitters_obj_inline_markup_munge
+#+name: meta_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
auto munge_heading(Ot)(Ot obj_txt_in, bool reset_note_numbers=false)
in {
@@ -4624,7 +4663,7 @@ struct ObjInlineMarkupMunge {
- footnotes/endnotes
- links
-#+name: ao_emitters_obj_inline_markup_munge
+#+name: meta_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
auto munge_para(Ot)(Ot obj_txt_in)
in {
@@ -4649,7 +4688,7 @@ struct ObjInlineMarkupMunge {
****** quote
-#+name: ao_emitters_obj_inline_markup_munge
+#+name: meta_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
string munge_quote(Ot)(Ot obj_txt_in)
in {
@@ -4674,7 +4713,7 @@ struct ObjInlineMarkupMunge {
- links
- newlines detected and kept?
-#+name: ao_emitters_obj_inline_markup_munge
+#+name: meta_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
auto munge_group(string obj_txt_in)
in { }
@@ -4696,7 +4735,7 @@ struct ObjInlineMarkupMunge {
- links
- newlines detected and kept?
-#+name: ao_emitters_obj_inline_markup_munge
+#+name: meta_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
auto munge_block(Ot)(Ot obj_txt_in)
in {
@@ -4722,7 +4761,7 @@ struct ObjInlineMarkupMunge {
- footnotes/endnotes
- links?
-#+name: ao_emitters_obj_inline_markup_munge
+#+name: meta_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
auto munge_verse(Ot)(Ot obj_txt_in)
in {
@@ -4747,7 +4786,7 @@ struct ObjInlineMarkupMunge {
- no general markup
- one special character represented by mkup.nbsp ░
-#+name: ao_emitters_obj_inline_markup_munge
+#+name: meta_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
string munge_code(Ot)(Ot obj_txt_in)
in {
@@ -4768,7 +4807,7 @@ struct ObjInlineMarkupMunge {
- table block identified by open an close tags
- table markup
-#+name: ao_emitters_obj_inline_markup_munge
+#+name: meta_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
string munge_table(Ot)(Ot obj_txt_in)
in {
@@ -4786,7 +4825,7 @@ struct ObjInlineMarkupMunge {
****** comment
-#+name: ao_emitters_obj_inline_markup_munge
+#+name: meta_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
string munge_comment(Ot)(Ot obj_txt_in)
in {
@@ -4804,7 +4843,7 @@ struct ObjInlineMarkupMunge {
****** }
-#+name: ao_emitters_obj_inline_markup_munge
+#+name: meta_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
}
#+END_SRC
@@ -4812,7 +4851,7 @@ struct ObjInlineMarkupMunge {
***** toc, tags, object inline markup :markup:inline:
****** {
-#+name: ao_emitters_obj_inline_markup
+#+name: meta_emitters_obj_inline_markup
#+BEGIN_SRC d
struct ObjInlineMarkup {
auto rgx = Rgx();
@@ -4822,7 +4861,7 @@ struct ObjInlineMarkup {
****** object inline markup and anchor tags :markup:inline:
-#+name: ao_emitters_obj_inline_markup_and_anchor_tags_and_misc
+#+name: meta_emitters_obj_inline_markup_and_anchor_tags_and_misc
#+BEGIN_SRC d
auto obj_inline_markup_and_anchor_tags_and_misc(O,K,Ma)(
O obj_,
@@ -4912,7 +4951,7 @@ struct ObjInlineMarkup {
****** toc (table of contents), build, gather headings :markup:inline:
-#+name: ao_emitters_obj_inline_markup_table_of_contents
+#+name: meta_emitters_obj_inline_markup_table_of_contents
#+BEGIN_SRC d
auto _clean_heading_toc_(Toc)(
Toc heading_toc_,
@@ -5092,14 +5131,14 @@ struct ObjInlineMarkup {
****** private:
-#+name: ao_emitters_obj_inline_markup_private
+#+name: meta_emitters_obj_inline_markup_private
#+BEGIN_SRC d
private:
#+END_SRC
******* make heading number & segment anchor tags if instructed :markup:inline:segment:anchor:tags:
-#+name: ao_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags
+#+name: meta_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags
#+BEGIN_SRC d
static string _configured_auto_heading_numbering_and_segment_anchor_tags(M,O,Ma)(
M munge_,
@@ -5240,7 +5279,7 @@ private:
******* make segment anchor tags if not provided :markup:inline:segment:anchor:tags:
-#+name: ao_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags
+#+name: meta_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags
#+BEGIN_SRC d
static string _make_segment_anchor_tags_if_none_provided(M,Lv)(M munge_, Lv lev_) {
debug(asserts) {
@@ -5272,7 +5311,7 @@ private:
******** unittests
-#+name: ao_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags
+#+name: meta_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags
#+BEGIN_SRC d
unittest {
string txt_lev="1";
@@ -5322,7 +5361,7 @@ private:
****** }
-#+name: ao_emitters_obj_inline_markup_close
+#+name: meta_emitters_obj_inline_markup_close
#+BEGIN_SRC d
}
#+END_SRC
@@ -5330,7 +5369,7 @@ private:
***** object attrib :attributes:
****** { attributes structure open, public
-#+name: ao_emitters_obj_attributes
+#+name: meta_emitters_obj_attributes
#+BEGIN_SRC d
struct ObjAttributes {
string[string] _obj_attrib;
@@ -5338,7 +5377,7 @@ struct ObjAttributes {
****** emitter obj attributes, public
-#+name: ao_emitters_obj_attributes_public
+#+name: meta_emitters_obj_attributes_public
#+BEGIN_SRC d
string obj_attributes(Oi,OR,OH)(
Oi obj_is_,
@@ -5413,7 +5452,7 @@ struct ObjAttributes {
****** private
-#+name: ao_emitters_obj_attributes_private
+#+name: meta_emitters_obj_attributes_private
#+BEGIN_SRC d
private:
string _obj_attributes;
@@ -5422,7 +5461,7 @@ struct ObjAttributes {
******* attrubutes
******** para & blocks
-#+name: ao_emitters_obj_attributes_private_an_attribute
+#+name: meta_emitters_obj_attributes_private_an_attribute
#+BEGIN_SRC d
string _para_and_blocks(Ot)(Ot obj_txt_in)
in {
@@ -5458,7 +5497,7 @@ struct ObjAttributes {
******** heading
-#+name: ao_emitters_obj_attributes_private_an_attribute
+#+name: meta_emitters_obj_attributes_private_an_attribute
#+BEGIN_SRC d
string _heading(Ot)(Ot obj_txt_in)
in {
@@ -5478,7 +5517,7 @@ struct ObjAttributes {
******** para
-#+name: ao_emitters_obj_attributes_private_an_attribute
+#+name: meta_emitters_obj_attributes_private_an_attribute
#+BEGIN_SRC d
string _para(Ot)(Ot obj_txt_in)
in {
@@ -5498,7 +5537,7 @@ struct ObjAttributes {
******** quote
-#+name: ao_emitters_obj_attributes_private_an_attribute
+#+name: meta_emitters_obj_attributes_private_an_attribute
#+BEGIN_SRC d
string _quote(Ot)(Ot obj_txt_in)
in {
@@ -5518,7 +5557,7 @@ struct ObjAttributes {
******** group
-#+name: ao_emitters_obj_attributes_private_an_attribute
+#+name: meta_emitters_obj_attributes_private_an_attribute
#+BEGIN_SRC d
string _group(Ot)(Ot obj_txt_in)
in {
@@ -5538,7 +5577,7 @@ struct ObjAttributes {
******** block
-#+name: ao_emitters_obj_attributes_private_an_attribute
+#+name: meta_emitters_obj_attributes_private_an_attribute
#+BEGIN_SRC d
string _block(Ot)(Ot obj_txt_in)
in {
@@ -5558,7 +5597,7 @@ struct ObjAttributes {
******** verse
-#+name: ao_emitters_obj_attributes_private_an_attribute
+#+name: meta_emitters_obj_attributes_private_an_attribute
#+BEGIN_SRC d
string _verse(Ot)(Ot obj_txt_in)
in {
@@ -5578,7 +5617,7 @@ struct ObjAttributes {
******** code
-#+name: ao_emitters_obj_attributes_private_an_attribute
+#+name: meta_emitters_obj_attributes_private_an_attribute
#+BEGIN_SRC d
string _code(Ot)(Ot obj_txt_in)
in {
@@ -5598,7 +5637,7 @@ struct ObjAttributes {
******** table
-#+name: ao_emitters_obj_attributes_private_an_attribute
+#+name: meta_emitters_obj_attributes_private_an_attribute
#+BEGIN_SRC d
string _table(Ot)(Ot obj_txt_in)
in {
@@ -5618,7 +5657,7 @@ struct ObjAttributes {
******** comment
-#+name: ao_emitters_obj_attributes_private_an_attribute
+#+name: meta_emitters_obj_attributes_private_an_attribute
#+BEGIN_SRC d
string _comment(Ot)(Ot obj_txt_in)
in {
@@ -5638,7 +5677,7 @@ struct ObjAttributes {
******* set additional attribute values, parse as json
-#+name: ao_emitters_obj_attributes_private_json
+#+name: meta_emitters_obj_attributes_private_json
#+BEGIN_SRC d
string _set_additional_values_parse_as_json(OA,Oi,OH)(
OA _obj_attrib,
@@ -5672,7 +5711,7 @@ struct ObjAttributes {
****** }
-#+name: ao_emitters_obj_attributes_private_close
+#+name: meta_emitters_obj_attributes_private_close
#+BEGIN_SRC d
}
#+END_SRC
@@ -5680,7 +5719,7 @@ struct ObjAttributes {
**** book index :book:index:
***** book index nugget hash :hash:nugget:
-#+name: ao_emitters_book_index_nugget
+#+name: meta_emitters_book_index_nugget
#+BEGIN_SRC d
struct BookIndexNuggetHash {
string main_term, sub_term, sub_term_bits;
@@ -5766,7 +5805,7 @@ struct BookIndexNuggetHash {
***** book index (sort &) report indented :report:indented:
-#+name: ao_emitters_book_index_report_indented
+#+name: meta_emitters_book_index_report_indented
#+BEGIN_SRC d
struct BookIndexReportIndent {
int mkn, skn;
@@ -5802,7 +5841,7 @@ struct BookIndexReportIndent {
***** book index (sort &) report section :report:section:
****** { book index struct open
-#+name: ao_emitters_book_index_report_section
+#+name: meta_emitters_book_index_report_section
#+BEGIN_SRC d
struct BookIndexReportSection {
int mkn, skn;
@@ -5812,7 +5851,7 @@ struct BookIndexReportSection {
****** bookindex write section
-#+name: ao_emitters_book_index_report_section
+#+name: meta_emitters_book_index_report_section
#+BEGIN_SRC d
auto bookindex_write_section(BI)(
BI bookindex_unordered_hashes
@@ -5847,7 +5886,7 @@ struct BookIndexReportSection {
****** book index (sort &) build section :report:section:
-#+name: ao_emitters_book_index_report_section
+#+name: meta_emitters_book_index_report_section
#+BEGIN_SRC d
auto bookindex_build_abstraction_section(BI,N,B)(
BI bookindex_unordered_hashes,
@@ -6010,14 +6049,14 @@ struct BookIndexReportSection {
****** }
-#+name: ao_emitters_book_index_report_section
+#+name: meta_emitters_book_index_report_section
#+BEGIN_SRC d
}
#+END_SRC
**** (end)notes section :endnotes:section:
-#+name: ao_emitters_endnotes
+#+name: meta_emitters_endnotes
#+BEGIN_SRC d
struct NotesSection {
string[string] object_notes;
@@ -6028,7 +6067,7 @@ struct NotesSection {
***** { gather notes for endnote section struct open
-#+name: ao_emitters_endnotes
+#+name: meta_emitters_endnotes
#+BEGIN_SRC d
private auto gather_notes_for_endnote_section(
ObjGenericComposite[] contents_am,
@@ -6090,7 +6129,7 @@ struct NotesSection {
***** gathered notes
-#+name: ao_emitters_endnotes
+#+name: meta_emitters_endnotes
#+BEGIN_SRC d
private auto gathered_notes()
in {
@@ -6110,7 +6149,7 @@ struct NotesSection {
***** endnote objects
-#+name: ao_emitters_endnotes
+#+name: meta_emitters_endnotes
#+BEGIN_SRC d
private auto endnote_objects(
int obj_cite_number,
@@ -6205,7 +6244,7 @@ struct NotesSection {
***** }
-#+name: ao_emitters_endnotes
+#+name: meta_emitters_endnotes
#+BEGIN_SRC d
}
#+END_SRC
@@ -6213,14 +6252,14 @@ struct NotesSection {
**** bibliography :bibliography:
***** { biblio struct
-#+name: ao_emitters_bibliography
+#+name: meta_emitters_bibliography
#+BEGIN_SRC d
struct Bibliography {
#+END_SRC
***** biblio
-#+name: ao_emitters_bibliography
+#+name: meta_emitters_bibliography
#+BEGIN_SRC d
public JSONValue[] _bibliography_(Bi,BJ)(
return ref Bi biblio_unsorted_incomplete,
@@ -6258,7 +6297,7 @@ struct Bibliography {
***** biblio unsorted complete
-#+name: ao_emitters_bibliography
+#+name: meta_emitters_bibliography
#+BEGIN_SRC d
final private JSONValue[] _biblio_unsorted_complete_(Bi,BJ)(
Bi biblio_unordered,
@@ -6299,7 +6338,7 @@ struct Bibliography {
***** biblio sort
-#+name: ao_emitters_bibliography
+#+name: meta_emitters_bibliography
#+BEGIN_SRC d
final private JSONValue[] biblio_sort(BJ)(BJ biblio_unordered) {
debug(asserts) {
@@ -6323,7 +6362,7 @@ struct Bibliography {
***** biblio debug
-#+name: ao_emitters_bibliography
+#+name: meta_emitters_bibliography
#+BEGIN_SRC d
void biblio_debug(BJ)(BJ biblio_sorted) {
debug(asserts) {
@@ -6341,7 +6380,7 @@ struct Bibliography {
***** }
-#+name: ao_emitters_bibliography
+#+name: meta_emitters_bibliography
#+BEGIN_SRC d
}
#+END_SRC
@@ -6349,7 +6388,7 @@ struct Bibliography {
**** node structure metadata :structure:metadata:node:
***** { metadata node struct
-#+name: ao_emitters_metadata
+#+name: meta_emitters_metadata
#+BEGIN_SRC d
struct NodeStructureMetadata {
int lv, lv0, lv1, lv2, lv3, lv4, lv5, lv6, lv7;
@@ -6360,7 +6399,7 @@ struct NodeStructureMetadata {
***** node metadata emitter
-#+name: ao_emitters_metadata
+#+name: meta_emitters_metadata
#+BEGIN_SRC d
ObjGenericComposite node_location_emitter(Lv,Ta,N,C,P,I)(
Lv lev_markup_number,
@@ -6424,7 +6463,7 @@ struct NodeStructureMetadata {
***** node metadata emitter heading, (including most segnames & their pointers)
-#+name: ao_emitters_metadata
+#+name: meta_emitters_metadata
#+BEGIN_SRC d
ObjGenericComposite node_emitter_heading(T,L,Lm,Lc,Ta,N,C,P,LA,I,PSn,fNr,fNs,fL)(
T _text,
@@ -6435,7 +6474,7 @@ struct NodeStructureMetadata {
N obj_cite_number_,
C cntr_,
P ptr_,
- LA lv_ancestors,
+ LA lv_ancestors_txt,
I is_,
PSn html_segnames_ptr,
fNr flag_notes_reg,
@@ -6452,7 +6491,7 @@ struct NodeStructureMetadata {
static assert(is(typeof(obj_cite_number_) == int));
static assert(is(typeof(cntr_) == int));
static assert(is(typeof(ptr_) == int));
- static assert(is(typeof(lv_ancestors) == string[]));
+ static assert(is(typeof(lv_ancestors_txt) == string[]));
static assert(is(typeof(is_) == string));
static assert(is(typeof(html_segnames_ptr) == int));
}
@@ -6564,7 +6603,7 @@ struct NodeStructureMetadata {
_comp_obj_heading_.heading_lev_collapsed = (!(lev_collapsed_number.empty) ? lev_collapsed_number.to!int : 0);
_comp_obj_heading_.parent_ocn = p_["obj_cite_number"];
_comp_obj_heading_.parent_lev_markup = p_["lev_markup_number"];
- _comp_obj_heading_.heading_ancestors_text = lv_ancestors;
+ _comp_obj_heading_.heading_ancestors_text = lv_ancestors_txt;
_comp_obj_heading_.ptr_doc_object = cntr_;
_comp_obj_heading_.ptr_html_segnames = ((lev_markup_number == "4") ? html_segnames_ptr : 0);
_comp_obj_heading_.ptr_heading = ptr_;
@@ -6619,7 +6658,7 @@ struct NodeStructureMetadata {
***** }
-#+name: ao_emitters_metadata
+#+name: meta_emitters_metadata
#+BEGIN_SRC d
}
#+END_SRC
@@ -6854,35 +6893,38 @@ template docSectKeysSeq() {
auto scroll() {
return document_section_keys_sequenced["scroll"];
}
+ auto sql() {
+ return document_section_keys_sequenced["sql"];
+ }
}
return doc_sect_keys_seq();
}
}
#+END_SRC
-* 2. Object Setter (Set Abstract Object) :module:sdp:ao_object_setter:
+* 2. Object Setter (Set Abstract Object) :module:sdp:meta_object_setter:
set abstracted objects for downstream processing
** 0. module template
-#+BEGIN_SRC d :tangle ../src/sdp/ao/object_setter.d
+#+BEGIN_SRC d :tangle ../src/sdp/meta/object_setter.d
/++
object setter:
setting of sisu objects for downstream processing
- ao_object_setter.d
+ meta_object_setter.d
+/
-module sdp.ao.object_setter;
+module sdp.meta.object_setter;
template ObjectSetter() {
/+ structs +/
- <<ao_structs_init>>
+ <<meta_structs_init>>
}
#+END_SRC
** 1. initialize structs :struct:
*** heading attribute
-#+name: ao_structs_init
+#+name: meta_structs_init
#+BEGIN_SRC d
struct HeadingAttrib {
string lev = "9";
@@ -6897,7 +6939,7 @@ struct HeadingAttrib {
*** [#A] _composite object_
-#+name: ao_structs_init
+#+name: meta_structs_init
#+BEGIN_SRC d
struct ObjGenericComposite {
// size_t id;
@@ -6932,6 +6974,7 @@ struct ObjGenericComposite {
int heading_lev_collapsed = 9;
int[] dom_markedup = [ 0, 0, 0, 0, 0, 0, 0, 0,];
int[] dom_collapsed = [ 0, 0, 0, 0, 0, 0, 0, 0,];
+ int[] heading_ancestors = [ 0, 0, 0, 0, 0, 0, 0, 0,];
string[] heading_ancestors_text = [ "", "", "", "", "", "", "", "", ];
string[] lev4_subtoc = [];
int heading_array_ptr = 0;
@@ -6946,7 +6989,7 @@ struct ObjGenericComposite {
*** The Objects: generic composite object array
-#+name: ao_structs_init
+#+name: meta_structs_init
#+BEGIN_SRC d
struct TheObjects {
ObjGenericComposite[] oca;
diff --git a/org/ao_conf_make_meta.org b/org/meta_conf_make_meta.org
index 25bcd4d..5e4cb6d 100644
--- a/org/ao_conf_make_meta.org
+++ b/org/meta_conf_make_meta.org
@@ -11,14 +11,14 @@
#+PROPERTY: header-args :padline no :exports code :noweb yes
#+EXPORT_SELECT_TAGS: export
#+EXPORT_EXCLUDE_TAGS: noexport
-#+FILETAGS: :sdp:rel:ao:
+#+FILETAGS: :sdp:rel:meta:
#+TAGS: assert(a) class(c) debug(d) mixin(m) sdp(s) tangle(T) template(t) WEB(W) noexport(n)
[[./sdp.org][sdp]] [[./][org/]]
-* 0. header extract (native & sdlang) to AA :module:sdp:ao_conf_make_meta:
+* 0. header extract (native & sdlang) to AA :module:sdp:meta_conf_make_meta:
** module template
-#+BEGIN_SRC d :tangle ../src/sdp/ao/conf_make_meta.d
+#+BEGIN_SRC d :tangle ../src/sdp/meta/conf_make_meta.d
/++
extract native/orig header return associative array<BR>
@@ -29,7 +29,7 @@
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;
+module sdp.meta.conf_make_meta;
template docHeaderMakeAndMetaTupExtractAndConvertToAA() {
import
std.exception,
@@ -41,9 +41,9 @@ template docHeaderMakeAndMetaTupExtractAndConvertToAA() {
std.conv : to;
import sdlang;
import
- sdp.ao.conf_make_meta_native,
- sdp.ao.conf_make_meta_sdlang,
- sdp.ao.rgx;
+ sdp.meta.conf_make_meta_native,
+ sdp.meta.conf_make_meta_sdlang,
+ sdp.meta.rgx;
mixin SiSUrgxInit;
mixin SiSUheaderExtractNative;
mixin SiSUextractSDLang;
@@ -70,15 +70,15 @@ template docHeaderMakeAndMetaTupExtractAndConvertToAA() {
}
#+END_SRC
-* A. module sdlang :module:sdp:ao_conf_make_meta_sdlang:
+* A. module sdlang :module:sdp:meta_conf_make_meta_sdlang:
** 0. module template
-#+BEGIN_SRC d :tangle ../src/sdp/ao/conf_make_meta_sdlang.d
+#+BEGIN_SRC d :tangle ../src/sdp/meta/conf_make_meta_sdlang.d
/++
sdlang headers<BR>
extract sdlang header return sdlang
+/
-module sdp.ao.conf_make_meta_sdlang;
+module sdp.meta.conf_make_meta_sdlang;
template SiSUextractSDLang() {
import
std.exception,
@@ -90,20 +90,20 @@ template SiSUextractSDLang() {
std.utf,
std.conv : to;
import
- sdp.ao.defaults,
- sdp.ao.rgx;
+ sdp.meta.defaults,
+ sdp.meta.rgx;
struct extractSDL {
mixin SiSUregisters;
mixin SiSUrgxInit;
auto rgx = Rgx();
- <<ao_conf_make_meta_sdl>>
+ <<meta_conf_make_meta_sdl>>
}
}
#+END_SRC
** 1. sdlang header _extract root Tag_ :sdlang:root:tag:
-#+name: ao_conf_make_meta_sdl
+#+name: meta_conf_make_meta_sdl
#+BEGIN_SRC d
private auto docHeaderSDLtagGet(Hs)(Hs src_header) {
debug(asserts){
@@ -158,7 +158,7 @@ private auto docHeaderSDLtagGet(Hs)(Hs src_header) {
** 2a. _sdlang to associative array_
-#+name: ao_conf_make_meta_sdl
+#+name: meta_conf_make_meta_sdl
#+BEGIN_SRC d
private auto sdlangToAA(C,Tag)(C conf, Tag conf_sdlang) {
debug(asserts){
@@ -200,7 +200,7 @@ private auto sdlangToAA(C,Tag)(C conf, Tag conf_sdlang) {
** 2b. sdlang header to _associative array_ make sdlTag in :sdlang:aa:
-#+name: ao_conf_make_meta_sdl
+#+name: meta_conf_make_meta_sdl
#+BEGIN_SRC d
private auto docHeaderSDLtoAA(Ma, Tag)(Ma dochead_make, Tag header_sdlang) {
debug(asserts){
@@ -250,15 +250,15 @@ private auto docHeaderSDLtoAA(Ma, Tag)(Ma dochead_make, Tag header_sdlang) {
}
#+END_SRC
-* B. module native document header :module:sdp:ao_conf_make_meta_native:
+* B. module native document header :module:sdp:meta_conf_make_meta_native:
** module template
-#+BEGIN_SRC d :tangle ../src/sdp/ao/conf_make_meta_native.d
+#+BEGIN_SRC d :tangle ../src/sdp/meta/conf_make_meta_native.d
/++
native headers using<br>@title:<BR>:subtitle:<BR>type tags<BR>
extract native/orig header return associative array
+/
-module sdp.ao.conf_make_meta_native;
+module sdp.meta.conf_make_meta_native;
template SiSUheaderExtractNative() {
import
std.exception,
@@ -270,8 +270,8 @@ template SiSUheaderExtractNative() {
std.utf,
std.conv : to;
import
- sdp.ao.defaults,
- sdp.ao.rgx;
+ sdp.meta.defaults,
+ sdp.meta.rgx;
struct HeaderDocMetadataAndMakeNativeToAA {
mixin SiSUregisters;
mixin SiSUrgxInitFlags;
@@ -279,14 +279,14 @@ template SiSUheaderExtractNative() {
auto rgx = Rgx();
enum State { off, on }
string hm, hs;
- <<ao_markup_header_extract_native>>
+ <<meta_markup_header_extract_native>>
}
}
#+END_SRC
** native header document metadata in associative array :aa:
-#+name: ao_markup_header_extract_native
+#+name: meta_markup_header_extract_native
#+BEGIN_SRC d
auto header_metadata_and_make_aa(H,Me,Ma)(
H header,
@@ -482,7 +482,7 @@ body {
** native header extract to string object :string:
-#+name: ao_markup_header_extract_native
+#+name: meta_markup_header_extract_native
#+BEGIN_SRC d
private auto native_header_extract(L,Lo,O,T)(
L line,
@@ -532,7 +532,7 @@ private auto native_header_extract(L,Lo,O,T)(
** native header reset states :reset:
-#+name: ao_markup_header_extract_native
+#+name: meta_markup_header_extract_native
#+BEGIN_SRC d
auto header_reset_states_common(Lo,O,T)(
return ref Lo line_occur,
@@ -555,7 +555,7 @@ auto header_reset_states_common(Lo,O,T)(
** hub: native header start :hub:
-#+name: ao_markup_header_extract_native
+#+name: meta_markup_header_extract_native
#+BEGIN_SRC d
private auto headerNativeToAA(Hn)(Hn src_header) {
debug(asserts){
@@ -611,16 +611,16 @@ private auto headerNativeToAA(Hn)(Hn src_header) {
}
#+END_SRC
-* 0. composite make :module:sdp:ao_composite_make:
+* 0. composite make :module:sdp:meta_composite_make:
** TODO 0. template
*** composite make
-#+BEGIN_SRC d :tangle ../src/sdp/ao/composite_make.d
+#+BEGIN_SRC d :tangle ../src/sdp/meta/composite_make.d
/++
output hub<BR>
check & generate output types requested
+/
-module sdp.ao.composite_make;
+module sdp.meta.composite_make;
template compositeMkCnf() {
<<imports>>
mixin SiSUrgxInit;
@@ -688,7 +688,7 @@ template compositeMkCnf() {
#+END_SRC
*** composite make aa
-#+BEGIN_SRC d :tangle ../src/sdp/ao/composite_make.d
+#+BEGIN_SRC d :tangle ../src/sdp/meta/composite_make.d
/++
output hub<BR>
check & generate output types requested
@@ -733,6 +733,6 @@ template compositeMkCnfAA() {
#+name: imports
#+BEGIN_SRC d
-import sdp.ao;
+import sdp.meta;
import std.array;
#+END_SRC
diff --git a/org/ao_debugs.org b/org/meta_debugs.org
index 1111d55..fb34b34 100644
--- a/org/ao_debugs.org
+++ b/org/meta_debugs.org
@@ -11,18 +11,18 @@
#+PROPERTY: header-args :padline no :exports code :noweb yes
#+EXPORT_SELECT_TAGS: export
#+EXPORT_EXCLUDE_TAGS: noexport
-#+FILETAGS: :sdp:rel:ao:
+#+FILETAGS: :sdp:rel:meta:
#+TAGS: assert(a) class(c) debug(d) mixin(m) sdp(s) tangle(T) template(t) WEB(W) noexport(n)
[[./sdp.org][sdp]] [[./][org/]]
-* 1. abstraction debugs :module:sdp:ao_doc_debugs:
+* 1. abstraction debugs :module:sdp:meta_doc_debugs:
** 0. module template
-#+BEGIN_SRC d :tangle ../src/sdp/ao/doc_debugs.d
+#+BEGIN_SRC d :tangle ../src/sdp/meta/doc_debugs.d
/++
output debugs
+/
-module sdp.ao.doc_debugs;
+module sdp.meta.doc_debugs;
template SiSUdebugs() {
<<debug_imports>>
auto SiSUdebugs(S,T)(
@@ -32,11 +32,11 @@ template SiSUdebugs() {
mixin SiSUrgxInit;
mixin InternalMarkup;
<<initialize>>
- <<ao_output_debugs>>
+ <<meta_output_debugs>>
debug(checkdoc) {
if ((doc_matters.opt_action["debug"])) {
- <<ao_output_debugs_summary>>
- <<ao_output_debugs_checkdoc>>
+ <<meta_output_debugs_summary>>
+ <<meta_output_debugs_checkdoc>>
}
}
}
@@ -48,8 +48,8 @@ template SiSUdebugs() {
#+name: debug_imports
#+BEGIN_SRC d
import
- sdp.ao.defaults,
- sdp.ao.rgx;
+ sdp.meta.defaults,
+ sdp.meta.rgx;
import
std.algorithm,
std.array,
@@ -79,7 +79,7 @@ string key;
** (parent) :parent:
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(parent) {
writefln(
@@ -107,7 +107,7 @@ debug(parent) {
** (dumpdoc) :objects:
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(dumpdoc) {
writefln(
@@ -131,7 +131,7 @@ debug(dumpdoc) {
** (segnames) :objects:
-#+name: ao_output_debugs_checkdoc
+#+name: meta_output_debugs_checkdoc
#+BEGIN_SRC d
debug(checkdoc) {
void out_segnames(S,T)(
@@ -154,7 +154,7 @@ debug(checkdoc) {
** shared output section arrange
*** out toc
-#+name: ao_output_debugs_checkdoc
+#+name: meta_output_debugs_checkdoc
#+BEGIN_SRC d
debug(checkdoc) {
void out_toc(S)(
@@ -178,7 +178,7 @@ debug(checkdoc) {
*** out endnotes :endnotes:
-#+name: ao_output_debugs_checkdoc
+#+name: meta_output_debugs_checkdoc
#+BEGIN_SRC d
debug(checkdoc) {
void out_endnotes(S)(
@@ -200,7 +200,7 @@ debug(checkdoc) {
*** out bookindex :bookindex:
-#+name: ao_output_debugs_checkdoc
+#+name: meta_output_debugs_checkdoc
#+BEGIN_SRC d
debug(checkdoc) {
void out_bookindex(S)(
@@ -224,7 +224,7 @@ debug(checkdoc) {
** sections
*** heading_section :heading:
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(section_head) {
key="head";
@@ -244,7 +244,7 @@ debug(section_head) {
*** toc_section (seg & scroll)
**** toc
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(section_toc) {
key="toc_seg";
@@ -254,7 +254,7 @@ debug(section_toc) {
**** toc seg
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(section_toc_seg) {
key="toc_seg";
@@ -264,7 +264,7 @@ debug(section_toc_seg) {
**** toc scroll
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(section_toc_scroll) {
key="toc_scroll";
@@ -272,7 +272,7 @@ debug(section_toc_scroll) {
}
#+END_SRC
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(segnames) {
writeln(__LINE__);
@@ -282,7 +282,7 @@ debug(segnames) {
*** body_section :body:
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(section_body) {
key="body";
@@ -301,7 +301,7 @@ debug(section_body) {
*** dom structure :body:
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(toc_nav_dom) {
enum DomTags { none, open, close, close_and_open, open_still, }
@@ -364,7 +364,7 @@ debug(toc_nav_dom) {
*** endnotes_section (seg & scroll) :endnotes:
**** endnotes
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(section_endnotes) {
key="endnotes";
@@ -374,7 +374,7 @@ debug(section_endnotes) {
**** endnotes seg
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(section_endnotes_seg) {
key="endnotes";
@@ -384,7 +384,7 @@ debug(section_endnotes_seg) {
*** glossary_section :glossary:
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(section_glossary) {
key="glossary";
@@ -403,7 +403,7 @@ debug(section_glossary) {
*** bibliography_section (seg & scroll) :bibliography:
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(section_bibliography) {
key="bibliography";
@@ -423,7 +423,7 @@ debug(section_bibliography) {
*** bookindex_section (seg & scroll) :bookindex:
**** bookindex
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(section_bookindex) {
key="bookindex_seg";
@@ -433,7 +433,7 @@ debug(section_bookindex) {
**** bookindex seg
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(section_bookindex_seg) {
key="bookindex_seg";
@@ -443,7 +443,7 @@ debug(section_bookindex_seg) {
**** bookindex scroll
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(section_bookindex_scroll) {
key="bookindex_scroll";
@@ -453,7 +453,7 @@ debug(section_bookindex_scroll) {
*** section_blurb :blurb:
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(blurb_section) {
key="blurb";
@@ -472,7 +472,7 @@ debug(blurb_section) {
** (objects) :objects:
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(objects) {
writefln(
@@ -496,7 +496,7 @@ debug(objects) {
** (headermakejson) :json:header:
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(headermakejson) {
writefln(
@@ -528,7 +528,7 @@ debug(headermakejson) {
** (headermetadatajson) :json:header:
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(headermetadatajson) {
writefln(
@@ -656,7 +656,7 @@ debug(headermetadatajson) {
** anchor tags
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(anchor) {
writefln(
@@ -684,7 +684,7 @@ debug(anchor) {
** (headings) :headings:
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(heading) { // heading
foreach (k; doc_matters.keys_seq.seg) {
@@ -705,7 +705,7 @@ debug(heading) { // heading
** (summary) [+1] :summary:
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(headings) {
writefln(
@@ -730,7 +730,7 @@ debug(headings) {
}
#+END_SRC
-#+name: ao_output_debugs
+#+name: meta_output_debugs
#+BEGIN_SRC d
debug(summary) {
string[string] check = [
@@ -741,7 +741,7 @@ debug(summary) {
*** compare number of obj_cite_number for known sisu markup output (checkdoc)
-#+name: ao_output_debugs_summary
+#+name: meta_output_debugs_summary
#+BEGIN_SRC d
debug(checkdoc) {
if (auto mfn=match(doc_matters.source_filename, rgx.src_fn)) {
diff --git a/org/ao_read_source_files.org b/org/meta_read_source_files.org
index 7bbaca9..06c3cb7 100644
--- a/org/ao_read_source_files.org
+++ b/org/meta_read_source_files.org
@@ -11,7 +11,7 @@
#+PROPERTY: header-args :padline no :exports code :noweb yes
#+EXPORT_SELECT_TAGS: export
#+EXPORT_EXCLUDE_TAGS: noexport
-#+FILETAGS: :sdp:rel:ao:read:file
+#+FILETAGS: :sdp:rel:meta:read:file
#+TAGS: assert(a) class(c) debug(d) mixin(m) sdp(s) tangle(T) template(t) WEB(W) noexport(n)
[[./sdp.org][sdp]] [[./][org/]]
@@ -20,29 +20,29 @@
#+name: imports_std
#+BEGIN_SRC d
import
- sdp.ao,
+ sdp.meta,
std.file,
std.path;
#+END_SRC
-* 1. get _config file_ (read in) :module:sdp:ao_read_config_files:
+* 1. get _config file_ (read in) :module:sdp:meta_read_config_files:
** 0. module template
-#+BEGIN_SRC d :tangle ../src/sdp/ao/read_config_files.d
+#+BEGIN_SRC d :tangle ../src/sdp/meta/read_config_files.d
/++
read configuration files<BR>
- read config files<BR>
- ao_config_files.d
+ meta_config_files.d
+/
-module sdp.ao.read_config_files;
-<<ao_config_file_in>>
-<<ao_config_file_sdl>>
-<<ao_config_file_hub>>
+module sdp.meta.read_config_files;
+<<meta_config_file_in>>
+<<meta_config_file_sdl>>
+<<meta_config_file_hub>>
#+END_SRC
** 1. read config file, (conf.sdl & sisu_document_make) :file:config:
-#+name: ao_config_file_in
+#+name: meta_config_file_in
#+BEGIN_SRC d
template configIn() {
<<imports_std>>
@@ -84,7 +84,7 @@ template configIn() {
** 2. config files get sdlang root tag
*** 0. template
-#+name: ao_config_file_sdl
+#+name: meta_config_file_sdl
#+BEGIN_SRC d
/+
@@ -92,13 +92,13 @@ template configIn() {
template ConfigSDLang() {
import sdlang;
<<imports_std>>
- <<ao_config_file_sdlang>>
+ <<meta_config_file_sdlang>>
}
#+END_SRC
*** config file get sdl root tag :file:conf:sdlang:
-#+name: ao_config_file_sdlang
+#+name: meta_config_file_sdlang
#+BEGIN_SRC d
auto ConfigSDLang(string configuration, string conf_sdl_filename) {
Tag sdl_root_conf;
@@ -116,19 +116,19 @@ auto ConfigSDLang(string configuration, string conf_sdl_filename) {
** 3. config file (conf.sdl & sisu_document_make) :file:config:hub:
*** 0. template
-#+name: ao_config_file_hub
+#+name: meta_config_file_hub
#+BEGIN_SRC d
/+
+/
template configRead() {
<<imports_std>>
- <<ao_config_file_import_sdlang>>
- <<ao_config_file_sdlang_hub>>
+ <<meta_config_file_import_sdlang>>
+ <<meta_config_file_sdlang_hub>>
}
#+END_SRC
*** config hub import sdlang
-#+name: ao_config_file_import_mixin
+#+name: meta_config_file_import_mixin
#+BEGIN_SRC d
import sdlang;
#+END_SRC
@@ -137,7 +137,7 @@ import sdlang;
Read in sdl config file name given, and return sdl root
-#+name: ao_config_file_sdlang_hub
+#+name: meta_config_file_sdlang_hub
#+BEGIN_SRC d
final auto configRead(C,E)(C conf_sdl, E env) {
auto configuration = configIn!()(conf_sdl, env);
@@ -146,19 +146,19 @@ final auto configRead(C,E)(C conf_sdl, E env) {
}
#+END_SRC
-* 2. get _markup source_, read file :module:sdp:ao_read_source_files:
+* 2. get _markup source_, read file :module:sdp:meta_read_source_files:
** 0. module template
-#+BEGIN_SRC d :tangle ../src/sdp/ao/read_source_files.d
+#+BEGIN_SRC d :tangle ../src/sdp/meta/read_source_files.d
/++
- module ao_read_source_files;<BR>
+ module meta_read_source_files;<BR>
- open markup files<BR>
- if master file scan for addional files to import/insert
+/
-module sdp.ao.read_source_files;
+module sdp.meta.read_source_files;
template SiSUrawMarkupContent() {
import
- sdp.ao.rgx;
+ sdp.meta.rgx;
<<imports_std>>
mixin SiSUrgxInit;
auto rgx = Rgx();
@@ -201,36 +201,36 @@ template SiSUrawMarkupContent() {
}
struct MarkupRawUnit {
import std.file;
- <<ao_markup_source_raw_read_file_source_string>>
- <<ao_markup_source_raw_doc_header_and_content_split>>
- <<ao_markup_source_raw_source_line_array>>
- <<ao_markup_source_raw_read_in_file>>
- <<ao_markup_source_raw_tuple_of_header_and_body>>
- <<ao_markup_source_raw_get_insert_source_line_array>>
+ <<meta_markup_source_raw_read_file_source_string>>
+ <<meta_markup_source_raw_doc_header_and_content_split>>
+ <<meta_markup_source_raw_source_line_array>>
+ <<meta_markup_source_raw_read_in_file>>
+ <<meta_markup_source_raw_tuple_of_header_and_body>>
+ <<meta_markup_source_raw_get_insert_source_line_array>>
}
struct Inserts {
- import sdp.ao.defaults;
+ import sdp.meta.defaults;
auto scan_subdoc_source(
char[][] markup_sourcefile_insert_content,
string fn_src
) {
mixin SiSUrgxInitFlags;
- <<ao_inserts_scan>>
+ <<meta_inserts_scan>>
foreach (line; markup_sourcefile_insert_content) {
- <<ao_inserts_scan_loop>>
+ <<meta_inserts_scan_loop>>
} // end src subdoc (inserts) loop
- <<ao_inserts_scan_post>>
+ <<meta_inserts_scan_post>>
}
auto scan_master_src_for_insert_files_and_import_content(
char[][] sourcefile_body_content,
string fn_src
) {
mixin SiSUrgxInitFlags;
- <<ao_master_doc_scan_for_insert_filenames>>
+ <<meta_master_doc_scan_for_insert_filenames>>
foreach (line; sourcefile_body_content) {
- <<ao_master_doc_scan_for_insert_filenames_loop>>
+ <<meta_master_doc_scan_for_insert_filenames_loop>>
} // end src doc loop
- <<ao_master_doc_scan_for_insert_filenames_post>>
+ <<meta_master_doc_scan_for_insert_filenames_post>>
}
}
}
@@ -239,7 +239,7 @@ template SiSUrawMarkupContent() {
** get markup source, read file :source:markup:
*** [#A] read file, source string :string:
-#+name: ao_markup_source_raw_read_file_source_string
+#+name: meta_markup_source_raw_read_file_source_string
#+BEGIN_SRC d
final private string readInMarkupSource(in char[] fn_src) {
enforce(
@@ -276,7 +276,7 @@ catch (ErrnoException ex) {
here you split document header and body, an array.length == 2
split is on first match of level A~ (which is required)
-#+name: ao_markup_source_raw_doc_header_and_content_split
+#+name: meta_markup_source_raw_doc_header_and_content_split
#+BEGIN_SRC d
final private char[][] header0Content1(in string src_text) {
/+ split string on _first_ match of "^:?A~\s" into [header, content] array/tuple +/
@@ -295,7 +295,7 @@ final private char[][] header0Content1(in string src_text) {
*** source line array :array:
-#+name: ao_markup_source_raw_source_line_array
+#+name: meta_markup_source_raw_source_line_array
#+BEGIN_SRC d
final private char[][] markupSourceLineArray(in char[] src_text) {
char[][] source_line_arr =
@@ -310,7 +310,7 @@ final private char[][] markupSourceLineArray(in char[] src_text) {
**** read in file
-#+name: ao_markup_source_raw_read_in_file
+#+name: meta_markup_source_raw_read_in_file
#+BEGIN_SRC d
auto markupSourceReadIn(in string fn_src) {
auto rgx = Rgx();
@@ -325,7 +325,7 @@ auto markupSourceReadIn(in string fn_src) {
**** tuple header and body content
-#+name: ao_markup_source_raw_tuple_of_header_and_body
+#+name: meta_markup_source_raw_tuple_of_header_and_body
#+BEGIN_SRC d
auto markupSourceHeaderContentRawLineTupleArray(in string source_txt_str) {
string[] file_insert_list = [];
@@ -344,7 +344,7 @@ auto markupSourceHeaderContentRawLineTupleArray(in string source_txt_str) {
**** get insert source line array
-#+name: ao_markup_source_raw_get_insert_source_line_array
+#+name: meta_markup_source_raw_get_insert_source_line_array
#+BEGIN_SRC d
final char[][] getInsertMarkupSourceContentRawLineArray(
in char[] fn_src_insert,
@@ -366,7 +366,7 @@ final char[][] getInsertMarkupSourceContentRawLineArray(
*** scan inserts (sub-document) source :scan_insert_src:
**** scan subdoc source
-#+name: ao_inserts_scan
+#+name: meta_inserts_scan
#+BEGIN_SRC d
char[][] contents_insert;
auto type1 = flags_type_init;
@@ -376,7 +376,7 @@ auto markup_src_file_path = fn_pth_full.captures[1];
**** loop insert (sub-document)
-#+name: ao_inserts_scan_loop
+#+name: meta_inserts_scan_loop
#+BEGIN_SRC d
if (type1["curly_code"] == 1) {
type1["header_make"] = 0;
@@ -452,7 +452,7 @@ if (type1["curly_code"] == 1) {
**** post loop
-#+name: ao_inserts_scan_post
+#+name: meta_inserts_scan_post
#+BEGIN_SRC d
return contents_insert;
#+END_SRC
@@ -460,7 +460,7 @@ return contents_insert;
*** scan document source :scan_src:
**** scan doc source
-#+name: ao_master_doc_scan_for_insert_filenames
+#+name: meta_master_doc_scan_for_insert_filenames
#+BEGIN_SRC d
char[][] contents;
auto type = flags_type_init;
@@ -471,7 +471,7 @@ string[] insert_file_list =[];
**** include inserts: _loop master_ scan for inserts (insert documents)
-#+name: ao_master_doc_scan_for_insert_filenames_loop
+#+name: meta_master_doc_scan_for_insert_filenames_loop
#+BEGIN_SRC d
if (type["curly_code"] == 1) {
if (line.matchFirst(rgx.block_curly_code_close)) {
@@ -533,7 +533,7 @@ if (type["curly_code"] == 1) {
**** post loop
-#+name: ao_master_doc_scan_for_insert_filenames_post
+#+name: meta_master_doc_scan_for_insert_filenames_post
#+BEGIN_SRC d
debug(insert_file) {
writeln(__LINE__);
diff --git a/org/output_xmls_css.org b/org/output_xmls_css.org
index 0a9afb5..1adb168 100644
--- a/org/output_xmls_css.org
+++ b/org/output_xmls_css.org
@@ -11,11 +11,11 @@
#+PROPERTY: header-args :padline no :exports code :noweb yes
#+EXPORT_SELECT_TAGS: export
#+EXPORT_EXCLUDE_TAGS: noexport
-#+FILETAGS: :sdp:rel:ao:
+#+FILETAGS: :sdp:rel:output:
#+TAGS: assert(a) class(c) debug(d) mixin(m) sdp(s) tangle(T) template(t) WEB(W) noexport(n)
[[./sdp.org][sdp]] [[./][org/]]
-* 0. ao css defaults :module:sdp:output_xmls_css:
+* 0. output css defaults :module:sdp:output_xmls_css:
** 0. module template
#+BEGIN_SRC d :tangle ../src/sdp/output/xmls_css.d
diff --git a/org/sdp.org b/org/sdp.org
index d4e40b4..63557ed 100644
--- a/org/sdp.org
+++ b/org/sdp.org
@@ -25,7 +25,7 @@ struct Version {
int minor;
int patch;
}
-enum ver = Version(0, 17, 0);
+enum ver = Version(0, 18, 0);
#+END_SRC
* 1. sdp (sisu document parser) :sdp:
@@ -50,7 +50,7 @@ enum ver = Version(0, 17, 0);
module sdp.sisu_document_parser;
import
sdp.conf.compile_time_info,
- sdp.ao.abstraction;
+ sdp.meta.metadoc;
<<imports_sdp>>
<<mixin_sdp_version>>
<<mixin_pre_main>>
@@ -92,22 +92,22 @@ unittest {
#+NAME: imports_sdp
#+BEGIN_SRC d
/+ sdp: sisu document parser, see http://sisudoc.org +/
-import sdp.ao;
+import sdp.meta;
import
std.getopt,
std.process;
import
- sdp.ao.abstraction_summary,
- sdp.ao.abstract_doc_source,
- sdp.ao.composite_make,
- sdp.ao.conf_make_meta,
- // sdp.ao.conf_make_meta_native,
- sdp.ao.conf_make_meta_sdlang,
- sdp.ao.defaults,
- sdp.ao.doc_debugs,
- sdp.ao.read_config_files,
- sdp.ao.read_source_files,
- sdp.ao.rgx,
+ sdp.meta.metadoc_summary,
+ sdp.meta.metadoc_from_src,
+ sdp.meta.composite_make,
+ sdp.meta.conf_make_meta,
+ // sdp.meta.conf_make_meta_native,
+ sdp.meta.conf_make_meta_sdlang,
+ sdp.meta.defaults,
+ sdp.meta.doc_debugs,
+ sdp.meta.read_config_files,
+ sdp.meta.read_source_files,
+ sdp.meta.rgx,
sdp.output.hub,
sdp.output.paths_source;
#+END_SRC
@@ -116,17 +116,17 @@ import
├── src
│   ├── sdp.d
│   └── sdp
-│    ├── ao_abstract_doc_source.d
+│    ├── meta_metadoc_from_src.d
│    ├── ...
│    └── compile_time_info.d
└── views
   └── version.txt
-[[./ao_abstract_doc_source.org][ao_abstract_doc_source]]
-[[./ao_conf_make_meta.org][ao_conf_make_meta]]
-[[./ao_defaults.org][ao_defaults]]
-[[./ao_output_debugs.org][ao_output_debugs]]
-[[./ao_read_source_files.org][ao_read_source_files]]
+[[./meta_metadoc_from_src.org][meta_metadoc_from_src]]
+[[./meta_conf_make_meta.org][meta_conf_make_meta]]
+[[./meta_defaults.org][meta_defaults]]
+[[./meta_output_debugs.org][meta_output_debugs]]
+[[./meta_read_source_files.org][meta_read_source_files]]
[[./compile_time_info.org][compile time info]]
[[./output.org][output]]
[[./sdp.org][sdp]]
@@ -386,7 +386,7 @@ if (doc_matters.opt_action["verbose"]) {
}
#+END_SRC
**** 1. _debug_ (document parts, checkdoc) :debug:checkdoc:
-- [[./ao_output_debugs.org][ao_output_debugs]]
+- [[./meta_output_debugs.org][meta_output_debugs]]
#+NAME: sdp_each_file_do_debugs_checkdoc
#+BEGIN_SRC d
@@ -435,8 +435,8 @@ break; // terminate, stop
* 2. _document abstraction functions_ :module:sdp:abstraction:
** 0. module template
-#+BEGIN_SRC d :tangle ../src/sdp/ao/abstraction.d
-module sdp.ao.abstraction;
+#+BEGIN_SRC d :tangle ../src/sdp/meta/metadoc.d
+module sdp.meta.metadoc;
template SiSUabstraction() {
<<imports_sdp>>
<<sdp_mixin>>
@@ -458,7 +458,7 @@ template SiSUabstraction() {
#+END_SRC
** 1. (a) _read in raw file_ (b) split content into: _doc header & doc content_
-- [[./ao_read_source_files.org][ao_read_source_files]]
+- [[./meta_read_source_files.org][meta_read_source_files]]
- read in the source marked up document and
- split the document into:
@@ -486,7 +486,7 @@ debug(header_and_body) {
#+END_SRC
** 2. _document metadata_ & _make instructions_ :doc:header:metadata:make:
-- [[./ao_conf_make_meta.org][ao_conf_make_meta]]
+- [[./meta_conf_make_meta.org][meta_conf_make_meta]]
- read document header, split into:
- metadata
@@ -531,7 +531,7 @@ auto _make_and_conf_composite_static_plus_docheader_aa = compositeMkCnfAA!()(
#+END_SRC
** 4. _document abstraction, tuple_ (pre-output-processing) :processing:
-- [[./ao_doc_abstraction.org][ao_doc_abstraction]]
+- [[./meta_abstraction.org][meta_abstraction]]
- prepare the document abstraction used in downstream processing
@@ -629,21 +629,21 @@ struct DocumentMatters {
auto doc_matters = DocumentMatters();
#+END_SRC
-* 3. document abstraction _summary_ :module:sdp:abstraction_summary:
+* 3. document abstraction _summary_ :module:sdp:metadoc_summary:
** 0. module template
-#+BEGIN_SRC d :tangle ../src/sdp/ao/abstraction_summary.d
-module sdp.ao.abstraction_summary;
+#+BEGIN_SRC d :tangle ../src/sdp/meta/metadoc_summary.d
+module sdp.meta.metadoc_summary;
template SiSUabstractionSummary() {
auto SiSUabstractionSummary(S,T)(
auto return ref const S doc_abstraction,
auto return ref T doc_matters,
) {
- <<abstraction_summary_imports>>
+ <<metadoc_summary_imports>>
mixin InternalMarkup;
- <<abstraction_summary_initialize>>
+ <<metadoc_summary_initialize>>
if (doc_matters.opt_action["verbose"]) {
- <<ao_abstraction_summary>>
+ <<meta_metadoc_summary>>
}
}
}
@@ -652,11 +652,11 @@ template SiSUabstractionSummary() {
** init
*** imports
-#+name: abstraction_summary_imports
+#+name: metadoc_summary_imports
#+BEGIN_SRC d
import
- sdp.ao.defaults,
- sdp.ao.rgx;
+ sdp.meta.defaults,
+ sdp.meta.rgx;
import
std.array,
std.exception,
@@ -672,14 +672,14 @@ import
*** initialize :report:
-#+name: abstraction_summary_initialize
+#+name: metadoc_summary_initialize
#+BEGIN_SRC d
auto markup = InlineMarkup();
#+END_SRC
** (last ocn)
-#+name: ao_abstraction_summary
+#+name: meta_metadoc_summary
#+BEGIN_SRC d
string[string] check = [
"last_obj_cite_number" : "NA [debug \"checkdoc\" not run]",
@@ -697,7 +697,7 @@ foreach (k; doc_matters.keys_seq.seg) {
** summary
-#+name: ao_abstraction_summary
+#+name: meta_metadoc_summary
#+BEGIN_SRC d
auto min_repeat_number = 66;
auto char_repeat_number = (doc_matters.dochead_meta["title"]["full"].length
@@ -743,3 +743,217 @@ writefln(
markup.repeat_character_by_number_provided("-", min_repeat_number),
);
#+END_SRC
+
+* __END__
+dev notes
+
+** sdp glossary / terms
+
+|------+-------------------------------------|
+| sdp | sisu document parser |
+|------+-------------------------------------|
+| dmso | document markup, structure, objects |
+|------+-------------------------------------|
+| meta | meta document, document abstraction |
+| mda | meta, meta document abstraction |
+| adr | abstract document representation |
+| dar | document abstract representation |
+| (da) | (document abstraction) |
+| | (code representation of document) |
+|------+-------------------------------------|
+| ao | abstract objects |
+| | (code representation of objects) |
+|------+-------------------------------------|
+
+consider
+|-------+----------------------------------------------|
+| dao | document abstraction, objects |
+|-------+----------------------------------------------|
+| daso | document abstraction, structure, objects |
+|-------+----------------------------------------------|
+| drso | document representation, structure, objects |
+|-------+----------------------------------------------|
+| daows | document abstraction, objects with structure |
+|-------+----------------------------------------------|
+
+** the document notes
+*** document sections
+**** summary
+
+|--------------+--------------+------+---+--------------------------------------------------+--------------------------------+---+---|
+| section | part | opt. | | objects | ocn | | |
+|--------------+--------------+------+---+--------------------------------------------------+--------------------------------+---+---|
+| front matter | head | * | | | no | | |
+|--------------+--------------+------+---+--------------------------------------------------+--------------------------------+---+---|
+| toc | toc | | | generated from headings | no | | |
+|--------------+--------------+------+---+--------------------------------------------------+--------------------------------+---+---|
+| body | body | * | | default section | yes | | |
+| | | | | - headings | | | |
+| | | | | - paras | | | |
+| | | | | - code | | | |
+| | | | | - poem | | | |
+| | | | | - group | | | |
+| | | | | - block | | | |
+| | | | | - quote | | | |
+| | | | | - table | | | |
+|--------------+--------------+------+---+--------------------------------------------------+--------------------------------+---+---|
+| back matter | endnote | | | generated from inline note markup | no (each endnote belongs to | | |
+| | | | | | a (body) object) | | |
+|--------------+--------------+------+---+--------------------------------------------------+--------------------------------+---+---|
+| | glossary | | | identified section, limited markup | possibly, to make searchable | | |
+| | | | | - heading | hidden | | |
+| | | | | - paras | | | |
+|--------------+--------------+------+---+--------------------------------------------------+--------------------------------+---+---|
+| | bibliography | | | generated from inline special markup | possibly, to make searchable | | |
+| | | | | appended to paragraphs contained in body section | hidden | | |
+| | | | | - heading | | | |
+| | | | | - paras | | | |
+|--------------+--------------+------+---+--------------------------------------------------+--------------------------------+---+---|
+| | book index | | | generated from inline special markup | possibly, special numbering or | | |
+| | | | | - heading | could use term as anchor? | | |
+| | | | | - paras | to make searchable | | |
+| | | | | | hidden | | |
+|--------------+--------------+------+---+--------------------------------------------------+--------------------------------+---+---|
+| | blurb | | | identified section, limited markup | no (unless non-substantive | | |
+| | | | | - heading | given special numbering) | | |
+| | | | | - paras | | | |
+|--------------+--------------+------+---+--------------------------------------------------+--------------------------------+---+---|
+
+**** on abstraction
+
+- abstract for downstream processing
+ - identify document structure and objects
+ - identify document structure (headings/levels/sections)
+ - identify objects (headings, paragraphs, tables, code blocks, verse ...)
+ - set document, generate common abstraction for downstream parsing
+ - set different _document sections_:
+ - _head_, toc, _body_, endnotes, glossary, bibliography, book index, blurb
+ - _object numbers_, heading/ chapter numbering etc, endnote numbers
+ - _regular ocn_
+ - body objects
+ - glossary objects
+ - bibliography objects
+ - _special ocn_
+ - non substantive text (provide special numbers)
+ - blurb objects
+ - book index
+ - special (_exceptions_)
+ - endnotes
+ - unify object representations
+ - multiple markups for same object type given single representation
+ - extract object attributes
+ - unify inline markup on objects
+ - inline markup made easier to identify
+
+- simplify downstream parsing
+
+*** objects
+**** summary
+
+|-------+--------------+----------------------------+--------------------------+----------------+-----------------+----------------+------------|
+| | | identified by | object notes | attributes | inline | embedded | special |
+| | | | | | | appended | characters |
+|-------+--------------+----------------------------+--------------------------+----------------+-----------------+----------------+------------|
+| para | heading | level markers | | | - italics | - endnotes | |
+| | | at start of line | | | | - bibliography | |
+|-------+--------------+----------------------------+--------------------------+----------------+-----------------+----------------+------------|
+| | paragraph | delimited by two new lines | default object | - indent | - bold | - endnotes | |
+| | | | [discard leading & | - bullet | - italics | - bibliography | |
+| | | | newline whitespace] | | - underscore | | |
+| | | | | | - strikethrough | | |
+| | | | | | - superscript | | |
+| | | | | | - subscript | | |
+|-------+--------------+----------------------------+--------------------------+----------------+-----------------+----------------+------------|
+| block | | open and close tags | | | | | |
+|-------+--------------+----------------------------+--------------------------+----------------+-----------------+----------------+------------|
+| TODO | quote | | | - language? | | | |
+|-------+--------------+----------------------------+--------------------------+----------------+-----------------+----------------+------------|
+| TODO | group | | - inline markup applied | - language? | as paragraph | - endnotes | |
+| | | | - [discard leading & | | | - bibliography | |
+| | | | newline whitespace] | | | | |
+|-------+--------------+----------------------------+--------------------------+----------------+-----------------+----------------+------------|
+| TODO | block | | - inline markup applied | | as paragraph | - endnotes | |
+| | | | - whitespace indentation | | | - bibliography | |
+| | | | & newlines | | | | |
+|-------+--------------+----------------------------+--------------------------+----------------+-----------------+----------------+------------|
+| | poem / verse | open and close tags | verse is the object | | | - endnotes | |
+| | | | - inline markup applied | | | - bibliography | |
+| | | (for poem) | - whitespace indentation | | | | |
+| | | | & newlines | | | | |
+|-------+--------------+----------------------------+--------------------------+----------------+-----------------+----------------+------------|
+| | code | | - contents untouched | - syntax | | | |
+| | | | - whitespace indentation | - numbered | | | |
+| | | | & newlines | | | | |
+|-------+--------------+----------------------------+--------------------------+----------------+-----------------+----------------+------------|
+| | table | | | - column width | | | |
+| | | | | - heading row | | | |
+|-------+--------------+----------------------------+--------------------------+----------------+-----------------+----------------+------------|
+
+**** ocn
+
+|-------------+----------------------+-----------------------+--------------+---|
+| *objects | section / part | ocn described | how used* | |
+|-------------+----------------------+-----------------------+--------------+---|
+| regular ocn | | | | |
+|-------------+----------------------+-----------------------+--------------+---|
+| | body objects | seq. digit | anchor | |
+| | | | visible | |
+|-------------+----------------------+-----------------------+--------------+---|
+| | glossary objects | seq. digit | anchor | |
+| | | | not-visible | |
+| | | | (for search) | |
+|-------------+----------------------+-----------------------+--------------+---|
+| | bibliography objects | seq. digit | anchor | |
+| | | | not-visible | |
+| | | | (for search) | |
+|-------------+----------------------+-----------------------+--------------+---|
+| special ocn | | | | |
+|-------------+----------------------+-----------------------+--------------+---|
+| | non-substantive text | x char + seq. digit | anchor | |
+| | | | not-visible | |
+| | | | (for search) | |
+|-------------+----------------------+-----------------------+--------------+---|
+| | book index | i char + seq. digit | anchor | |
+| | | | not-visible | |
+| | | | (for search) | |
+|-------------+----------------------+-----------------------+--------------+---|
+| exceptions | | | | |
+|-------------+----------------------+-----------------------+--------------+---|
+| | endnotes | ocn of parent object | anchor | |
+| | | + footnote seq. digit | visible | |
+|-------------+----------------------+-----------------------+--------------+---|
+
+** make config - _composite make_
+
+work on composite make a unification of make instructions for each document run
+
+extract instructions from all config files, unify the make instructions and
+provide the result as a single set of make instructions for each document parsed
+
+|----+---------------------------------+----------------------------------------+----------------+---+---|
+| | make instruction source | | | | |
+|----+---------------------------------+----------------------------------------+----------------+---+---|
+| 0. | unify the following as a single | take into account all the instructions | | | |
+| | set of make instructions | provided below, provide interface | | | |
+|----+---------------------------------+----------------------------------------+----------------+---+---|
+| 1. | config | local site specific | every document | | |
+|----+---------------------------------+----------------------------------------+----------------+---+---|
+| 2. | document_make | to be applied to all documents | every document | | |
+| | | (unless subsequently overridden) | | | |
+|----+---------------------------------+----------------------------------------+----------------+---+---|
+| 3. | document header make | make instructions contained | per document | | |
+| | | in document header | | | |
+|----+---------------------------------+----------------------------------------+----------------+---+---|
+| 4. | command line instruction | make instruction passed | every document | | |
+|----+---------------------------------+----------------------------------------+----------------+---+---|
+
+- local, site specific (site local instructions such as the site's url, cgi
+ location etc.)
+- general, document_make config file (to be applied to all documents unless
+ overridden by document or command line instruction)
+- each document header, make (the document header contains metadata and may
+ include make instructions for that document)
+ - make
+ - meta
+- command line instruction, make (some make instructions may be passed through
+ the command line)
diff --git a/src/sdp/ao/composite_make.d b/src/sdp/meta/composite_make.d
index c9df4a8..dc28206 100644
--- a/src/sdp/ao/composite_make.d
+++ b/src/sdp/meta/composite_make.d
@@ -2,9 +2,9 @@
output hub<BR>
check & generate output types requested
+/
-module sdp.ao.composite_make;
+module sdp.meta.composite_make;
template compositeMkCnf() {
- import sdp.ao;
+ import sdp.meta;
import std.array;
mixin SiSUrgxInit;
string[] _substitutions;
@@ -73,7 +73,7 @@ template compositeMkCnf() {
check & generate output types requested
+/
template compositeMkCnfAA() {
- import sdp.ao;
+ import sdp.meta;
import std.array;
mixin SiSUrgxInit;
string[] _substitutions;
diff --git a/src/sdp/ao/conf_make_meta.d b/src/sdp/meta/conf_make_meta.d
index 1d7d86d..5beeae2 100644
--- a/src/sdp/ao/conf_make_meta.d
+++ b/src/sdp/meta/conf_make_meta.d
@@ -8,7 +8,7 @@
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;
+module sdp.meta.conf_make_meta;
template docHeaderMakeAndMetaTupExtractAndConvertToAA() {
import
std.exception,
@@ -20,9 +20,9 @@ template docHeaderMakeAndMetaTupExtractAndConvertToAA() {
std.conv : to;
import sdlang;
import
- sdp.ao.conf_make_meta_native,
- sdp.ao.conf_make_meta_sdlang,
- sdp.ao.rgx;
+ sdp.meta.conf_make_meta_native,
+ sdp.meta.conf_make_meta_sdlang,
+ sdp.meta.rgx;
mixin SiSUrgxInit;
mixin SiSUheaderExtractNative;
mixin SiSUextractSDLang;
diff --git a/src/sdp/ao/conf_make_meta_native.d b/src/sdp/meta/conf_make_meta_native.d
index aae0b4d..fc7912f 100644
--- a/src/sdp/ao/conf_make_meta_native.d
+++ b/src/sdp/meta/conf_make_meta_native.d
@@ -2,7 +2,7 @@
native headers using<br>@title:<BR>:subtitle:<BR>type tags<BR>
extract native/orig header return associative array
+/
-module sdp.ao.conf_make_meta_native;
+module sdp.meta.conf_make_meta_native;
template SiSUheaderExtractNative() {
import
std.exception,
@@ -14,8 +14,8 @@ template SiSUheaderExtractNative() {
std.utf,
std.conv : to;
import
- sdp.ao.defaults,
- sdp.ao.rgx;
+ sdp.meta.defaults,
+ sdp.meta.rgx;
struct HeaderDocMetadataAndMakeNativeToAA {
mixin SiSUregisters;
mixin SiSUrgxInitFlags;
diff --git a/src/sdp/ao/conf_make_meta_sdlang.d b/src/sdp/meta/conf_make_meta_sdlang.d
index f9fb17d..f4af643 100644
--- a/src/sdp/ao/conf_make_meta_sdlang.d
+++ b/src/sdp/meta/conf_make_meta_sdlang.d
@@ -2,7 +2,7 @@
sdlang headers<BR>
extract sdlang header return sdlang
+/
-module sdp.ao.conf_make_meta_sdlang;
+module sdp.meta.conf_make_meta_sdlang;
template SiSUextractSDLang() {
import
std.exception,
@@ -14,8 +14,8 @@ template SiSUextractSDLang() {
std.utf,
std.conv : to;
import
- sdp.ao.defaults,
- sdp.ao.rgx;
+ sdp.meta.defaults,
+ sdp.meta.rgx;
struct extractSDL {
mixin SiSUregisters;
mixin SiSUrgxInit;
diff --git a/src/sdp/ao/defaults.d b/src/sdp/meta/defaults.d
index caee701..fb95e3a 100644
--- a/src/sdp/ao/defaults.d
+++ b/src/sdp/meta/defaults.d
@@ -1,7 +1,7 @@
/++
default settings
+/
-module sdp.ao.defaults;
+module sdp.meta.defaults;
template SiSUregisters() {
import
std.algorithm,
diff --git a/src/sdp/ao/doc_debugs.d b/src/sdp/meta/doc_debugs.d
index 87a64f4..6d94b05 100644
--- a/src/sdp/ao/doc_debugs.d
+++ b/src/sdp/meta/doc_debugs.d
@@ -1,11 +1,11 @@
/++
output debugs
+/
-module sdp.ao.doc_debugs;
+module sdp.meta.doc_debugs;
template SiSUdebugs() {
import
- sdp.ao.defaults,
- sdp.ao.rgx;
+ sdp.meta.defaults,
+ sdp.meta.rgx;
import
std.algorithm,
std.array,
diff --git a/src/sdp/ao/abstraction.d b/src/sdp/meta/metadoc.d
index b25f354..4174b67 100644
--- a/src/sdp/ao/abstraction.d
+++ b/src/sdp/meta/metadoc.d
@@ -1,22 +1,22 @@
-module sdp.ao.abstraction;
+module sdp.meta.metadoc;
template SiSUabstraction() {
/+ sdp: sisu document parser, see http://sisudoc.org +/
- import sdp.ao;
+ import sdp.meta;
import
std.getopt,
std.process;
import
- sdp.ao.abstraction_summary,
- sdp.ao.abstract_doc_source,
- sdp.ao.composite_make,
- sdp.ao.conf_make_meta,
- // sdp.ao.conf_make_meta_native,
- sdp.ao.conf_make_meta_sdlang,
- sdp.ao.defaults,
- sdp.ao.doc_debugs,
- sdp.ao.read_config_files,
- sdp.ao.read_source_files,
- sdp.ao.rgx,
+ sdp.meta.metadoc_summary,
+ sdp.meta.metadoc_from_src,
+ sdp.meta.composite_make,
+ sdp.meta.conf_make_meta,
+ // sdp.meta.conf_make_meta_native,
+ sdp.meta.conf_make_meta_sdlang,
+ sdp.meta.defaults,
+ sdp.meta.doc_debugs,
+ sdp.meta.read_config_files,
+ sdp.meta.read_source_files,
+ sdp.meta.rgx,
sdp.output.hub,
sdp.output.paths_source;
mixin SiSUrgxInit;
diff --git a/src/sdp/ao/abstract_doc_source.d b/src/sdp/meta/metadoc_from_src.d
index f935df3..ab7f883 100644
--- a/src/sdp/ao/abstract_doc_source.d
+++ b/src/sdp/meta/metadoc_from_src.d
@@ -1,12 +1,12 @@
/++
document abstraction:
abstraction of sisu markup for downstream processing
- ao_abstract_doc_source.d
+ meta_metadoc_from_src.d
+/
-module sdp.ao.abstract_doc_source;
+module sdp.meta.metadoc_from_src;
template SiSUdocAbstraction() {
/+ ↓ abstraction imports +/
- import sdp.ao;
+ import sdp.meta;
import
std.algorithm,
std.container,
@@ -14,9 +14,9 @@ template SiSUdocAbstraction() {
std.json,
std.path;
import
- sdp.ao.defaults,
- sdp.ao.object_setter,
- sdp.ao.rgx;
+ sdp.meta.defaults,
+ sdp.meta.object_setter,
+ sdp.meta.rgx;
/+ ↓ abstraction mixins +/
mixin ObjectSetter;
mixin InternalMarkup;
@@ -74,59 +74,64 @@ template SiSUdocAbstraction() {
int[] dom_collapsed = [ 0, 0, 0, 0, 0, 0, 0, 0, 0,];
int[] dom_collapsed_buffer = [ 0, 0, 0, 0, 0, 0, 0, 0, 0,];
enum DomTags { none, open, close, close_and_open, open_still, }
- void heading_ancestors(O)(
- auto return ref O obj,
- return ref string[] lv_ancestors,
+ auto obj_heading_ancestors(O)(
+ O obj,
+ string[] lv_ancestors_txt,
) {
switch (obj.heading_lev_markup) {
case 0:
- lv_ancestors[0] = obj.text.to!string;
+ lv_ancestors_txt[0] = obj.text.to!string;
foreach(k; 1..8) {
- lv_ancestors[k] = "";
+ lv_ancestors_txt[k] = "";
}
goto default;
case 1:
- lv_ancestors[1] = obj.text.to!string;
+ lv_ancestors_txt[1] = obj.text.to!string;
foreach(k; 2..8) {
- lv_ancestors[k] = "";
+ lv_ancestors_txt[k] = "";
}
goto default;
case 2:
- lv_ancestors[2] = obj.text.to!string;
+ lv_ancestors_txt[2] = obj.text.to!string;
foreach(k; 3..8) {
- lv_ancestors[k] = "";
+ lv_ancestors_txt[k] = "";
}
goto default;
case 3:
- lv_ancestors[3] = obj.text.to!string;
+ lv_ancestors_txt[3] = obj.text.to!string;
foreach(k; 4..8) {
- lv_ancestors[k] = "";
+ lv_ancestors_txt[k] = "";
}
goto default;
case 4:
- lv_ancestors[4] = obj.text.to!string;
+ lv_ancestors_txt[4] = obj.text.to!string;
foreach(k; 5..8) {
- lv_ancestors[k] = "";
+ lv_ancestors_txt[k] = "";
}
goto default;
case 5:
- lv_ancestors[5] = obj.text.to!string;
+ lv_ancestors_txt[5] = obj.text.to!string;
foreach(k; 6..8) {
- lv_ancestors[k] = "";
+ lv_ancestors_txt[k] = "";
}
goto default;
case 6:
- lv_ancestors[6] = obj.text.to!string;
- lv_ancestors[7] = "";
+ lv_ancestors_txt[6] = obj.text.to!string;
+ lv_ancestors_txt[7] = "";
goto default;
case 7:
- lv_ancestors[7] = obj.text.to!string;
+ lv_ancestors_txt[7] = obj.text.to!string;
goto default;
default:
- obj.heading_ancestors_text = lv_ancestors.dup;
+ obj.heading_ancestors_text = lv_ancestors_txt.dup;
}
+ return obj;
}
- auto dom_set_markup_tags(int[] dom, int lev) {
+ auto obj_dom_set_markup_tags(O)(
+ O obj,
+ int[] dom,
+ int lev
+ ) {
foreach (i; 0 .. 8) {
if (i < lev) {
if (dom[i] == DomTags.open
@@ -163,9 +168,14 @@ template SiSUdocAbstraction() {
debug(dom_magic_numbers) {
writeln("marked up: ", lev, ": ", dom);
}
- return dom;
+ obj.dom_markedup = dom.dup;
+ return obj;
}
- auto dom_set_collapsed_tags(int[] dom, int lev) {
+ auto obj_dom_set_collapsed_tags(O)(
+ O obj,
+ int[] dom,
+ int lev
+ ) {
foreach (i; 0 .. 8) {
if (i < lev) {
if (dom[i] == DomTags.open
@@ -202,7 +212,8 @@ template SiSUdocAbstraction() {
debug(dom_magic_numbers) {
writeln("collapsed: ", lev, ": ", dom);
}
- return dom;
+ obj.dom_collapsed = dom.dup;
+ return obj;
}
int ocn_emit(int ocn_status_flag) {
return object_citation_number.ocn_emitter(ocn_status_flag);
@@ -260,7 +271,7 @@ template SiSUdocAbstraction() {
"start" : "",
"end" : ""
];
- string[] lv_ancestors = [ "", "", "", "", "", "", "", "", ];
+ string[] lv_ancestors_txt = [ "", "", "", "", "", "", "", "", ];
int[string] lv = [
"lv" : State.off,
"h0" : State.off,
@@ -322,6 +333,8 @@ template SiSUdocAbstraction() {
comp_obj_heading_.parent_lev_markup = 0;
comp_obj_heading_.ptr_html_segnames = html_segnames_ptr;
comp_obj_heading_.anchor_tags = ["toc"];
+ comp_obj_heading_.dom_markedup = [ 1, 1, 0, 0, 1, 0, 0, 0];
+ comp_obj_heading_.dom_collapsed = [ 1, 1, 1, 0, 0, 0, 0, 0];
auto toc_head = comp_obj_heading_;
html_segnames_ptr_cntr++;
the_table_of_contents_section = [
@@ -430,6 +443,8 @@ template SiSUdocAbstraction() {
comp_obj_heading_.heading_lev_collapsed = 1;
comp_obj_heading_.parent_ocn = 1;
comp_obj_heading_.parent_lev_markup = 0;
+ comp_obj_heading_.dom_markedup = [ 1, 1, 0, 0, 0, 0, 0, 0];
+ comp_obj_heading_.dom_collapsed = [ 1, 1, 0, 0, 0, 0, 0, 0];
the_glossary_section ~= comp_obj_heading_;
comp_obj_heading_ = comp_obj_heading_.init;
comp_obj_heading_.use = "backmatter";
@@ -444,6 +459,8 @@ template SiSUdocAbstraction() {
comp_obj_heading_.heading_lev_collapsed = 2;
comp_obj_heading_.parent_ocn = 1;
comp_obj_heading_.parent_lev_markup = 0;
+ comp_obj_heading_.dom_markedup = [ 1, 1, 0, 0, 1, 0, 0, 0];
+ comp_obj_heading_.dom_collapsed = [ 1, 1, 1, 0, 0, 0, 0, 0];
comp_obj_heading_.anchor_tags = ["glossary"];
the_glossary_section ~= comp_obj_heading_;
} else {
@@ -499,6 +516,8 @@ template SiSUdocAbstraction() {
comp_obj_heading_.heading_lev_collapsed = 1;
comp_obj_heading_.parent_ocn = 1;
comp_obj_heading_.parent_lev_markup = 0;
+ comp_obj_heading_.dom_markedup = [ 1, 1, 0, 0, 0, 0, 0, 0];
+ comp_obj_heading_.dom_collapsed = [ 1, 1, 0, 0, 0, 0, 0, 0];
the_blurb_section ~= comp_obj_heading_;
comp_obj_heading_ = comp_obj_heading_.init;
comp_obj_heading_.use = "backmatter";
@@ -514,6 +533,8 @@ template SiSUdocAbstraction() {
comp_obj_heading_.parent_ocn = 1;
comp_obj_heading_.parent_lev_markup = 0;
comp_obj_heading_.anchor_tags = ["blurb"];
+ comp_obj_heading_.dom_markedup = [ 1, 1, 0, 0, 1, 0, 0, 0];
+ comp_obj_heading_.dom_collapsed = [ 1, 1, 1, 0, 0, 0, 0, 0];
the_blurb_section ~= comp_obj_heading_;
} else if (line.matchFirst(rgx.heading)
&& (opt_action["backmatter"] && opt_action["section_blurb"])) {
@@ -790,7 +811,7 @@ template SiSUdocAbstraction() {
obj_cite_number, // int
cntr, // int
heading_ptr, // int
- lv_ancestors, // string[]
+ lv_ancestors_txt, // string[]
an_object["is"], // string
html_segnames_ptr, // int
substantive_object_and_anchor_tags_tuple[sObj.notes_reg],
@@ -1288,19 +1309,21 @@ template SiSUdocAbstraction() {
if (obj.heading_lev_markup <= 4) {
segnames_0_4 ~= obj.segment_anchor_tag;
}
+ /+ dom structure (marked up & collapsed) +/
if ((opt_action["html"])
|| (opt_action["html-scroll"])
|| (opt_action["html-seg"])
- || (opt_action["epub"])) {
- obj.dom_markedup =
- dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed =
- dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ || (opt_action["epub"])
+ || (opt_action["sqlite"])
+ || (opt_action["postgresql"])) {
+ obj = obj_dom_set_markup_tags(obj, dom_markedup, obj.heading_lev_markup);
+ obj = obj_dom_set_collapsed_tags(obj, dom_collapsed, obj.heading_lev_collapsed);
}
- heading_ancestors(obj, lv_ancestors);
+ obj = obj_heading_ancestors(obj, lv_ancestors_txt);
}
}
if (the_table_of_contents_section["scroll"].length > 1) {
+ /+ scroll +/
dom_markedup_buffer = dom_markedup.dup;
dom_collapsed_buffer = dom_collapsed.dup;
foreach (ref obj; the_table_of_contents_section["scroll"]) {
@@ -1312,18 +1335,20 @@ template SiSUdocAbstraction() {
assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);
}
}
+ /+ dom structure (marked up & collapsed) +/
if ((opt_action["html"])
|| (opt_action["html-scroll"])
|| (opt_action["html-seg"])
- || (opt_action["epub"])) {
- obj.dom_markedup =
- dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed =
- dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ || (opt_action["epub"])
+ || (opt_action["sqlite"])
+ || (opt_action["postgresql"])) {
+ obj = obj_dom_set_markup_tags(obj, dom_markedup, obj.heading_lev_markup);
+ obj = obj_dom_set_collapsed_tags(obj, dom_collapsed, obj.heading_lev_collapsed);
}
- heading_ancestors(obj, lv_ancestors);
+ obj = obj_heading_ancestors(obj, lv_ancestors_txt);
}
}
+ /+ seg +/
dom_markedup = dom_markedup_buffer.dup;
dom_collapsed = dom_collapsed_buffer.dup;
foreach (ref obj; the_table_of_contents_section["seg"]) {
@@ -1342,12 +1367,10 @@ template SiSUdocAbstraction() {
|| (opt_action["html-scroll"])
|| (opt_action["html-seg"])
|| (opt_action["epub"])) {
- obj.dom_markedup =
- dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed =
- dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ obj = obj_dom_set_markup_tags(obj, dom_markedup, obj.heading_lev_markup);
+ obj = obj_dom_set_collapsed_tags(obj, dom_collapsed, obj.heading_lev_collapsed);
}
- heading_ancestors(obj, lv_ancestors);
+ obj = obj_heading_ancestors(obj, lv_ancestors_txt);
}
}
}
@@ -1369,16 +1392,17 @@ template SiSUdocAbstraction() {
assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);
}
}
+ /+ dom structure (marked up & collapsed) +/
if ((opt_action["html"])
|| (opt_action["html-scroll"])
|| (opt_action["html-seg"])
- || (opt_action["epub"])) {
- obj.dom_markedup =
- dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed =
- dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ || (opt_action["epub"])
+ || (opt_action["sqlite"])
+ || (opt_action["postgresql"])) {
+ obj = obj_dom_set_markup_tags(obj, dom_markedup, obj.heading_lev_markup);
+ obj = obj_dom_set_collapsed_tags(obj, dom_collapsed, obj.heading_lev_collapsed);
}
- heading_ancestors(obj, lv_ancestors);
+ obj = obj_heading_ancestors(obj, lv_ancestors_txt);
} else if (obj.is_a == "para") {
_images ~= extract_images(obj.text);
}
@@ -1406,16 +1430,17 @@ template SiSUdocAbstraction() {
assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);
}
}
+ /+ dom structure (marked up & collapsed) +/
if ((opt_action["html"])
|| (opt_action["html-scroll"])
|| (opt_action["html-seg"])
- || (opt_action["epub"])) {
- obj.dom_markedup =
- dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed =
- dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ || (opt_action["epub"])
+ || (opt_action["sqlite"])
+ || (opt_action["postgresql"])) {
+ obj = obj_dom_set_markup_tags(obj, dom_markedup, obj.heading_lev_markup);
+ obj = obj_dom_set_collapsed_tags(obj, dom_collapsed, obj.heading_lev_collapsed);
}
- heading_ancestors(obj, lv_ancestors);
+ obj = obj_heading_ancestors(obj, lv_ancestors_txt);
}
}
}
@@ -1436,16 +1461,17 @@ template SiSUdocAbstraction() {
assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);
}
}
+ /+ dom structure (marked up & collapsed) +/
if ((opt_action["html"])
|| (opt_action["html-scroll"])
|| (opt_action["html-seg"])
- || (opt_action["epub"])) {
- obj.dom_markedup =
- dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed =
- dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ || (opt_action["epub"])
+ || (opt_action["sqlite"])
+ || (opt_action["postgresql"])) {
+ obj = obj_dom_set_markup_tags(obj, dom_markedup, obj.heading_lev_markup);
+ obj = obj_dom_set_collapsed_tags(obj, dom_collapsed, obj.heading_lev_collapsed);
}
- heading_ancestors(obj, lv_ancestors);
+ obj = obj_heading_ancestors(obj, lv_ancestors_txt);
}
}
}
@@ -1466,21 +1492,23 @@ template SiSUdocAbstraction() {
assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);
}
}
+ /+ dom structure (marked up & collapsed) +/
if ((opt_action["html"])
|| (opt_action["html-scroll"])
|| (opt_action["html-seg"])
- || (opt_action["epub"])) {
- obj.dom_markedup =
- dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed =
- dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ || (opt_action["epub"])
+ || (opt_action["sqlite"])
+ || (opt_action["postgresql"])) {
+ obj = obj_dom_set_markup_tags(obj, dom_markedup, obj.heading_lev_markup);
+ obj = obj_dom_set_collapsed_tags(obj, dom_collapsed, obj.heading_lev_collapsed);
}
- heading_ancestors(obj, lv_ancestors);
+ obj = obj_heading_ancestors(obj, lv_ancestors_txt);
}
}
}
/+ optional only one 1~ level +/
if (the_bookindex_section["scroll"].length > 1) {
+ /+ scroll +/
dom_markedup_buffer = dom_markedup.dup;
dom_collapsed_buffer = dom_collapsed.dup;
foreach (ref obj; the_bookindex_section["scroll"]) {
@@ -1497,18 +1525,20 @@ template SiSUdocAbstraction() {
assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);
}
}
+ /+ dom structure (marked up & collapsed) +/
if ((opt_action["html"])
|| (opt_action["html-scroll"])
|| (opt_action["html-seg"])
- || (opt_action["epub"])) {
- obj.dom_markedup =
- dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed =
- dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ || (opt_action["epub"])
+ || (opt_action["sqlite"])
+ || (opt_action["postgresql"])) {
+ obj = obj_dom_set_markup_tags(obj, dom_markedup, obj.heading_lev_markup);
+ obj = obj_dom_set_collapsed_tags(obj, dom_collapsed, obj.heading_lev_collapsed);
}
- heading_ancestors(obj, lv_ancestors);
+ obj = obj_heading_ancestors(obj, lv_ancestors_txt);
}
}
+ /+ seg +/
dom_markedup = dom_markedup_buffer.dup;
dom_collapsed = dom_collapsed_buffer.dup;
foreach (ref obj; the_bookindex_section["seg"]) {
@@ -1526,16 +1556,17 @@ template SiSUdocAbstraction() {
assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);
}
}
+ /+ dom structure (marked up & collapsed) +/
if ((opt_action["html"])
|| (opt_action["html-scroll"])
|| (opt_action["html-seg"])
- || (opt_action["epub"])) {
- obj.dom_markedup =
- dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed =
- dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ || (opt_action["epub"])
+ || (opt_action["sqlite"])
+ || (opt_action["postgresql"])) {
+ obj = obj_dom_set_markup_tags(obj, dom_markedup, obj.heading_lev_markup);
+ obj = obj_dom_set_collapsed_tags(obj, dom_collapsed, obj.heading_lev_collapsed);
}
- heading_ancestors(obj, lv_ancestors);
+ obj = obj_heading_ancestors(obj, lv_ancestors_txt);
}
}
}
@@ -1556,42 +1587,47 @@ template SiSUdocAbstraction() {
assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);
}
}
+ /+ dom structure (marked up & collapsed) +/
if ((opt_action["html"])
|| (opt_action["html-scroll"])
|| (opt_action["html-seg"])
- || (opt_action["epub"])) {
- obj.dom_markedup =
- dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed =
- dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ || (opt_action["epub"])
+ || (opt_action["sqlite"])
+ || (opt_action["postgresql"])) {
+ obj = obj_dom_set_markup_tags(obj, dom_markedup, obj.heading_lev_markup);
+ obj = obj_dom_set_collapsed_tags(obj, dom_collapsed, obj.heading_lev_collapsed);
}
- heading_ancestors(obj, lv_ancestors);
+ obj = obj_heading_ancestors(obj, lv_ancestors_txt);
}
}
+ }
/+ TODO
- note create/insert heading object sole purpose eof close all open tags
sort out:
- obj.dom_markedup = dom_markedup;
- obj.dom_collapsed = dom_collapsed;
+/
- dom_markedup = dom_set_markup_tags(dom_markedup, 0);
- dom_collapsed = dom_set_collapsed_tags(dom_collapsed, 0);
- comp_obj_heading_ = comp_obj_heading_.init;
- comp_obj_heading_.use = "empty";
- comp_obj_heading_.is_of = "para";
- comp_obj_heading_.is_a = "heading";
- comp_obj_heading_.ocn = 0;
- comp_obj_para.obj_cite_number = "";
- comp_obj_heading_.segment_anchor_tag = "";
- comp_obj_heading_.marked_up_level = "";
- comp_obj_heading_.heading_lev_markup = 9;
- comp_obj_heading_.heading_lev_collapsed = 9;
- comp_obj_heading_.parent_ocn = 0;
- comp_obj_heading_.parent_lev_markup = 0;
- comp_obj_heading_.dom_markedup = dom_markedup.dup;
- comp_obj_heading_.dom_collapsed = dom_collapsed.dup;
- the_dom_tail_section ~= comp_obj_heading_;
- }
+ comp_obj_heading_ = comp_obj_heading_.init;
+ comp_obj_heading_.use = "empty";
+ comp_obj_heading_.is_of = "para";
+ comp_obj_heading_.is_a = "heading";
+ comp_obj_heading_.ocn = 0;
+ comp_obj_para.obj_cite_number = "";
+ comp_obj_heading_.segment_anchor_tag = "";
+ comp_obj_heading_.marked_up_level = "";
+ comp_obj_heading_.heading_lev_markup = 9;
+ comp_obj_heading_.heading_lev_collapsed = 9;
+ comp_obj_heading_.parent_ocn = 0;
+ comp_obj_heading_.parent_lev_markup = 0;
+ comp_obj_heading_.dom_markedup = dom_markedup.dup;
+ comp_obj_heading_.dom_collapsed = dom_collapsed.dup;
+ obj_dom_set_markup_tags(comp_obj_heading_, dom_markedup, 0);
+ obj_dom_set_collapsed_tags(comp_obj_heading_, dom_collapsed, 0);
+ obj_heading_ancestors(comp_obj_heading_, lv_ancestors_txt);
+ comp_obj_heading_ = obj_dom_set_markup_tags(comp_obj_heading_, dom_markedup, 0);
+ comp_obj_heading_ = obj_dom_set_collapsed_tags(comp_obj_heading_, dom_collapsed, 0);
+ comp_obj_heading_ = obj_heading_ancestors(comp_obj_heading_, lv_ancestors_txt);
+ the_dom_tail_section ~= comp_obj_heading_;
auto document_the = [
"head": the_document_head_section,
"toc_seg": the_table_of_contents_section["seg"],
@@ -1610,7 +1646,8 @@ template SiSUdocAbstraction() {
];
string[][string] document_section_keys_sequenced = [
"seg": ["head", "toc_seg", "body",],
- "scroll": ["head", "toc_scroll", "body",]
+ "scroll": ["head", "toc_scroll", "body",],
+ "sql": ["head", "body",]
];
if (document_the["endnotes"].length > 1) {
document_section_keys_sequenced["seg"] ~= "endnotes";
@@ -1619,13 +1656,16 @@ template SiSUdocAbstraction() {
if (document_the["glossary"].length > 1) {
document_section_keys_sequenced["seg"] ~= "glossary";
document_section_keys_sequenced["scroll"] ~= "glossary";
+ document_section_keys_sequenced["sql"] ~= "glossary";
}
if (document_the["bibliography"].length > 1) {
document_section_keys_sequenced["seg"] ~= "bibliography";
document_section_keys_sequenced["scroll"] ~= "bibliography";
+ document_section_keys_sequenced["sql"] ~= "bibliography";
}
if (document_the["bookindex_seg"].length > 1) {
document_section_keys_sequenced["seg"] ~= "bookindex_seg";
+ document_section_keys_sequenced["sql"] ~= "bookindex_seg";
}
if (document_the["bookindex_scroll"].length > 1) {
document_section_keys_sequenced["scroll"] ~= "bookindex_scroll";
@@ -1633,6 +1673,7 @@ template SiSUdocAbstraction() {
if (document_the["blurb"].length > 1) {
document_section_keys_sequenced["seg"] ~= "blurb";
document_section_keys_sequenced["scroll"] ~= "blurb";
+ document_section_keys_sequenced["sql"] ~= "blurb";
}
if ((opt_action["html"])
|| (opt_action["html-scroll"])
@@ -5142,7 +5183,7 @@ template SiSUdocAbstraction() {
N obj_cite_number_,
C cntr_,
P ptr_,
- LA lv_ancestors,
+ LA lv_ancestors_txt,
I is_,
PSn html_segnames_ptr,
fNr flag_notes_reg,
@@ -5159,7 +5200,7 @@ template SiSUdocAbstraction() {
static assert(is(typeof(obj_cite_number_) == int));
static assert(is(typeof(cntr_) == int));
static assert(is(typeof(ptr_) == int));
- static assert(is(typeof(lv_ancestors) == string[]));
+ static assert(is(typeof(lv_ancestors_txt) == string[]));
static assert(is(typeof(is_) == string));
static assert(is(typeof(html_segnames_ptr) == int));
}
@@ -5271,7 +5312,7 @@ template SiSUdocAbstraction() {
_comp_obj_heading_.heading_lev_collapsed = (!(lev_collapsed_number.empty) ? lev_collapsed_number.to!int : 0);
_comp_obj_heading_.parent_ocn = p_["obj_cite_number"];
_comp_obj_heading_.parent_lev_markup = p_["lev_markup_number"];
- _comp_obj_heading_.heading_ancestors_text = lv_ancestors;
+ _comp_obj_heading_.heading_ancestors_text = lv_ancestors_txt;
_comp_obj_heading_.ptr_doc_object = cntr_;
_comp_obj_heading_.ptr_html_segnames = ((lev_markup_number == "4") ? html_segnames_ptr : 0);
_comp_obj_heading_.ptr_heading = ptr_;
@@ -5540,6 +5581,9 @@ template docSectKeysSeq() {
auto scroll() {
return document_section_keys_sequenced["scroll"];
}
+ auto sql() {
+ return document_section_keys_sequenced["sql"];
+ }
}
return doc_sect_keys_seq();
}
diff --git a/src/sdp/ao/abstraction_summary.d b/src/sdp/meta/metadoc_summary.d
index 2b909c7..e2b85b8 100644
--- a/src/sdp/ao/abstraction_summary.d
+++ b/src/sdp/meta/metadoc_summary.d
@@ -1,12 +1,12 @@
-module sdp.ao.abstraction_summary;
+module sdp.meta.metadoc_summary;
template SiSUabstractionSummary() {
auto SiSUabstractionSummary(S,T)(
auto return ref const S doc_abstraction,
auto return ref T doc_matters,
) {
import
- sdp.ao.defaults,
- sdp.ao.rgx;
+ sdp.meta.defaults,
+ sdp.meta.rgx;
import
std.array,
std.exception,
diff --git a/src/sdp/ao/object_setter.d b/src/sdp/meta/object_setter.d
index b05ac98..385c3d2 100644
--- a/src/sdp/ao/object_setter.d
+++ b/src/sdp/meta/object_setter.d
@@ -1,9 +1,9 @@
/++
object setter:
setting of sisu objects for downstream processing
- ao_object_setter.d
+ meta_object_setter.d
+/
-module sdp.ao.object_setter;
+module sdp.meta.object_setter;
template ObjectSetter() {
/+ structs +/
struct HeadingAttrib {
@@ -48,6 +48,7 @@ template ObjectSetter() {
int heading_lev_collapsed = 9;
int[] dom_markedup = [ 0, 0, 0, 0, 0, 0, 0, 0,];
int[] dom_collapsed = [ 0, 0, 0, 0, 0, 0, 0, 0,];
+ int[] heading_ancestors = [ 0, 0, 0, 0, 0, 0, 0, 0,];
string[] heading_ancestors_text = [ "", "", "", "", "", "", "", "", ];
string[] lev4_subtoc = [];
int heading_array_ptr = 0;
diff --git a/src/sdp/ao/package.d b/src/sdp/meta/package.d
index 63b4f3e..fcc6b13 100644
--- a/src/sdp/ao/package.d
+++ b/src/sdp/meta/package.d
@@ -1,7 +1,7 @@
-module sdp.ao;
+module sdp.meta;
public import
- sdp.ao.defaults,
- sdp.ao.rgx;
+ sdp.meta.defaults,
+ sdp.meta.rgx;
/+ std +/
public import
std.array,
diff --git a/src/sdp/ao/read_config_files.d b/src/sdp/meta/read_config_files.d
index 8f525f3..2410316 100644
--- a/src/sdp/ao/read_config_files.d
+++ b/src/sdp/meta/read_config_files.d
@@ -1,12 +1,12 @@
/++
read configuration files<BR>
- read config files<BR>
- ao_config_files.d
+ meta_config_files.d
+/
-module sdp.ao.read_config_files;
+module sdp.meta.read_config_files;
template configIn() {
import
- sdp.ao,
+ sdp.meta,
std.file,
std.path;
final string configIn(C,E)(C conf_sdl, E env) {
@@ -49,7 +49,7 @@ template configIn() {
template ConfigSDLang() {
import sdlang;
import
- sdp.ao,
+ sdp.meta,
std.file,
std.path;
auto ConfigSDLang(string configuration, string conf_sdl_filename) {
@@ -68,7 +68,7 @@ template ConfigSDLang() {
+/
template configRead() {
import
- sdp.ao,
+ sdp.meta,
std.file,
std.path;
diff --git a/src/sdp/ao/read_source_files.d b/src/sdp/meta/read_source_files.d
index db20cfd..60f0777 100644
--- a/src/sdp/ao/read_source_files.d
+++ b/src/sdp/meta/read_source_files.d
@@ -1,14 +1,14 @@
/++
- module ao_read_source_files;<BR>
+ module meta_read_source_files;<BR>
- open markup files<BR>
- if master file scan for addional files to import/insert
+/
-module sdp.ao.read_source_files;
+module sdp.meta.read_source_files;
template SiSUrawMarkupContent() {
import
- sdp.ao.rgx;
+ sdp.meta.rgx;
import
- sdp.ao,
+ sdp.meta,
std.file,
std.path;
mixin SiSUrgxInit;
@@ -128,7 +128,7 @@ template SiSUrawMarkupContent() {
}
}
struct Inserts {
- import sdp.ao.defaults;
+ import sdp.meta.defaults;
auto scan_subdoc_source(
char[][] markup_sourcefile_insert_content,
string fn_src
diff --git a/src/sdp/ao/rgx.d b/src/sdp/meta/rgx.d
index 595087d..854e9cc 100644
--- a/src/sdp/ao/rgx.d
+++ b/src/sdp/meta/rgx.d
@@ -1,9 +1,9 @@
/++
regex: regular expressions used in sisu document parser
+/
-module sdp.ao.rgx;
+module sdp.meta.rgx;
template SiSUrgxInit() {
- import sdp.ao.defaults;
+ import sdp.meta.defaults;
struct Rgx {
/+ misc +/
static true_dollar = ctRegex!(`\$`, "gm");
diff --git a/src/sdp/output/paths_output.d b/src/sdp/output/paths_output.d
index 3edcb67..bf88b54 100644
--- a/src/sdp/output/paths_output.d
+++ b/src/sdp/output/paths_output.d
@@ -6,7 +6,7 @@ import std.array,
std.path,
std.regex,
std.stdio;
-import sdp.ao.rgx;
+import sdp.meta.rgx;
template SiSUpathsSisupod() {
mixin SiSUrgxInit;
auto rgx = Rgx();
diff --git a/src/sdp/output/paths_source.d b/src/sdp/output/paths_source.d
index 80e2c1a..d7b326f 100644
--- a/src/sdp/output/paths_source.d
+++ b/src/sdp/output/paths_source.d
@@ -1,14 +1,14 @@
/++
read configuration files<BR>
- read config files<BR>
- ao_config_files.d
+ meta_config_files.d
+/
module sdp.output.paths_source;
import std.array,
std.path,
std.regex,
std.stdio;
-import sdp.ao.rgx;
+import sdp.meta.rgx;
template SiSUpathsSRC() {
mixin SiSUrgxInit;
auto rgx = Rgx();
diff --git a/src/sdp/sdp.d b/src/sdp/sdp.d
index 0b90096..1abf462 100755
--- a/src/sdp/sdp.d
+++ b/src/sdp/sdp.d
@@ -7,24 +7,24 @@
module sdp.sisu_document_parser;
import
sdp.conf.compile_time_info,
- sdp.ao.abstraction;
+ sdp.meta.metadoc;
/+ sdp: sisu document parser, see http://sisudoc.org +/
-import sdp.ao;
+import sdp.meta;
import
std.getopt,
std.process;
import
- sdp.ao.abstraction_summary,
- sdp.ao.abstract_doc_source,
- sdp.ao.composite_make,
- sdp.ao.conf_make_meta,
- // sdp.ao.conf_make_meta_native,
- sdp.ao.conf_make_meta_sdlang,
- sdp.ao.defaults,
- sdp.ao.doc_debugs,
- sdp.ao.read_config_files,
- sdp.ao.read_source_files,
- sdp.ao.rgx,
+ sdp.meta.metadoc_summary,
+ sdp.meta.metadoc_from_src,
+ sdp.meta.composite_make,
+ sdp.meta.conf_make_meta,
+ // sdp.meta.conf_make_meta_native,
+ sdp.meta.conf_make_meta_sdlang,
+ sdp.meta.defaults,
+ sdp.meta.doc_debugs,
+ sdp.meta.read_config_files,
+ sdp.meta.read_source_files,
+ sdp.meta.rgx,
sdp.output.hub,
sdp.output.paths_source;
mixin(import("version.txt"));
diff --git a/views/version.txt b/views/version.txt
index 44ecfb4..07683c2 100644
--- a/views/version.txt
+++ b/views/version.txt
@@ -4,4 +4,4 @@ struct Version {
int minor;
int patch;
}
-enum ver = Version(0, 17, 0);
+enum ver = Version(0, 18, 0);