aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--org/ao_doc_abstraction.org922
-rw-r--r--org/ao_read_source_files.org2
-rw-r--r--org/defaults.org66
-rw-r--r--org/output.org457
-rw-r--r--src/sdp/ao_abstract_doc_source.d621
-rw-r--r--src/sdp/ao_defaults.d62
-rw-r--r--src/sdp/ao_read_source_files.d2
-rw-r--r--src/sdp/ao_rgx.d2
-rw-r--r--src/sdp/output_html.d455
-rw-r--r--src/sdp/output_xhtmls.d2
10 files changed, 927 insertions, 1664 deletions
diff --git a/org/ao_doc_abstraction.org b/org/ao_doc_abstraction.org
index 0074e1c..2188e94 100644
--- a/org/ao_doc_abstraction.org
+++ b/org/ao_doc_abstraction.org
@@ -13,6 +13,79 @@
#+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
+** 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 :abstract:process:
Process markup document, create document abstraction.
@@ -39,7 +112,7 @@ template SiSUdocAbstraction() {
Opt opt_action_bool,
) {
auto rgx = Rgx();
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(markup_sourcefile_content) == char[][]));
static assert(is(typeof(dochead_make_aa) == string[string][string]));
static assert(is(typeof(dochead_meta_aa) == string[string][string]));
@@ -58,6 +131,7 @@ template SiSUdocAbstraction() {
} else if (!matchFirst(line, rgx.skip_from_regular_parse)) {
/+ object other than "code block" object
(includes regular text paragraph, headings & blocks other than code) +/
+ /+ heading, glossary, blurb, poem, group, block, quote, table +/
<<abs_in_loop_body_non_code_obj>>
} else {
/+ not within a block group +/
@@ -91,9 +165,9 @@ template SiSUdocAbstraction() {
<<abs_functions_block_code>>
<<abs_functions_block_biblio>>
// <<abs_functions_block_glossary>>
- <<abs_functions_block_poem>>
<<abs_functions_block_group>>
<<abs_functions_block_block>>
+ <<abs_functions_block_poem>>
<<abs_functions_block_quote>>
<<abs_functions_block_table>>
<<abs_functions_block_line_status_empty>>
@@ -135,7 +209,7 @@ template SiSUdocAbstraction() {
} /+ ← closed: template SiSUdocAbstraction +/
#+END_SRC
-** 1. _pre loop processing_ :pre:
+** 1. _pre loop processing_ :pre:
*** imports :imports:
[[./ao_defaults.org][ao_defaults]]
@@ -516,7 +590,7 @@ string[][string] lev4_subtoc;
string[] html_segnames=["toc"];
#+END_SRC
-** 2. _loop: process document body_ [+6] :loop:
+** 2. _loop: process document body_ [+6] :loop:
*** loop scope :scope:
#+name: abs_in_loop_body_00
@@ -558,7 +632,7 @@ if (!line.empty) {
#+END_SRC
*** [#A] separate _code blocks_ from _other markup text_ [+5]
-**** code blocks :block:code:
+**** _code blocks_ :block:code:
#+name: abs_in_loop_body_00_code_block
#+BEGIN_SRC d
@@ -567,9 +641,9 @@ _code_block_(line, an_object, type);
continue;
#+END_SRC
-**** non code objects (other blocks or regular text) [+4] :non_code:
+**** _non code objects_ (other blocks or regular text) [+4] :non_code:
***** in section (biblio, glossary, blurb) +(block group)+ [+1] :block:active:
-****** within section: biblio :biblio:
+****** in section: biblio :biblio:
#+name: abs_in_loop_body_non_code_obj
#+BEGIN_SRC d
@@ -592,7 +666,7 @@ if ((matchFirst(line, rgx.heading_biblio)
continue;
#+END_SRC
-****** within section: glossary :glossary:
+****** in section: glossary :glossary:
if there is a glossary section you need to:
- extract it
@@ -674,7 +748,7 @@ if there is a glossary section you need to:
continue;
#+END_SRC
-****** within section: blurb :blurb:
+****** in section: blurb :blurb:
if there is a blurb section you need to:
- extract it
@@ -772,17 +846,7 @@ if there is a blurb section you need to:
#+END_SRC
***** in blocks [+1] :block:active:
-****** within block: poem :poem:
-
-#+name: abs_in_loop_body_non_code_obj
-#+BEGIN_SRC d
-} else if (type["poem"] == TriState.on) {
- /+ within block object: poem +/
- _poem_block_(line, an_object, type, cntr, obj_cite_number_poem, dochead_make_aa);
- continue;
-#+END_SRC
-
-****** within block: group :group:
+****** in block: group :group:
#+name: abs_in_loop_body_non_code_obj
#+BEGIN_SRC d
@@ -793,7 +857,7 @@ if there is a blurb section you need to:
continue;
#+END_SRC
-****** within block: block :block:
+****** in block: block :block:
#+name: abs_in_loop_body_non_code_obj
#+BEGIN_SRC d
@@ -803,7 +867,17 @@ if there is a blurb section you need to:
continue;
#+END_SRC
-****** within block: quote :quote:
+****** in block: poem :poem:
+
+#+name: abs_in_loop_body_non_code_obj
+#+BEGIN_SRC d
+} else if (type["poem"] == TriState.on) {
+ /+ within block object: poem +/
+ _poem_block_(line, an_object, type, cntr, obj_cite_number_poem, dochead_make_aa);
+ continue;
+#+END_SRC
+
+****** in block: quote :quote:
#+name: abs_in_loop_body_non_code_obj
#+BEGIN_SRC d
@@ -813,7 +887,7 @@ if there is a blurb section you need to:
continue;
#+END_SRC
-****** within block: table :table:
+****** in block: table :table:
#+name: abs_in_loop_body_non_code_obj
#+BEGIN_SRC d
@@ -836,7 +910,7 @@ assert(
assertions_flag_types_block_status_none_or_closed(type);
#+END_SRC
-****** block open
+****** catch misc +block open+
#+name: abs_in_loop_body_open_block_obj
#+BEGIN_SRC d
@@ -1104,7 +1178,8 @@ if ((type["heading"] == State.on)
#+name: abs_in_loop_body_not_block_obj_line_empty
#+BEGIN_SRC d
-} else if ((type["para"] == State.on) && (line_occur["para"] > State.off)) {
+} else if ((type["para"] == State.on)
+&& (line_occur["para"] > State.off)) {
/+ paragraph object (current line empty) +/
obj_cite_number = ocn_emit(type["ocn_status"]);
an_object["bookindex_nugget"] =
@@ -1164,10 +1239,9 @@ if ((type["heading"] == State.on)
/+ unless (the_document_body_section.length == 0) ? +/
if (the_document_body_section.length > 0) {
if (((the_document_body_section[$-1].is_a == "para")
- || (the_document_body_section[$-1].is_a == "heading")
- || (the_document_body_section[$-1].is_a == "group"))
- && (the_document_body_section.length > previous_length)
-) {
+ || (the_document_body_section[$-1].is_a == "heading")
+ || (the_document_body_section[$-1].is_a == "group"))
+ && (the_document_body_section.length > previous_length)) {
if ((the_document_body_section[$-1].is_a == "heading")
&& (the_document_body_section[$-1].heading_lev_markup < 5)) {
type["biblio_section"] = State.off;
@@ -1191,6 +1265,8 @@ if (the_document_body_section.length > 0) {
#+END_SRC
** 3. _post main-loop processing_ :post:
+*** misc
+
/+
Backmatter:
- endnotes
@@ -1585,7 +1661,7 @@ the_document_head_section ~= the_document_body_section[0];
the_document_body_section=the_document_body_section[1..$];
#+END_SRC
-*** TODO minor loops :post:
+*** minor loops :post:
**** 1. loop: backmatter loop up to lev4: html_segnames, set backmatter pointers
could optimise by
@@ -1978,8 +2054,8 @@ if (the_blurb_section.length > 1) {
}
#+END_SRC
-** 4. _return document tuple_ :post:
-*** _the document_ :document:
+** 4. _return document tuple_ :post:
+*** _the document_ :document:
#+name: abs_post
#+BEGIN_SRC d
@@ -2097,7 +2173,7 @@ functions used in document abstraction
#+name: abs_functions_object_reset
#+BEGIN_SRC d
auto object_reset(O)(ref O an_object) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(an_object) == string[string]));
}
an_object.remove("body_nugget");
@@ -2117,7 +2193,7 @@ auto _common_reset_(L,O,T)(
return ref O an_object,
return ref T type
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line_occur) == int[string]));
static assert(is(typeof(an_object) == string[string]));
static assert(is(typeof(type) == int[string]));
@@ -2138,7 +2214,7 @@ void _check_ocn_status_(L,T)(
L line,
return ref T type
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(type) == int[string]));
}
@@ -2187,7 +2263,7 @@ void _check_ocn_status_(L,T)(
*** block :block:
**** block start (open) block :start:
-***** function open for block starts
+***** { block starts function
#+name: abs_functions_block
#+BEGIN_SRC d
@@ -2196,7 +2272,7 @@ void _start_block_(L,T,N)(
return ref T type,
N obj_cite_number_poem
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(type) == int[string]));
static assert(is(typeof(obj_cite_number_poem) == string[string]));
@@ -2274,8 +2350,8 @@ void _start_block_(L,T,N)(
line
);
}
- type["blocks"] = TriState.on;
- type["table"] = TriState.on;
+ type["blocks"] = TriState.on;
+ type["table"] = TriState.on;
type["curly_table"] = TriState.on;
#+END_SRC
@@ -2348,13 +2424,13 @@ void _start_block_(L,T,N)(
line
);
}
- type["blocks"] = TriState.on;
- type["table"] = TriState.on;
+ type["blocks"] = TriState.on;
+ type["table"] = TriState.on;
type["tic_table"] = TriState.on;
}
#+END_SRC
-***** function close for block starts
+***** }
#+name: abs_functions_block
#+BEGIN_SRC d
@@ -2362,7 +2438,7 @@ void _start_block_(L,T,N)(
#+END_SRC
**** block continue (an open block) :continue:
-***** code block (special status, deal with first) :code:
+***** _code block_ (special status, deal with first) :code:
#+name: abs_functions_block_code
#+BEGIN_SRC d
@@ -2371,7 +2447,7 @@ void _code_block_(L,O,T)(
return ref O an_object,
return ref T type
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(an_object) == string[string]));
static assert(is(typeof(type) == int[string]));
@@ -2415,7 +2491,7 @@ void _code_block_(L,O,T)(
#+name: abs_functions_block_biblio
#+BEGIN_SRC d
final string biblio_tag_map(A)(A abr) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(abr) == string));
}
auto btm = [
@@ -2443,7 +2519,7 @@ final string biblio_tag_map(A)(A abr) {
#+name: none
#+BEGIN_SRC d
final string biblio_tag_map_(A)(A abr) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(abr) == string));
}
string name;
@@ -2626,7 +2702,101 @@ void _biblio_block_(
}
#+END_SRC
-***** TODO poem block, verse objects :poem:verse:
+***** group block :group:
+
+#+name: abs_functions_block_group
+#+BEGIN_SRC d
+void _group_block_(L,O,T)(
+ return ref L line,
+ return ref O an_object,
+ return ref T type
+) {
+ debug(asserts) {
+ static assert(is(typeof(line) == char[]));
+ static assert(is(typeof(an_object) == string[string]));
+ static assert(is(typeof(type) == int[string]));
+ }
+ auto rgx = Rgx();
+ if (type["curly_group"] == State.on) {
+ if (matchFirst(line, rgx.block_curly_group_close)) {
+ debug(group) {
+ writeln(line);
+ }
+ type["blocks"] = TriState.closing;
+ type["group"] = TriState.closing;
+ type["curly_group"] = TriState.off;
+ } else {
+ debug(group) {
+ writeln(line);
+ }
+ an_object[an_object_key] ~= line ~= "\n"; // build group array (or string)
+ }
+ } else if (type["tic_group"] == TriState.on) {
+ if (matchFirst(line, rgx.block_tic_close)) {
+ debug(group) {
+ writeln(line);
+ }
+ type["blocks"] = TriState.closing;
+ type["group"] = TriState.closing;
+ type["tic_group"] = TriState.off;
+ } else {
+ debug(group) { // group
+ writeln(line);
+ }
+ an_object[an_object_key] ~= line ~= "\n"; // build group array (or string)
+ }
+ }
+}
+#+END_SRC
+
+***** block block :block:
+
+#+name: abs_functions_block_block
+#+BEGIN_SRC d
+void _block_block_(L,O,T)(
+ return ref L line,
+ return ref O an_object,
+ return ref T type
+) {
+ debug(asserts) {
+ static assert(is(typeof(line) == char[]));
+ static assert(is(typeof(an_object) == string[string]));
+ static assert(is(typeof(type) == int[string]));
+ }
+ auto rgx = Rgx();
+ if (type["curly_block"] == TriState.on) {
+ if (matchFirst(line, rgx.block_curly_block_close)) {
+ debug(block) { // block (curly) close
+ writeln(line);
+ }
+ type["blocks"] = TriState.closing;
+ type["block"] = TriState.closing;
+ type["curly_block"] = TriState.off;
+ } else {
+ debug(block) {
+ writeln(line);
+ }
+ an_object[an_object_key] ~= line ~= "\n"; // build block array (or string)
+ }
+ } else if (type["tic_block"] == TriState.on) {
+ if (matchFirst(line, rgx.block_tic_close)) {
+ debug(block) {
+ writeln(line);
+ }
+ type["blocks"] = TriState.closing;
+ type["block"] = TriState.closing;
+ type["tic_block"] = TriState.off;
+ } else {
+ debug(block) {
+ writeln(line);
+ }
+ an_object[an_object_key] ~= line ~= "\n"; // build block array (or string)
+ }
+ }
+}
+#+END_SRC
+
+***** poem block, verse objects :poem:verse:
why extra object stuff only in poem/verse?
@@ -2640,7 +2810,7 @@ void _poem_block_(L,O,T,C,N,Ma)(
N obj_cite_number_poem,
Ma dochead_make_aa,
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(an_object) == string[string]));
static assert(is(typeof(type) == int[string]));
@@ -2848,100 +3018,6 @@ void _poem_block_(L,O,T,C,N,Ma)(
}
#+END_SRC
-***** group block :group:
-
-#+name: abs_functions_block_group
-#+BEGIN_SRC d
-void _group_block_(L,O,T)(
- return ref L line,
- return ref O an_object,
- return ref T type
-) {
- debug(asserts){
- static assert(is(typeof(line) == char[]));
- static assert(is(typeof(an_object) == string[string]));
- static assert(is(typeof(type) == int[string]));
- }
- auto rgx = Rgx();
- if (type["curly_group"] == State.on) {
- if (matchFirst(line, rgx.block_curly_group_close)) {
- debug(group) { // group (curly) close
- writeln(line);
- }
- type["blocks"] = TriState.closing;
- type["group"] = TriState.closing;
- type["curly_group"] = TriState.off;
- } else {
- debug(group) { // group
- writeln(line);
- }
- an_object[an_object_key] ~= line ~= "\n"; // build group array (or string)
- }
- } else if (type["tic_group"] == TriState.on) {
- if (matchFirst(line, rgx.block_tic_close)) {
- debug(group) { // group (tic) close
- writeln(line);
- }
- type["blocks"] = TriState.closing;
- type["group"] = TriState.closing;
- type["tic_group"] = TriState.off;
- } else {
- debug(group) { // group
- writeln(line);
- }
- an_object[an_object_key] ~= line ~= "\n"; // build group array (or string)
- }
- }
-}
-#+END_SRC
-
-***** block block :block:
-
-#+name: abs_functions_block_block
-#+BEGIN_SRC d
-void _block_block_(L,O,T)(
- return ref L line,
- return ref O an_object,
- return ref T type
-) {
- debug(asserts){
- static assert(is(typeof(line) == char[]));
- static assert(is(typeof(an_object) == string[string]));
- static assert(is(typeof(type) == int[string]));
- }
- auto rgx = Rgx();
- if (type["curly_block"] == TriState.on) {
- if (matchFirst(line, rgx.block_curly_block_close)) {
- debug(block) { // block (curly) close
- writeln(line);
- }
- type["blocks"] = TriState.closing;
- type["block"] = TriState.closing;
- type["curly_block"] = TriState.off;
- } else {
- debug(block) { // block
- writeln(line);
- }
- an_object[an_object_key] ~= line ~= "\n"; // build block array (or string)
- }
- } else if (type["tic_block"] == TriState.on) {
- if (matchFirst(line, rgx.block_tic_close)) {
- debug(block) { // block (tic) close
- writeln(line);
- }
- type["blocks"] = TriState.closing;
- type["block"] = TriState.closing;
- type["tic_block"] = TriState.off;
- } else {
- debug(block) { // block
- writeln(line);
- }
- an_object[an_object_key] ~= line ~= "\n"; // build block array (or string)
- }
- }
-}
-#+END_SRC
-
***** quote block :quote:
#+name: abs_functions_block_quote
@@ -2951,7 +3027,7 @@ void _quote_block_(L,O,T)(
return ref O an_object,
return ref T type
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(an_object) == string[string]));
static assert(is(typeof(type) == int[string]));
@@ -2962,8 +3038,8 @@ void _quote_block_(L,O,T)(
debug(quote) { // quote (curly) close
writeln(line);
}
- type["blocks"] = TriState.closing;
- type["quote"] = TriState.closing;
+ type["blocks"] = TriState.closing;
+ type["quote"] = TriState.closing;
type["curly_quote"] = TriState.off;
} else {
debug(quote) {
@@ -2976,8 +3052,8 @@ void _quote_block_(L,O,T)(
debug(quote) { // quote (tic) close
writeln(line);
}
- type["blocks"] = TriState.closing;
- type["quote"] = TriState.closing;
+ type["blocks"] = TriState.closing;
+ type["quote"] = TriState.closing;
type["tic_quote"] = TriState.off;
} else {
debug(quote) {
@@ -2998,7 +3074,7 @@ void _table_block_(L,O,T)(
return ref O an_object,
return ref T type
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(an_object) == string[string]));
static assert(is(typeof(type) == int[string]));
@@ -3038,11 +3114,13 @@ void _table_block_(L,O,T)(
**** block end (close an open block): line empty, block flag :close:
+***** { line empty, make block
+
#+name: abs_functions_block_line_status_empty
#+BEGIN_SRC d
void _block_flag_line_empty_(B)(
- B bookindex_extract_hash,
- char[] line,
+ B bookindex_extract_hash,
+ char[] line,
return ref string[string] an_object,
return ref ObjGenericComposite[] the_document_body_section,
return ref string[][string][string] bookindex_unordered_hashes,
@@ -3063,14 +3141,24 @@ void _block_flag_line_empty_(B)(
"code block status: closed"
);
assertions_flag_types_block_status_none_or_closed(type);
- if (type["code"] == TriState.closing) {
+#+END_SRC
+
+***** make: group block
+
+#+name: abs_functions_block_line_status_empty
+#+BEGIN_SRC d
+ if (type["group"] == TriState.closing) {
obj_cite_number =
ocn_emit(type["ocn_status"]);
an_object["bookindex_nugget"] =
("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
bookindex_unordered_hashes =
- bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
- an_object["is"] = "code";
+ bookindex_extract_hash.bookindex_nugget_hash(
+ an_object["bookindex_nugget"],
+ obj_cite_number,
+ segment_anchor_tag_that_object_belongs_to
+ );
+ an_object["is"] = "group";
auto comp_obj_location =
node_construct.node_location_emitter(
content_non_header,
@@ -3084,57 +3172,39 @@ void _block_flag_line_empty_(B)(
obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa);
an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];
- comp_obj_code = comp_obj_code.init;
- comp_obj_code.use = "body";
- comp_obj_code.is_of = "block";
- comp_obj_code.is_a = "code";
- comp_obj_code.ocn = obj_cite_number;
- comp_obj_code.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
- comp_obj_code.text = an_object["substantive"];
- comp_obj_code.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
- comp_obj_code.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
- comp_obj_code.inline_links = substantive_obj_misc_tuple[sObj.links];
- the_document_body_section ~= comp_obj_code;
+ comp_obj_block = comp_obj_block.init;
+ comp_obj_block.use = "body";
+ comp_obj_block.is_of = "block";
+ comp_obj_block.is_a = "group";
+ comp_obj_block.ocn = obj_cite_number;
+ comp_obj_block.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ comp_obj_block.text = an_object["substantive"];
+ comp_obj_block.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
+ comp_obj_block.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
+ comp_obj_block.inline_links = substantive_obj_misc_tuple[sObj.links];
+ the_document_body_section ~= comp_obj_block;
+ type["blocks"] = TriState.off;
+ type["group"] = TriState.off;
object_reset(an_object);
processing.remove("verse");
++cntr;
- type["blocks"] = TriState.off;
- type["code"] = TriState.off;
- } else if (type["poem"] == TriState.closing) {
+#+END_SRC
+
+***** make: block
+
+#+name: abs_functions_block_line_status_empty
+#+BEGIN_SRC d
+ } else if (type["block"] == TriState.closing) {
+ obj_cite_number = ocn_emit(type["ocn_status"]);
an_object["bookindex_nugget"] =
("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
bookindex_unordered_hashes =
- bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
- an_object["is"] = "verse"; // check also
- auto comp_obj_location =
- node_construct.node_location_emitter(
- content_non_header,
- segment_anchor_tag_that_object_belongs_to,
+ bookindex_extract_hash.bookindex_nugget_hash(
+ an_object["bookindex_nugget"],
obj_cite_number,
- cntr,
- heading_ptr-1,
- an_object["is"]
+ segment_anchor_tag_that_object_belongs_to
);
- comp_obj_poem_ocn = comp_obj_poem_ocn.init;
- comp_obj_poem_ocn.use = "body";
- comp_obj_poem_ocn.is_of = "block";
- comp_obj_poem_ocn.is_a = "poem";
- comp_obj_poem_ocn.ocn = obj_cite_number;
- comp_obj_poem_ocn.obj_cite_number = (obj_cite_number_poem["start"], obj_cite_number_poem["end"]);
- comp_obj_poem_ocn.text = ""; // an_object["substantive"];
- the_document_body_section ~= comp_obj_poem_ocn;
- object_reset(an_object);
- processing.remove("verse");
- type["blocks"] = TriState.off;
- type["poem"] = TriState.off;
- } else if (type["table"] == TriState.closing) {
- obj_cite_number =
- ocn_emit(type["ocn_status"]);
- an_object["bookindex_nugget"] =
- ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
- bookindex_unordered_hashes =
- bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
- an_object["is"] = "table";
+ an_object["is"] = "block";
auto comp_obj_location =
node_construct.node_location_emitter(
content_non_header,
@@ -3143,7 +3213,7 @@ void _block_flag_line_empty_(B)(
cntr,
heading_ptr-1,
an_object["is"]
- );
+ );
auto substantive_obj_misc_tuple =
obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa);
an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
@@ -3151,7 +3221,7 @@ void _block_flag_line_empty_(B)(
comp_obj_block = comp_obj_block.init;
comp_obj_block.use = "body";
comp_obj_block.is_of = "block";
- comp_obj_block.is_a = "table";
+ comp_obj_block.is_a = "block";
comp_obj_block.ocn = obj_cite_number;
comp_obj_block.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
comp_obj_block.text = an_object["substantive"];
@@ -3159,19 +3229,29 @@ void _block_flag_line_empty_(B)(
comp_obj_block.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
comp_obj_block.inline_links = substantive_obj_misc_tuple[sObj.links];
the_document_body_section ~= comp_obj_block;
+ type["blocks"] = TriState.off;
+ type["block"] = TriState.off;
object_reset(an_object);
processing.remove("verse");
++cntr;
- type["blocks"] = TriState.off;
- type["table"] = TriState.off;
- } else if (type["group"] == TriState.closing) {
+#+END_SRC
+
+***** make: code block
+
+#+name: abs_functions_block_line_status_empty
+#+BEGIN_SRC d
+ } else if (type["code"] == TriState.closing) {
obj_cite_number =
ocn_emit(type["ocn_status"]);
an_object["bookindex_nugget"] =
("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
bookindex_unordered_hashes =
- bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
- an_object["is"] = "group";
+ bookindex_extract_hash.bookindex_nugget_hash(
+ an_object["bookindex_nugget"],
+ obj_cite_number,
+ segment_anchor_tag_that_object_belongs_to
+ );
+ an_object["is"] = "code";
auto comp_obj_location =
node_construct.node_location_emitter(
content_non_header,
@@ -3185,29 +3265,38 @@ void _block_flag_line_empty_(B)(
obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa);
an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];
- comp_obj_block = comp_obj_block.init;
- comp_obj_block.use = "body";
- comp_obj_block.is_of = "block";
- comp_obj_block.is_a = "group";
- comp_obj_block.ocn = obj_cite_number;
- comp_obj_block.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
- comp_obj_block.text = an_object["substantive"];
- comp_obj_block.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
- comp_obj_block.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
- comp_obj_block.inline_links = substantive_obj_misc_tuple[sObj.links];
- the_document_body_section ~= comp_obj_block;
+ comp_obj_code = comp_obj_code.init;
+ comp_obj_code.use = "body";
+ comp_obj_code.is_of = "block";
+ comp_obj_code.is_a = "code";
+ comp_obj_code.ocn = obj_cite_number;
+ comp_obj_code.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ comp_obj_code.text = an_object["substantive"];
+ comp_obj_code.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
+ comp_obj_code.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
+ comp_obj_code.inline_links = substantive_obj_misc_tuple[sObj.links];
+ the_document_body_section ~= comp_obj_code;
+ type["blocks"] = TriState.off;
+ type["code"] = TriState.off;
object_reset(an_object);
processing.remove("verse");
++cntr;
- type["blocks"] = TriState.off;
- type["group"] = TriState.off;
- } else if (type["block"] == TriState.closing) {
- obj_cite_number = ocn_emit(type["ocn_status"]);
+#+END_SRC
+
+***** make: poem
+
+#+name: abs_functions_block_line_status_empty
+#+BEGIN_SRC d
+ } else if (type["poem"] == TriState.closing) {
an_object["bookindex_nugget"] =
("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
bookindex_unordered_hashes =
- bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
- an_object["is"] = "block";
+ bookindex_extract_hash.bookindex_nugget_hash(
+ an_object["bookindex_nugget"],
+ obj_cite_number,
+ segment_anchor_tag_that_object_belongs_to
+ );
+ an_object["is"] = "verse"; // check also
auto comp_obj_location =
node_construct.node_location_emitter(
content_non_header,
@@ -3216,15 +3305,54 @@ void _block_flag_line_empty_(B)(
cntr,
heading_ptr-1,
an_object["is"]
- );
+ );
+ comp_obj_poem_ocn = comp_obj_poem_ocn.init;
+ comp_obj_poem_ocn.use = "body";
+ comp_obj_poem_ocn.is_of = "block";
+ comp_obj_poem_ocn.is_a = "poem";
+ comp_obj_poem_ocn.ocn = obj_cite_number;
+ comp_obj_poem_ocn.obj_cite_number = (obj_cite_number_poem["start"], obj_cite_number_poem["end"]);
+ comp_obj_poem_ocn.text = ""; // an_object["substantive"];
+ the_document_body_section ~= comp_obj_poem_ocn;
+ type["blocks"] = TriState.off;
+ type["poem"] = TriState.off;
+ object_reset(an_object);
+ processing.remove("verse");
+#+END_SRC
+
+***** make: quote block
+
+#+name: abs_functions_block_line_status_empty
+#+BEGIN_SRC d
+ } else if (type["quote"] == TriState.closing) {
+ obj_cite_number =
+ ocn_emit(type["ocn_status"]);
+ an_object["bookindex_nugget"] =
+ ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
+ bookindex_unordered_hashes =
+ bookindex_extract_hash.bookindex_nugget_hash(
+ an_object["bookindex_nugget"],
+ obj_cite_number,
+ segment_anchor_tag_that_object_belongs_to
+ );
+ an_object["is"] = "quote";
+ auto comp_obj_location =
+ node_construct.node_location_emitter(
+ content_non_header,
+ segment_anchor_tag_that_object_belongs_to,
+ obj_cite_number,
+ cntr,
+ heading_ptr-1,
+ an_object["is"]
+ );
auto substantive_obj_misc_tuple =
- obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa);
- an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
+ obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa); // ...
+ an_object["substantive"] = substantive_obj_misc_tuple[sObj.content]; // ...
anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];
comp_obj_block = comp_obj_block.init;
comp_obj_block.use = "body";
comp_obj_block.is_of = "block";
- comp_obj_block.is_a = "block";
+ comp_obj_block.is_a = "quote";
comp_obj_block.ocn = obj_cite_number;
comp_obj_block.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
comp_obj_block.text = an_object["substantive"];
@@ -3236,15 +3364,25 @@ void _block_flag_line_empty_(B)(
processing.remove("verse");
++cntr;
type["blocks"] = TriState.off;
- type["block"] = TriState.off;
- } else if (type["quote"] == TriState.closing) {
+ type["quote"] = TriState.off;
+#+END_SRC
+
+***** make: table
+
+#+name: abs_functions_block_line_status_empty
+#+BEGIN_SRC d
+ } else if (type["table"] == TriState.closing) {
obj_cite_number =
ocn_emit(type["ocn_status"]);
an_object["bookindex_nugget"] =
("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
bookindex_unordered_hashes =
- bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
- an_object["is"] = "quote";
+ bookindex_extract_hash.bookindex_nugget_hash(
+ an_object["bookindex_nugget"],
+ obj_cite_number,
+ segment_anchor_tag_that_object_belongs_to
+ );
+ an_object["is"] = "table";
auto comp_obj_location =
node_construct.node_location_emitter(
content_non_header,
@@ -3255,13 +3393,13 @@ void _block_flag_line_empty_(B)(
an_object["is"]
);
auto substantive_obj_misc_tuple =
- obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa); // ...
- an_object["substantive"] = substantive_obj_misc_tuple[sObj.content]; // ...
+ obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa);
+ an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];
comp_obj_block = comp_obj_block.init;
comp_obj_block.use = "body";
comp_obj_block.is_of = "block";
- comp_obj_block.is_a = "quote";
+ comp_obj_block.is_a = "table";
comp_obj_block.ocn = obj_cite_number;
comp_obj_block.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
comp_obj_block.text = an_object["substantive"];
@@ -3269,12 +3407,18 @@ void _block_flag_line_empty_(B)(
comp_obj_block.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
comp_obj_block.inline_links = substantive_obj_misc_tuple[sObj.links];
the_document_body_section ~= comp_obj_block;
+ type["blocks"] = TriState.off;
+ type["table"] = TriState.off;
object_reset(an_object);
processing.remove("verse");
++cntr;
- type["blocks"] = TriState.off;
- type["quote"] = TriState.off;
}
+#+END_SRC
+
+***** }
+
+#+name: abs_functions_block_line_status_empty
+#+BEGIN_SRC d
}
#+END_SRC
@@ -3289,7 +3433,7 @@ auto _book_index_(L,I,O,T,B)(
return ref T type,
B opt_action_bool,
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(book_idx_tmp) == string));
static assert(is(typeof(an_object) == string[string]));
@@ -3355,7 +3499,7 @@ auto _heading_found_(L,X,H,R,T)(
return ref R heading_match_rgx,
return ref T type
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(dochead_make_identify_unmarked_headings) == string));
static assert(is(typeof(heading_match_str) == string[string]));
@@ -3442,7 +3586,7 @@ auto _heading_found_(L,X,H,R,T)(
}
#+END_SRC
-**** heading make set :heading:
+**** heading make set :heading:
#+name: abs_functions_heading
#+BEGIN_SRC d
@@ -3452,7 +3596,7 @@ auto _heading_make_set_(L,C,R,T)(
return ref R heading_match_rgx,
return ref T type
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(line_occur) == int[string]));
static assert(is(typeof(heading_match_rgx) == Regex!(char)[string]));
@@ -3524,7 +3668,7 @@ auto _heading_matched_(L,C,O,K,Lv,Lc,T,Me)(
return ref T type,
return ref Me dochead_meta_aa,
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(line_occur) == int[string]));
static assert(is(typeof(an_object) == string[string]));
@@ -3684,7 +3828,7 @@ void _para_match_(L,O,K,I,B,T,C)(
return ref T type,
return ref C line_occur,
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(an_object) == string[string]));
static assert(is(typeof(an_object_key) == string));
@@ -3738,7 +3882,7 @@ void _para_match_(L,O,K,I,B,T,C)(
}
#+END_SRC
-**** TODO text font face
+**** text font face
#+name: abs_functions_para
#+BEGIN_SRC d
@@ -3785,7 +3929,7 @@ struct OCNemitter {
***** object inline markup munge :markup:inline:
-****** 0. struct, inline markup munge
+****** { struct, inline markup munge
#+name: ao_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
@@ -3810,7 +3954,7 @@ struct ObjInlineMarkupMunge {
#+name: ao_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
string url_links(Ot)(Ot obj_txt_in) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
/+ url matched +/
@@ -3870,7 +4014,7 @@ struct ObjInlineMarkupMunge {
#+name: ao_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){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
/+ endnotes (regular) +/
@@ -3933,7 +4077,7 @@ struct ObjInlineMarkupMunge {
#+BEGIN_SRC d
private auto object_notes_and_links_(Ot)(Ot obj_txt_in, bool reset_note_numbers=false)
in {
- debug(asserts){
+ debug(asserts) {
assert(is(typeof(obj_txt_in) == string));
}
}
@@ -3989,27 +4133,24 @@ struct ObjInlineMarkupMunge {
}
#+END_SRC
-****** para
-- paragraph text without other identification until two new lines
+****** heading
+- identified text by heading level marker followed by text until two new lines
- general markup
- - paragraph attributes
- - font faces (bold, italics, underscore etc.)
- - footnotes/endnotes
- - links
#+name: ao_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
- auto para(Ot)(Ot obj_txt_in)
+ auto munge_heading(Ot)(Ot obj_txt_in, bool reset_note_numbers=false)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
obj_txt["munge"]=(obj_txt_in)
- .replaceFirst(rgx.para_attribs, "")
- .replaceFirst(rgx.obj_cite_number_off_all, "");
- auto t = object_notes_and_links_(obj_txt["munge"]);
+ .replaceFirst(rgx.heading, "")
+ .replaceFirst(rgx.obj_cite_number_off_all, "")
+ .strip;
+ auto t = object_notes_and_links_(obj_txt["munge"], reset_note_numbers);
debug(munge) {
writeln(__LINE__);
writeln(obj_txt_in);
@@ -4018,26 +4159,31 @@ struct ObjInlineMarkupMunge {
}
return t;
}
+ invariant() {
+ }
#+END_SRC
-****** heading
-- identified text by heading level marker followed by text until two new lines
+****** para
+- paragraph text without other identification until two new lines
- general markup
+ - paragraph attributes
+ - font faces (bold, italics, underscore etc.)
+ - footnotes/endnotes
+ - links
#+name: ao_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
- auto heading(Ot)(Ot obj_txt_in, bool reset_note_numbers=false)
+ auto munge_para(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
obj_txt["munge"]=(obj_txt_in)
- .replaceFirst(rgx.heading, "")
- .replaceFirst(rgx.obj_cite_number_off_all, "")
- .strip;
- auto t = object_notes_and_links_(obj_txt["munge"], reset_note_numbers);
+ .replaceFirst(rgx.para_attribs, "")
+ .replaceFirst(rgx.obj_cite_number_off_all, "");
+ auto t = object_notes_and_links_(obj_txt["munge"]);
debug(munge) {
writeln(__LINE__);
writeln(obj_txt_in);
@@ -4046,31 +4192,6 @@ struct ObjInlineMarkupMunge {
}
return t;
}
- invariant() {
- }
-#+END_SRC
-
-****** code
-- newlines
-- indentation
-- possibly identify syntax for coloring
-- no general markup
-
-#+name: ao_emitters_obj_inline_markup_munge
-#+BEGIN_SRC d
- string code(Ot)(Ot obj_txt_in)
- in {
- debug(asserts){
- assert(is(typeof(obj_txt_in) == string));
- }
- }
- body {
- obj_txt_in = (obj_txt_in).replaceAll(rgx.two_spaces, mkup.nbsp ~ mkup.nbsp);
- obj_txt["munge"] = obj_txt_in;
- return obj_txt["munge"];
- }
- invariant() {
- }
#+END_SRC
****** group
@@ -4084,7 +4205,7 @@ struct ObjInlineMarkupMunge {
#+name: ao_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
- auto group(string obj_txt_in)
+ auto munge_group(string obj_txt_in)
in { }
body {
obj_txt["munge"]=obj_txt_in;
@@ -4106,9 +4227,9 @@ struct ObjInlineMarkupMunge {
#+name: ao_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
- auto block(Ot)(Ot obj_txt_in)
+ auto munge_block(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
@@ -4132,9 +4253,9 @@ struct ObjInlineMarkupMunge {
#+name: ao_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
- auto verse(Ot)(Ot obj_txt_in)
+ auto munge_verse(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
@@ -4147,18 +4268,25 @@ struct ObjInlineMarkupMunge {
}
#+END_SRC
-****** quote
+****** code
+- newlines
+- indentation
+- possibly identify syntax for coloring (obj attribute)
+- numbered code blocks (markup/obj attribute?)
+- no general markup
+- one special character represented by mkup.nbsp ░
#+name: ao_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
- string quote(Ot)(Ot obj_txt_in)
+ string munge_code(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
- static assert(is(typeof(obj_txt_in) == string));
+ debug(asserts) {
+ assert(is(typeof(obj_txt_in) == string));
}
}
body {
- obj_txt["munge"]=obj_txt_in;
+ obj_txt_in = (obj_txt_in).replaceAll(rgx.two_spaces, mkup.nbsp ~ mkup.nbsp);
+ obj_txt["munge"] = obj_txt_in;
return obj_txt["munge"];
}
invariant() {
@@ -4171,9 +4299,27 @@ struct ObjInlineMarkupMunge {
#+name: ao_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
- string table(Ot)(Ot obj_txt_in)
+ string munge_table(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
+ static assert(is(typeof(obj_txt_in) == string));
+ }
+ }
+ body {
+ obj_txt["munge"]=obj_txt_in;
+ return obj_txt["munge"];
+ }
+ invariant() {
+ }
+#+END_SRC
+
+****** quote
+
+#+name: ao_emitters_obj_inline_markup_munge
+#+BEGIN_SRC d
+ string munge_quote(Ot)(Ot obj_txt_in)
+ in {
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
@@ -4189,9 +4335,9 @@ struct ObjInlineMarkupMunge {
#+name: ao_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
- string comment(Ot)(Ot obj_txt_in)
+ string munge_comment(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
@@ -4203,7 +4349,7 @@ struct ObjInlineMarkupMunge {
}
#+END_SRC
-****** 0. close
+****** }
#+name: ao_emitters_obj_inline_markup_munge
#+BEGIN_SRC d
@@ -4211,7 +4357,7 @@ struct ObjInlineMarkupMunge {
#+END_SRC
***** toc, tags, object inline markup :markup:inline:
-****** open
+****** {
#+name: ao_emitters_obj_inline_markup
#+BEGIN_SRC d
@@ -4231,15 +4377,15 @@ struct ObjInlineMarkup {
Ma dochead_make_aa
)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_) == string[string]));
static assert(is(typeof(obj_key_) == string));
static assert(is(typeof(dochead_make_aa) == string[string][string]));
}
}
body {
- obj_txt["munge"]=obj_[obj_key_].dup;
- obj_txt["munge"]=(match(obj_["is"], ctRegex!(`verse|code`)))
+ obj_txt["munge"] = obj_[obj_key_].dup;
+ obj_txt["munge"] = (match(obj_["is"], ctRegex!(`verse|code`)))
? obj_txt["munge"]
: strip(obj_txt["munge"]);
static __gshared string[] anchor_tags_ = [];
@@ -4260,37 +4406,38 @@ struct ObjInlineMarkup {
} else if (obj_["lev"] == "1") {
writeln("heading anchor tag missing: ", obj_txt["munge"]);
}
- x =munge.heading(obj_txt["munge"], reset_note_numbers);
+ x =munge.munge_heading(obj_txt["munge"], reset_note_numbers);
reset_note_numbers=false;
goto default;
case "para":
- x = munge.para(obj_txt["munge"]);
+ x = munge.munge_para(obj_txt["munge"]);
goto default;
case "group":
- x = munge.group(obj_txt["munge"]);
+ x = munge.munge_group(obj_txt["munge"]);
goto default;
case "block":
- x = munge.block(obj_txt["munge"]);
+ x = munge.munge_block(obj_txt["munge"]);
goto default;
case "verse":
- x = munge.verse(obj_txt["munge"]);
+ x = munge.munge_verse(obj_txt["munge"]);
goto default;
case "code":
- obj_txt["munge"]=munge.code(obj_txt["munge"]);
- break;
- case "quote":
- obj_txt["munge"]=munge.quote(obj_txt["munge"]);
+ obj_txt["munge"] = munge.munge_code(obj_txt["munge"]);
break;
case "table":
- obj_txt["munge"]=munge.table(obj_txt["munge"]);
+ obj_txt["munge"] = munge.munge_table(obj_txt["munge"]);
+ break;
+ case "quote":
+ obj_txt["munge"] = munge.munge_quote(obj_txt["munge"]);
break;
case "comment":
- obj_txt["munge"]=munge.comment(obj_txt["munge"]);
+ obj_txt["munge"] = munge.munge_comment(obj_txt["munge"]);
break;
case "doc_end_reset":
munge.initialize_note_numbers();
break;
default:
+ /+ para, heading, group, block, verse +/
obj_txt["munge"]=x[0];
obj_notes_and_links["notes_reg"] = x[1];
obj_notes_and_links["notes_star"] = x[2];
@@ -4311,14 +4458,14 @@ struct ObjInlineMarkup {
}
#+END_SRC
-****** toc, table of contents build, gather headings :markup:inline:
+****** toc (table of contents), build, gather headings :markup:inline:
#+name: ao_emitters_obj_inline_markup_table_of_contents
#+BEGIN_SRC d
auto _clean_heading_toc_(Toc)(
Toc heading_toc_,
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(heading_toc_) == char[]));
}
auto m = matchFirst(cast(char[]) heading_toc_, rgx.heading);
@@ -4336,7 +4483,7 @@ struct ObjInlineMarkup {
Toc the_table_of_contents_section,
)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_) == string[string]));
static assert(is(typeof(dochead_make_aa) == string[string][string]));
static assert(is(typeof(segment_anchor_tag_that_object_belongs_to) == string));
@@ -4505,13 +4652,12 @@ private:
O obj_,
Ma dochead_make_aa
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(munge_) == string));
static assert(is(typeof(obj_) == string[string]));
static assert(is(typeof(dochead_make_aa) == string[string][string]));
}
if (dochead_make_aa["make"]["num_top"].length > 0) {
- // if (!(match(munge_, rgx.heading_anchor_tag))) {
static __gshared int heading_num_top_level=9;
static __gshared int heading_num_depth=2;
static __gshared int heading_num_0 = 0;
@@ -4650,7 +4796,7 @@ private:
#+BEGIN_SRC d
static string _make_segment_anchor_tags_if_none_provided(M,Lv)(M munge_, Lv lev_) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(munge_) == string));
static assert(is(typeof(lev_) == string));
}
@@ -4727,7 +4873,7 @@ private:
}
#+END_SRC
-****** close
+****** }
#+name: ao_emitters_obj_inline_markup_close
#+BEGIN_SRC d
@@ -4735,7 +4881,7 @@ private:
#+END_SRC
***** object attrib :attributes:
-****** attributes structure open, public
+****** { attributes structure open, public
#+name: ao_emitters_obj_attributes
#+BEGIN_SRC d
@@ -4743,7 +4889,7 @@ struct ObjAttributes {
string[string] _obj_attrib;
#+END_SRC
-****** attributes structure open, public
+****** emitter obj attributes, public
#+name: ao_emitters_obj_attributes_public
#+BEGIN_SRC d
@@ -4753,7 +4899,7 @@ struct ObjAttributes {
OH _comp_obj_heading,
)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_is_) == string));
static assert(is(typeof(obj_raw) == string));
static assert(is(typeof(_comp_obj_heading) == ObjGenericComposite));
@@ -4827,13 +4973,13 @@ struct ObjAttributes {
#+END_SRC
******* attrubutes
-******** para and block
+******** para & blocks
#+name: ao_emitters_obj_attributes_private_an_attribute
#+BEGIN_SRC d
string _para_and_blocks(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
@@ -4863,160 +5009,160 @@ struct ObjAttributes {
}
#+END_SRC
-******** para
+******** heading
#+name: ao_emitters_obj_attributes_private_an_attribute
#+BEGIN_SRC d
- string _para(Ot)(Ot obj_txt_in)
+ string _heading(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"para\","
- ~ " \"is\": \"para\"";
+ ~ " \"is\": \"heading\"";
return _obj_attributes;
}
invariant() {
}
#+END_SRC
-******** heading
+******** para
#+name: ao_emitters_obj_attributes_private_an_attribute
#+BEGIN_SRC d
- string _heading(Ot)(Ot obj_txt_in)
+ string _para(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"para\","
- ~ " \"is\": \"heading\"";
+ ~ " \"is\": \"para\"";
return _obj_attributes;
}
invariant() {
}
#+END_SRC
-******** code
+******** group
#+name: ao_emitters_obj_attributes_private_an_attribute
#+BEGIN_SRC d
- string _code(Ot)(Ot obj_txt_in)
+ string _group(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"block\","
- ~ " \"is\": \"code\"";
+ ~ " \"is\": \"group\"";
return _obj_attributes;
}
invariant() {
}
#+END_SRC
-******** group
+******** block
#+name: ao_emitters_obj_attributes_private_an_attribute
#+BEGIN_SRC d
- string _group(Ot)(Ot obj_txt_in)
+ string _block(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"block\","
- ~ " \"is\": \"group\"";
+ ~ " \"is\": \"block\"";
return _obj_attributes;
}
invariant() {
}
#+END_SRC
-******** block
+******** verse
#+name: ao_emitters_obj_attributes_private_an_attribute
#+BEGIN_SRC d
- string _block(Ot)(Ot obj_txt_in)
+ string _verse(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"block\","
- ~ " \"is\": \"block\"";
+ ~ " \"is\": \"verse\"";
return _obj_attributes;
}
invariant() {
}
#+END_SRC
-******** verse
+******** code
#+name: ao_emitters_obj_attributes_private_an_attribute
#+BEGIN_SRC d
- string _verse(Ot)(Ot obj_txt_in)
+ string _code(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"block\","
- ~ " \"is\": \"verse\"";
+ ~ " \"is\": \"code\"";
return _obj_attributes;
}
invariant() {
}
#+END_SRC
-******** quote
+******** table
#+name: ao_emitters_obj_attributes_private_an_attribute
#+BEGIN_SRC d
- string _quote(Ot)(Ot obj_txt_in)
+ string _table(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"block\","
- ~ " \"is\": \"quote\"";
+ ~ " \"is\": \"table\"";
return _obj_attributes;
}
invariant() {
}
#+END_SRC
-******** table
+******** quote
#+name: ao_emitters_obj_attributes_private_an_attribute
#+BEGIN_SRC d
- string _table(Ot)(Ot obj_txt_in)
+ string _quote(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"block\","
- ~ " \"is\": \"table\"";
+ ~ " \"is\": \"quote\"";
return _obj_attributes;
}
invariant() {
@@ -5029,7 +5175,7 @@ struct ObjAttributes {
#+BEGIN_SRC d
string _comment(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
@@ -5052,7 +5198,7 @@ struct ObjAttributes {
Oi obj_is_,
OH _comp_obj_heading,
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(_obj_attrib) == string));
static assert(is(typeof(obj_is_) == string));
static assert(is(typeof(_comp_obj_heading) == ObjGenericComposite));
@@ -5077,7 +5223,7 @@ struct ObjAttributes {
}
#+END_SRC
-****** close
+****** }
#+name: ao_emitters_obj_attributes_private_close
#+BEGIN_SRC d
@@ -5102,7 +5248,7 @@ struct BookIndexNuggetHash {
S segment_anchor_tag,
)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(bookindex_section) == string));
static assert(is(typeof(obj_cite_number) == int));
}
@@ -5182,7 +5328,7 @@ struct BookIndexReportIndent {
auto bookindex_report_indented(BI)(
BI bookindex_unordered_hashes
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(bookindex_unordered_hashes) == string[][string][string]));
}
auto mainkeys=
@@ -5209,7 +5355,7 @@ struct BookIndexReportIndent {
#+END_SRC
***** book index (sort &) report section :report:section:
-****** book index struct open
+****** { book index struct open
#+name: ao_emitters_book_index_report_section
#+BEGIN_SRC d
@@ -5226,7 +5372,7 @@ struct BookIndexReportSection {
auto bookindex_write_section(BI)(
BI bookindex_unordered_hashes
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(bookindex_unordered_hashes) == string[][string][string]));
}
auto mainkeys=bookindex_unordered_hashes.byKey.array.sort().release;
@@ -5263,7 +5409,7 @@ struct BookIndexReportSection {
N obj_cite_number,
B opt_action_bool,
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(bookindex_unordered_hashes) == string[][string][string]));
static assert(is(typeof(obj_cite_number) == int));
static assert(is(typeof(opt_action_bool) == bool[string]));
@@ -5416,7 +5562,7 @@ struct BookIndexReportSection {
}
#+END_SRC
-****** book index struct close
+****** }
#+name: ao_emitters_book_index_report_section
#+BEGIN_SRC d
@@ -5434,7 +5580,7 @@ struct NotesSection {
auto rgx = Rgx();
#+END_SRC
-***** gather notes for endnote section struct open
+***** { gather notes for endnote section struct open
#+name: ao_emitters_endnotes
#+BEGIN_SRC d
@@ -5608,7 +5754,7 @@ struct NotesSection {
}
#+END_SRC
-***** gather notes for endnote section struct close
+***** }
#+name: ao_emitters_endnotes
#+BEGIN_SRC d
@@ -5616,7 +5762,7 @@ struct NotesSection {
#+END_SRC
**** bibliography :bibliography:
-***** biblio struct open
+***** { biblio struct
#+name: ao_emitters_bibliography
#+BEGIN_SRC d
@@ -5632,7 +5778,7 @@ struct Bibliography {
return ref BJ bib_arr_json
)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(biblio_unsorted_incomplete) == string[]));
static assert(is(typeof(bib_arr_json) == JSONValue[]));
}
@@ -5669,7 +5815,7 @@ struct Bibliography {
Bi biblio_unordered,
return ref BJ bib_arr_json
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(biblio_unordered) == string[]));
static assert(is(typeof(bib_arr_json) == JSONValue[]));
}
@@ -5706,7 +5852,7 @@ struct Bibliography {
#+name: ao_emitters_bibliography
#+BEGIN_SRC d
final private JSONValue[] biblio_sort(BJ)(BJ biblio_unordered) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(biblio_unordered) == JSONValue[]));
}
JSONValue[] biblio_sorted_;
@@ -5730,7 +5876,7 @@ struct Bibliography {
#+name: ao_emitters_bibliography
#+BEGIN_SRC d
void biblio_debug(BJ)(BJ biblio_sorted) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(biblio_sorted) == JSONValue[]));
}
debug(biblio0) {
@@ -5743,7 +5889,7 @@ struct Bibliography {
}
#+END_SRC
-***** biblio struct close
+***** }
#+name: ao_emitters_bibliography
#+BEGIN_SRC d
@@ -5751,7 +5897,7 @@ struct Bibliography {
#+END_SRC
**** node structure metadata :structure:metadata:node:
-***** metadata node struct open
+***** { metadata node struct
#+name: ao_emitters_metadata
#+BEGIN_SRC d
@@ -5762,7 +5908,7 @@ struct NodeStructureMetadata {
auto rgx = Rgx();
#+END_SRC
-***** TODO node metadata emitter
+***** node metadata emitter
#+name: ao_emitters_metadata
#+BEGIN_SRC d
@@ -5775,7 +5921,7 @@ struct NodeStructureMetadata {
I is_
)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(lev_markup_number) == string));
static assert(is(typeof(segment_anchor_tag) == string));
static assert(is(typeof(obj_cite_number_) == int));
@@ -5826,7 +5972,7 @@ struct NodeStructureMetadata {
}
#+END_SRC
-***** TODO node metadata emitter heading, (including most segnames & their pointers)
+***** node metadata emitter heading, (including most segnames & their pointers)
#+name: ao_emitters_metadata
#+BEGIN_SRC d
@@ -5847,7 +5993,7 @@ struct NodeStructureMetadata {
fL flag_links,
)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(_text) == string));
static assert(is(typeof(lev) == string));
static assert(is(typeof(lev_markup_number) == string));
@@ -6021,7 +6167,7 @@ struct NodeStructureMetadata {
}
#+END_SRC
-***** metadata node struct close
+***** }
#+name: ao_emitters_metadata
#+BEGIN_SRC d
@@ -6037,7 +6183,7 @@ auto assertions_doc_structure(O,Lv)(
O an_object,
Lv lv
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(an_object) == string[string]));
static assert(is(typeof(lv) == int[string]));
}
@@ -6219,7 +6365,7 @@ auto assertions_doc_structure(O,Lv)(
#+name: abs_functions_assertions
#+BEGIN_SRC d
auto assertions_flag_types_block_status_none_or_closed(T)(T type) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(type) == int[string]));
}
assert(
@@ -6279,7 +6425,7 @@ struct HeadingAttrib {
}
#+END_SRC
-*** TODO composite object
+*** [#A] composite object
#+name: ao_structs_init
#+BEGIN_SRC d
diff --git a/org/ao_read_source_files.org b/org/ao_read_source_files.org
index 73594dd..a870a57 100644
--- a/org/ao_read_source_files.org
+++ b/org/ao_read_source_files.org
@@ -309,7 +309,7 @@ final private char[][] header0Content1(in string src_text) {
#+BEGIN_SRC d
final private char[][] markupSourceLineArray(in char[] src_text) {
char[][] source_line_arr =
- split(cast(char[]) src_text, rgx.newline_eol_strip_preceeding);
+ split(cast(char[]) src_text, rgx.newline_eol_strip_preceding);
return source_line_arr;
}
#+END_SRC
diff --git a/org/defaults.org b/org/defaults.org
index 03eecb0..ffd2c7c 100644
--- a/org/defaults.org
+++ b/org/defaults.org
@@ -407,37 +407,37 @@ template SiSUrgxInitFlags() {
/+ regex flags +/
int[string] flags_type_init() {
int[string] flags_type_init = [
- "make_headings" : 0,
- "header_make" : 0,
- "header_meta" : 0,
- "heading" : 0,
- "biblio_section" : 0,
- "glossary_section" : 0,
- "blurb_section" : 0,
- "para" : 0,
- "blocks" : 0, // 0..2 generic
- "code" : 0, // 0..2
- "poem" : 0, // 0..2
- "table" : 0, // 0..2
- "group" : 0, // 0..2
- "block" : 0, // 0..2
- "quote" : 0, // 0..2
- "verse_new" : 0,
- "curly_code" : 0,
- "curly_poem" : 0,
- "curly_table" : 0,
- "curly_group" : 0,
- "curly_block" : 0,
- "curly_quote" : 0,
- "tic_code" : 0,
- "tic_poem" : 0,
- "tic_table" : 0,
- "tic_group" : 0,
- "tic_block" : 0,
- "tic_quote" : 0,
- "ocn_status" : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings
- "ocn_status_multi_obj" : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings
- "book_index" : 0,
+ "make_headings" : 0,
+ "header_make" : 0,
+ "header_meta" : 0,
+ "heading" : 0,
+ "biblio_section" : 0,
+ "glossary_section" : 0,
+ "blurb_section" : 0,
+ "para" : 0,
+ "blocks" : 0, // 0..2 generic
+ "code" : 0, // 0..2
+ "poem" : 0, // 0..2
+ "table" : 0, // 0..2
+ "group" : 0, // 0..2
+ "block" : 0, // 0..2
+ "quote" : 0, // 0..2
+ "verse_new" : 0,
+ "curly_code" : 0,
+ "curly_poem" : 0,
+ "curly_group" : 0,
+ "curly_block" : 0,
+ "curly_quote" : 0,
+ "curly_table" : 0,
+ "tic_code" : 0,
+ "tic_poem" : 0,
+ "tic_group" : 0,
+ "tic_block" : 0,
+ "tic_quote" : 0,
+ "tic_table" : 0,
+ "ocn_status" : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings
+ "ocn_status_multi_obj" : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings
+ "book_index" : 0,
];
return flags_type_init;
}
@@ -576,7 +576,7 @@ static book_index_go_seg_anchorless = ctRegex!("(?P<link>(?P<o
static trailing_comma = ctRegex!(",[ ]*$");
static trailing_linebreak = ctRegex!(",[ ]{1,2}\\\\\\\\\n[ ]{4}$","m");
static newline_eol_delimiter = ctRegex!("\n");
-static newline_eol_strip_preceeding = ctRegex!("[ ]*\n");
+static newline_eol_strip_preceding = ctRegex!("[ ]*\n");
static newline_eol_delimiter_only = ctRegex!("^\n");
static line_delimiter_ws_strip = ctRegex!("[ ]*\n[ ]*");
static para_delimiter = ctRegex!("\n[ ]*\n+");
@@ -1196,6 +1196,8 @@ static inline_text_and_note_al = ctRegex!(`(?P<text>.+?)�
static inline_text_and_note_al_ = ctRegex!(`(.+?(?:【[*+]*\s+.+?】|$))`, "mg");
#+END_SRC
+*** inline links
+
#+name: prgmkup_rgx
#+BEGIN_SRC d
/+ inline markup footnotes endnotes +/
diff --git a/org/output.org b/org/output.org
index bda3325..e8ed16e 100644
--- a/org/output.org
+++ b/org/output.org
@@ -281,7 +281,7 @@ string special_characters(string _txt){
.replaceAll(rgx.xhtml_ampersand, "&amp;")
.replaceAll(rgx.xhtml_less_than, "&lt;")
.replaceAll(rgx.xhtml_greater_than, "&gt;")
- .replaceAll(rgx.xhtml_line_break, "<br />");
+ .replaceAll(rgx.xhtml_line_break, "<br>");
return _txt;
}
#+END_SRC
@@ -1356,54 +1356,6 @@ auto html_css() {
margin-left: 5%;
margin-right: 1%;
}
- #top_band {
- position: absolute;
- top: 0;
- bottom: 80px;
- width: 100%;
- }
- #top_band_search {
- position: absolute;
- top: 0px;
- right: 0px;
- margin-left: 75%;
- width: 20%;
- }
- #column_left {
- position: absolute;
- top: 80px;
- left: 0;
- margin-left: 1%;
- width: 20%;
- }
- #column_center {
- position: absolute;
- top: 80px;
- margin-left: 20%;
- width: 55%;
- }
- #column_right {
- position: absolute;
- top: 80px;
- right: 0px;
- margin-left: 75%;
- width: 25%;
- }
- #pane_major {
- position: absolute;
- top: 0px;
- left: 0;
- margin-left: 0;
- width: 80%;
- }
- #pane_minor {
- position: absolute;
- top: 0px;
- right: 0px;
- margin-left: 75%;
- width: 20%;
- background-color: #aaaaaa;
- }
.norm, .bold, .verse, .group, .block, .alt {
line-height: 133%;
margin-left: 0em;
@@ -1838,66 +1790,6 @@ auto html_css() {
padding-left: 9em;
text-indent: 0em;
}
- p.it0 {
- margin-left: 0em;
- margin-top: 6px;
- margin-bottom: 0px;
- line-height: 100%;
- }
- p.it1 {
- margin-left: 1em;
- margin-top: 0px;
- margin-bottom: 0px;
- line-height: 100%;
- }
- p.it2 {
- margin-left: 2em;
- margin-top: 0px;
- margin-bottom: 0px;
- line-height: 100%;
- }
- p.it3 {
- margin-left: 3em;
- margin-top: 0px;
- margin-bottom: 0px;
- line-height: 100%;
- }
- p.it4 {
- margin-left: 4em;
- margin-top: 0px;
- margin-bottom: 0px;
- line-height: 100%;
- }
- p.it5 {
- margin-left: 5em;
- margin-top: 0px;
- margin-bottom: 0px;
- line-height: 100%;
- }
- p.it6 {
- margin-left: 6em;
- margin-top: 0px;
- margin-bottom: 0px;
- line-height: 100%;
- }
- p.it7 {
- margin-left: 7em;
- margin-top: 0px;
- margin-bottom: 0px;
- line-height: 100%;
- }
- p.it8 {
- margin-left: 8em;
- margin-top: 0px;
- margin-bottom: 0px;
- line-height: 100%;
- }
- p.it9 {
- margin-left: 9em;
- margin-bottom: 0px;
- margin-top: 0px;
- line-height: 100%;
- }
p.block { }
p.group { }
p.alt { }
@@ -1977,33 +1869,6 @@ auto html_css() {
margin-right: 0px;
text-align: center;
}
- p.pane, p.pane_title, p.pane_blurb, p.pane_link, p.pane_indent {
- font-size: 80%;
- margin-top: 0px;
- margin-bottom: 0px;
- margin-left: 2mm;
- margin-right: 4px;
- text-align: left;
- }
- p.pane { }
- p.pane_title {
- font-weight: bold;
- margin-bottom: 0px;
- }
- p.pane_blurb {
- font-size: 10px;
- margin-bottom: 0px;
- }
- p.pane_link {
- font-size: 10px;
- margin-bottom: 0px;
- margin-left: 4mm;
- }
- p.pane_indent {
- font-size: 10px;
- margin-bottom: 0px;
- margin-left: 4mm;
- }
p.concordance_word {
line-height: 150%;
font-weight: bold;
@@ -2037,35 +1902,6 @@ auto html_css() {
margin-top: 1px;
margin-bottom: 3px;
}
- p.quickref {
- font-size: 10px;
- font-style: italic;
- margin-top: 0px;
- margin-bottom: 0px;
- color: #777777;
- margin-right: 5px;
- text-align: left;
- }
- p.bigref {
- font-size: 11px;
- font-weight: bold;
- margin-top: 0px;
- margin-bottom: 0px;
- color: #777777;
- margin-right: 5px;
- text-align: center;
- }
- p.letter {
- font-weight: bold;
- font-size: 80%;
- margin-left: 0em;
- margin-top: 2px;
- margin-bottom: 2px;
- margin-right: 6px;
- text-align: left;
- color: white;
- background: #880000;
- }
tt {
font-family: inconsolata, andale mono, courier new, courier, monospace;
background-color: #eeeeee;
@@ -2101,73 +1937,6 @@ auto html_css() {
p.right,th.right,td.right {
text-align: right;
}
- #horizontal_links {
- background: #eeeeee;
- margin-left: 5%;
- margin-right: 5%;
- }
- #horizontal {
- margin: 0;
- padding: 0 0 0 10px;
- border-top: 1px solid #000077;
- border-bottom: 1px solid #000077;
- }
- #horizontal li {
- margin: 0 0 0 0;
- padding: 0 16px 0 0;
- display: inline;
- list-style-type: none;
- text-align: left;
- background: none;
- }
- #horizontal a {
- line-height: 12px;
- margin: 0 0 0 0;
- text-decoration: none;
- color: #000077;
- }
- #horizontal a.active, #horizontal a:hover {
- border-bottom: 2px solid #777777;
- padding-bottom: 2px;
- color: #000077;
- }
- #horizontal a:hover {
- color: #000077;
- }
- #document_versions {
- position: absolute;
- top: 10mm;
- right: 2%;
- width: 12%;
- float: right;
- }
- #vertical_links {
- position: absolute;
- top: 10mm;
- right: 0px;
- width: 20%;
- background: #dddddd;
- float: right;
- }
- #vertical {
- padding: 0 12px 0px 0px;
- margin-left: 2%;
- margin-right: 2%;
- }
- #vertical li {
- display: block;
- list-style-type: none;
- }
- #vertical a {
- line-height: 12px;
- text-decoration: none;
- color: #000077;
- }
- #vertical a.active, #vertical a:hover {
- border-bottom: 2px solid #777777;
- padding-bottom: 2px;
- color: #000077;
- }
ul, li {
list-style-type: none;
list-style: none;
@@ -2188,51 +1957,6 @@ auto html_css() {
}
ul {
}
- li.bullet { margin-left: 1em; }
- li.i1 { margin-left: 2em; }
- li.i2 { margin-left: 3em; }
- li.i3 { margin-left: 4em; }
- li.i4 { margin-left: 5em; }
- li.i5 { margin-left: 6em; }
- li.i6 { margin-left: 7em; }
- li.i7 { margin-left: 8em; }
- li.i8 { margin-left: 9em; }
- li.i9 { margin-left: 10em; }
- li.doc, li.ref, li.refcenter {
- margin-top: 0px;
- margin-bottom: 0px;
- margin-right: 0px;
- font-size: 8px;
- font-style: normal;
- text-align: left;
- }
- li.doc {
- background: url(../image_sys/bullet_09.png) no-repeat 0px 6px;
- padding-left: 16px;
- margin-left: 10px;
- margin-right: 0px;
- }
- li.ref {
- background: none;
- padding-left: 0;
- margin-left: 0;
- color: #777777;
- }
- li.refcenter {
- background: url(../image_sys/bullet_09.png) no-repeat 0px 6px;
- padding-left: 20px;
- margin-left: 10%;
- font-size: 9px;
- color: #777777;
- text-align: center;
- }
- li.refbold {
- list-style-type: none;
- padding-left: 16px;
- margin-left: 0;
- margin-right: 10mm;
- font-weight: bold;
- }
h0, h1, h2, h3, h4, h5, h6, h7 {
font-weight: bold;
line-height: 120%;
@@ -2244,9 +1968,6 @@ auto html_css() {
margin-top: 10px;
margin-bottom: 0px;
}
- h0.center, h1.center, h2.center, h3.center, h4.center, h5.center, h6.center, h7.center {
- text-align: center;
- }
h0 { font-size: 125%; }
h1 { font-size: 120%; }
h2 { font-size: 115%; }
@@ -2264,88 +1985,6 @@ auto html_css() {
h7.i {margin-left: 8em;}
h8.i {margin-left: 9em;}
h9.i {margin-left: 10em;}
- h1.top_band {
- display: inline;
- text-align: left;
- margin-top: 0;
- margin-left: 4mm;
- text-indent: 0mm;
- font-weight: bold;
- font-size: 120%;
- }
- h2.top_band_tiny {
- font-size: 10px;
- font-weight: normal;
- margin-top: 0px;
- margin-left: 4mm;
- text-indent: 0mm;
- margin-bottom: 0px;
- color: #777777;
- margin-left: 140px;
- margin-right: 0px;
- text-align: left;
- }
- p.top_band {
- display: inline;
- text-align: left;
- margin-top: 0;
- margin-left: 140px;
- text-indent: 0mm;
- font-weight: bold;
- font-size: 120%;
- }
- p.top_band_tiny {
- font-size: 10px;
- margin-top: 0px;
- margin-bottom: 0px;
- color: #777777;
- margin-left: 140px;
- margin-right: 0px;
- text-align: left;
- }
- p.top_band_image {
- float: left;
- display: inline;
- text-align: left;
- margin-top: 0;
- margin-left: 1mm;
- text-indent: 0mm;
- margin-right: 1mm;
- }
- .banner, .subbanner {
- font-weight: bold;
- text-align: center;
- margin-left: 10mm;
- margin-right: 15mm;
- margin-top: 20px;
- margin-bottom: 10px;
- }
- h0.banner {
- font-size: 125%;
- }
- h1.banner {
- font-size: 120%;
- }
- h1.subbanner {
- font-size: 115%;
- }
- h2.banner {
- font-size: 110%;
- }
- h3.banner {
- color: #990000;
- font-size: 105%;
- }
- h4.banner {
- color: #ff0000;
- font-size: 100%;
- }
- h5.banner {
- }
- h6.banner {
- }
- h7.banner {
- }
.toc {
font-weight: normal;
margin-top: 6px;
@@ -2391,46 +2030,6 @@ auto html_css() {
font-size: 85%;
line-height: 100%;
}
- .microtoc {
- margin-top: 2px;
- margin-bottom: 2px;
- }
- h0.microtoc {
- margin-left: 0mm;
- font-size: 120%;
- }
- h1.microtoc {
- margin-left: 0mm;
- font-size: 115%;
- }
- h2.microtoc {
- margin-left: 5mm;
- font-size: 110%;
- }
- h3.microtoc {
- margin-left: 10mm;
- font-size: 105%;
- }
- h4.microtoc {
- margin-left: 15mm;
- font-weight: normal;
- font-size: 100%;
- }
- h5.microtoc {
- margin-left: 20mm;
- font-weight: normal;
- font-size: 95%;
- }
- h6.microtoc {
- margin-left: 25mm;
- font-weight: normal;
- font-size: 90%;
- }
- h7.microtoc {
- margin-left: 30mm;
- font-weight: normal;
- font-size: 85%;
- }
.subtoc {
margin-right: 34%;
font-weight: normal;
@@ -2548,60 +2147,6 @@ auto html_css() {
div.toc a:hover {
color: #000000;
background-color: #f9f9aa;
- }
- .minitoc {
- font-weight: normal;
- margin-top: 2px;
- margin-bottom: 2px;
- }
- h1.minitoc, h2.minitoc, h3.minitoc {
- margin-left: 0em;
- font-weight: bold;
- text-align: left;
- font-size: 90%;
- margin-top: 4px;
- margin-bottom: 4px;
- }
- h4.minitoc {
- margin-left: 0em;
- font-size: 90%;
- }
- h5.minitoc {
- margin-left: 1em;
- font-size: 85%;
- }
- h6.minitoc {
- margin-left: 2em;
- font-size: 85%;
- }
- h7.minitoc {
- margin-left: 3em;
- font-size: 80%;
- }
- h0.minitoc {
- margin-left: 0em;
- font-size: 90%;
- }
- h0.c, h1.c, h2.c, h3.c, h4.c, h5.c, h6.c, h7.c, p.c {
- text-align: center
- }
- h1.red, h2.red, h3.red, h4.red, h5.red, h6.red, h7.red {
- text-align: center;
- color: #ff0000;
- margin-left: 5mm;
- text-indent: 5mm;
- margin-top: 30px;
- margin-bottom: 20px;
- margin-right: 15mm;
- }
- h1.ruby, h2.ruby, h3.ruby, h4.ruby, h5.ruby, h6.ruby, h7.ruby {
- text-align: center;
- color: #990000;
- margin-left: 5mm;
- text-indent: 5mm;
- margin-top: 30px;
- margin-bottom: 20px;
- margin-right: 15mm;
}";
return css;
}
diff --git a/src/sdp/ao_abstract_doc_source.d b/src/sdp/ao_abstract_doc_source.d
index 066ef3a..82341cd 100644
--- a/src/sdp/ao_abstract_doc_source.d
+++ b/src/sdp/ao_abstract_doc_source.d
@@ -234,7 +234,7 @@ template SiSUdocAbstraction() {
Opt opt_action_bool,
) {
auto rgx = Rgx();
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(markup_sourcefile_content) == char[][]));
static assert(is(typeof(dochead_make_aa) == string[string][string]));
static assert(is(typeof(dochead_meta_aa) == string[string][string]));
@@ -386,6 +386,7 @@ template SiSUdocAbstraction() {
} else if (!matchFirst(line, rgx.skip_from_regular_parse)) {
/+ object other than "code block" object
(includes regular text paragraph, headings & blocks other than code) +/
+ /+ heading, glossary, blurb, poem, group, block, quote, table +/
if ((matchFirst(line, rgx.heading_biblio)
|| (type["biblio_section"] == State.on
&& (!matchFirst(line, rgx.heading_blurb_glossary))))
@@ -556,10 +557,6 @@ template SiSUdocAbstraction() {
type["ocn_status"] = TriState.off;
}
continue;
- } else if (type["poem"] == TriState.on) {
- /+ within block object: poem +/
- _poem_block_(line, an_object, type, cntr, obj_cite_number_poem, dochead_make_aa);
- continue;
/+ within block object: group +/
} else if (type["group"] == TriState.on) {
/+ within block object: group +/
@@ -569,6 +566,10 @@ template SiSUdocAbstraction() {
/+ within block object: block +/
_block_block_(line, an_object, type);
continue;
+ } else if (type["poem"] == TriState.on) {
+ /+ within block object: poem +/
+ _poem_block_(line, an_object, type, cntr, obj_cite_number_poem, dochead_make_aa);
+ continue;
} else if (type["quote"] == TriState.on) {
/+ within block object: quote +/
_quote_block_(line, an_object, type);
@@ -789,7 +790,8 @@ template SiSUdocAbstraction() {
an_object.remove("lev_markup_number");
processing.remove("verse");
++cntr;
- } else if ((type["para"] == State.on) && (line_occur["para"] > State.off)) {
+ } else if ((type["para"] == State.on)
+ && (line_occur["para"] > State.off)) {
/+ paragraph object (current line empty) +/
obj_cite_number = ocn_emit(type["ocn_status"]);
an_object["bookindex_nugget"] =
@@ -846,10 +848,9 @@ template SiSUdocAbstraction() {
/+ unless (the_document_body_section.length == 0) ? +/
if (the_document_body_section.length > 0) {
if (((the_document_body_section[$-1].is_a == "para")
- || (the_document_body_section[$-1].is_a == "heading")
- || (the_document_body_section[$-1].is_a == "group"))
- && (the_document_body_section.length > previous_length)
- ) {
+ || (the_document_body_section[$-1].is_a == "heading")
+ || (the_document_body_section[$-1].is_a == "group"))
+ && (the_document_body_section.length > previous_length)) {
if ((the_document_body_section[$-1].is_a == "heading")
&& (the_document_body_section[$-1].heading_lev_markup < 5)) {
type["biblio_section"] = State.off;
@@ -1603,7 +1604,7 @@ template SiSUdocAbstraction() {
} /+ ← closed: abstract doc source +/
/+ ↓ abstraction functions +/
auto object_reset(O)(ref O an_object) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(an_object) == string[string]));
}
an_object.remove("body_nugget");
@@ -1617,7 +1618,7 @@ template SiSUdocAbstraction() {
return ref O an_object,
return ref T type
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line_occur) == int[string]));
static assert(is(typeof(an_object) == string[string]));
static assert(is(typeof(type) == int[string]));
@@ -1632,7 +1633,7 @@ template SiSUdocAbstraction() {
L line,
return ref T type
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(type) == int[string]));
}
@@ -1682,7 +1683,7 @@ template SiSUdocAbstraction() {
return ref T type,
N obj_cite_number_poem
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(type) == int[string]));
static assert(is(typeof(obj_cite_number_poem) == string[string]));
@@ -1754,8 +1755,8 @@ template SiSUdocAbstraction() {
line
);
}
- type["blocks"] = TriState.on;
- type["table"] = TriState.on;
+ type["blocks"] = TriState.on;
+ type["table"] = TriState.on;
type["curly_table"] = TriState.on;
} else if (matchFirst(line, rgx.block_tic_code_open)) {
/+ tic code open +/
@@ -1822,8 +1823,8 @@ template SiSUdocAbstraction() {
line
);
}
- type["blocks"] = TriState.on;
- type["table"] = TriState.on;
+ type["blocks"] = TriState.on;
+ type["table"] = TriState.on;
type["tic_table"] = TriState.on;
}
}
@@ -1832,7 +1833,7 @@ template SiSUdocAbstraction() {
return ref O an_object,
return ref T type
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(an_object) == string[string]));
static assert(is(typeof(type) == int[string]));
@@ -1869,7 +1870,7 @@ template SiSUdocAbstraction() {
}
}
final string biblio_tag_map(A)(A abr) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(abr) == string));
}
auto btm = [
@@ -2013,6 +2014,88 @@ template SiSUdocAbstraction() {
}
}
//
+ void _group_block_(L,O,T)(
+ return ref L line,
+ return ref O an_object,
+ return ref T type
+ ) {
+ debug(asserts) {
+ static assert(is(typeof(line) == char[]));
+ static assert(is(typeof(an_object) == string[string]));
+ static assert(is(typeof(type) == int[string]));
+ }
+ auto rgx = Rgx();
+ if (type["curly_group"] == State.on) {
+ if (matchFirst(line, rgx.block_curly_group_close)) {
+ debug(group) {
+ writeln(line);
+ }
+ type["blocks"] = TriState.closing;
+ type["group"] = TriState.closing;
+ type["curly_group"] = TriState.off;
+ } else {
+ debug(group) {
+ writeln(line);
+ }
+ an_object[an_object_key] ~= line ~= "\n"; // build group array (or string)
+ }
+ } else if (type["tic_group"] == TriState.on) {
+ if (matchFirst(line, rgx.block_tic_close)) {
+ debug(group) {
+ writeln(line);
+ }
+ type["blocks"] = TriState.closing;
+ type["group"] = TriState.closing;
+ type["tic_group"] = TriState.off;
+ } else {
+ debug(group) { // group
+ writeln(line);
+ }
+ an_object[an_object_key] ~= line ~= "\n"; // build group array (or string)
+ }
+ }
+ }
+ void _block_block_(L,O,T)(
+ return ref L line,
+ return ref O an_object,
+ return ref T type
+ ) {
+ debug(asserts) {
+ static assert(is(typeof(line) == char[]));
+ static assert(is(typeof(an_object) == string[string]));
+ static assert(is(typeof(type) == int[string]));
+ }
+ auto rgx = Rgx();
+ if (type["curly_block"] == TriState.on) {
+ if (matchFirst(line, rgx.block_curly_block_close)) {
+ debug(block) { // block (curly) close
+ writeln(line);
+ }
+ type["blocks"] = TriState.closing;
+ type["block"] = TriState.closing;
+ type["curly_block"] = TriState.off;
+ } else {
+ debug(block) {
+ writeln(line);
+ }
+ an_object[an_object_key] ~= line ~= "\n"; // build block array (or string)
+ }
+ } else if (type["tic_block"] == TriState.on) {
+ if (matchFirst(line, rgx.block_tic_close)) {
+ debug(block) {
+ writeln(line);
+ }
+ type["blocks"] = TriState.closing;
+ type["block"] = TriState.closing;
+ type["tic_block"] = TriState.off;
+ } else {
+ debug(block) {
+ writeln(line);
+ }
+ an_object[an_object_key] ~= line ~= "\n"; // build block array (or string)
+ }
+ }
+ }
void _poem_block_(L,O,T,C,N,Ma)(
L line,
return ref O an_object,
@@ -2021,7 +2104,7 @@ template SiSUdocAbstraction() {
N obj_cite_number_poem,
Ma dochead_make_aa,
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(an_object) == string[string]));
static assert(is(typeof(type) == int[string]));
@@ -2227,94 +2310,12 @@ template SiSUdocAbstraction() {
}
}
}
- void _group_block_(L,O,T)(
- return ref L line,
- return ref O an_object,
- return ref T type
- ) {
- debug(asserts){
- static assert(is(typeof(line) == char[]));
- static assert(is(typeof(an_object) == string[string]));
- static assert(is(typeof(type) == int[string]));
- }
- auto rgx = Rgx();
- if (type["curly_group"] == State.on) {
- if (matchFirst(line, rgx.block_curly_group_close)) {
- debug(group) { // group (curly) close
- writeln(line);
- }
- type["blocks"] = TriState.closing;
- type["group"] = TriState.closing;
- type["curly_group"] = TriState.off;
- } else {
- debug(group) { // group
- writeln(line);
- }
- an_object[an_object_key] ~= line ~= "\n"; // build group array (or string)
- }
- } else if (type["tic_group"] == TriState.on) {
- if (matchFirst(line, rgx.block_tic_close)) {
- debug(group) { // group (tic) close
- writeln(line);
- }
- type["blocks"] = TriState.closing;
- type["group"] = TriState.closing;
- type["tic_group"] = TriState.off;
- } else {
- debug(group) { // group
- writeln(line);
- }
- an_object[an_object_key] ~= line ~= "\n"; // build group array (or string)
- }
- }
- }
- void _block_block_(L,O,T)(
- return ref L line,
- return ref O an_object,
- return ref T type
- ) {
- debug(asserts){
- static assert(is(typeof(line) == char[]));
- static assert(is(typeof(an_object) == string[string]));
- static assert(is(typeof(type) == int[string]));
- }
- auto rgx = Rgx();
- if (type["curly_block"] == TriState.on) {
- if (matchFirst(line, rgx.block_curly_block_close)) {
- debug(block) { // block (curly) close
- writeln(line);
- }
- type["blocks"] = TriState.closing;
- type["block"] = TriState.closing;
- type["curly_block"] = TriState.off;
- } else {
- debug(block) { // block
- writeln(line);
- }
- an_object[an_object_key] ~= line ~= "\n"; // build block array (or string)
- }
- } else if (type["tic_block"] == TriState.on) {
- if (matchFirst(line, rgx.block_tic_close)) {
- debug(block) { // block (tic) close
- writeln(line);
- }
- type["blocks"] = TriState.closing;
- type["block"] = TriState.closing;
- type["tic_block"] = TriState.off;
- } else {
- debug(block) { // block
- writeln(line);
- }
- an_object[an_object_key] ~= line ~= "\n"; // build block array (or string)
- }
- }
- }
void _quote_block_(L,O,T)(
return ref L line,
return ref O an_object,
return ref T type
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(an_object) == string[string]));
static assert(is(typeof(type) == int[string]));
@@ -2325,8 +2326,8 @@ template SiSUdocAbstraction() {
debug(quote) { // quote (curly) close
writeln(line);
}
- type["blocks"] = TriState.closing;
- type["quote"] = TriState.closing;
+ type["blocks"] = TriState.closing;
+ type["quote"] = TriState.closing;
type["curly_quote"] = TriState.off;
} else {
debug(quote) {
@@ -2339,8 +2340,8 @@ template SiSUdocAbstraction() {
debug(quote) { // quote (tic) close
writeln(line);
}
- type["blocks"] = TriState.closing;
- type["quote"] = TriState.closing;
+ type["blocks"] = TriState.closing;
+ type["quote"] = TriState.closing;
type["tic_quote"] = TriState.off;
} else {
debug(quote) {
@@ -2355,7 +2356,7 @@ template SiSUdocAbstraction() {
return ref O an_object,
return ref T type
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(an_object) == string[string]));
static assert(is(typeof(type) == int[string]));
@@ -2392,8 +2393,8 @@ template SiSUdocAbstraction() {
}
}
void _block_flag_line_empty_(B)(
- B bookindex_extract_hash,
- char[] line,
+ B bookindex_extract_hash,
+ char[] line,
return ref string[string] an_object,
return ref ObjGenericComposite[] the_document_body_section,
return ref string[][string][string] bookindex_unordered_hashes,
@@ -2414,14 +2415,18 @@ template SiSUdocAbstraction() {
"code block status: closed"
);
assertions_flag_types_block_status_none_or_closed(type);
- if (type["code"] == TriState.closing) {
+ if (type["group"] == TriState.closing) {
obj_cite_number =
ocn_emit(type["ocn_status"]);
an_object["bookindex_nugget"] =
("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
bookindex_unordered_hashes =
- bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
- an_object["is"] = "code";
+ bookindex_extract_hash.bookindex_nugget_hash(
+ an_object["bookindex_nugget"],
+ obj_cite_number,
+ segment_anchor_tag_that_object_belongs_to
+ );
+ an_object["is"] = "group";
auto comp_obj_location =
node_construct.node_location_emitter(
content_non_header,
@@ -2435,57 +2440,33 @@ template SiSUdocAbstraction() {
obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa);
an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];
- comp_obj_code = comp_obj_code.init;
- comp_obj_code.use = "body";
- comp_obj_code.is_of = "block";
- comp_obj_code.is_a = "code";
- comp_obj_code.ocn = obj_cite_number;
- comp_obj_code.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
- comp_obj_code.text = an_object["substantive"];
- comp_obj_code.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
- comp_obj_code.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
- comp_obj_code.inline_links = substantive_obj_misc_tuple[sObj.links];
- the_document_body_section ~= comp_obj_code;
+ comp_obj_block = comp_obj_block.init;
+ comp_obj_block.use = "body";
+ comp_obj_block.is_of = "block";
+ comp_obj_block.is_a = "group";
+ comp_obj_block.ocn = obj_cite_number;
+ comp_obj_block.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ comp_obj_block.text = an_object["substantive"];
+ comp_obj_block.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
+ comp_obj_block.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
+ comp_obj_block.inline_links = substantive_obj_misc_tuple[sObj.links];
+ the_document_body_section ~= comp_obj_block;
+ type["blocks"] = TriState.off;
+ type["group"] = TriState.off;
object_reset(an_object);
processing.remove("verse");
++cntr;
- type["blocks"] = TriState.off;
- type["code"] = TriState.off;
- } else if (type["poem"] == TriState.closing) {
+ } else if (type["block"] == TriState.closing) {
+ obj_cite_number = ocn_emit(type["ocn_status"]);
an_object["bookindex_nugget"] =
("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
bookindex_unordered_hashes =
- bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
- an_object["is"] = "verse"; // check also
- auto comp_obj_location =
- node_construct.node_location_emitter(
- content_non_header,
- segment_anchor_tag_that_object_belongs_to,
+ bookindex_extract_hash.bookindex_nugget_hash(
+ an_object["bookindex_nugget"],
obj_cite_number,
- cntr,
- heading_ptr-1,
- an_object["is"]
+ segment_anchor_tag_that_object_belongs_to
);
- comp_obj_poem_ocn = comp_obj_poem_ocn.init;
- comp_obj_poem_ocn.use = "body";
- comp_obj_poem_ocn.is_of = "block";
- comp_obj_poem_ocn.is_a = "poem";
- comp_obj_poem_ocn.ocn = obj_cite_number;
- comp_obj_poem_ocn.obj_cite_number = (obj_cite_number_poem["start"], obj_cite_number_poem["end"]);
- comp_obj_poem_ocn.text = ""; // an_object["substantive"];
- the_document_body_section ~= comp_obj_poem_ocn;
- object_reset(an_object);
- processing.remove("verse");
- type["blocks"] = TriState.off;
- type["poem"] = TriState.off;
- } else if (type["table"] == TriState.closing) {
- obj_cite_number =
- ocn_emit(type["ocn_status"]);
- an_object["bookindex_nugget"] =
- ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
- bookindex_unordered_hashes =
- bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
- an_object["is"] = "table";
+ an_object["is"] = "block";
auto comp_obj_location =
node_construct.node_location_emitter(
content_non_header,
@@ -2494,7 +2475,7 @@ template SiSUdocAbstraction() {
cntr,
heading_ptr-1,
an_object["is"]
- );
+ );
auto substantive_obj_misc_tuple =
obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa);
an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
@@ -2502,7 +2483,7 @@ template SiSUdocAbstraction() {
comp_obj_block = comp_obj_block.init;
comp_obj_block.use = "body";
comp_obj_block.is_of = "block";
- comp_obj_block.is_a = "table";
+ comp_obj_block.is_a = "block";
comp_obj_block.ocn = obj_cite_number;
comp_obj_block.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
comp_obj_block.text = an_object["substantive"];
@@ -2510,19 +2491,23 @@ template SiSUdocAbstraction() {
comp_obj_block.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
comp_obj_block.inline_links = substantive_obj_misc_tuple[sObj.links];
the_document_body_section ~= comp_obj_block;
+ type["blocks"] = TriState.off;
+ type["block"] = TriState.off;
object_reset(an_object);
processing.remove("verse");
++cntr;
- type["blocks"] = TriState.off;
- type["table"] = TriState.off;
- } else if (type["group"] == TriState.closing) {
+ } else if (type["code"] == TriState.closing) {
obj_cite_number =
ocn_emit(type["ocn_status"]);
an_object["bookindex_nugget"] =
("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
bookindex_unordered_hashes =
- bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
- an_object["is"] = "group";
+ bookindex_extract_hash.bookindex_nugget_hash(
+ an_object["bookindex_nugget"],
+ obj_cite_number,
+ segment_anchor_tag_that_object_belongs_to
+ );
+ an_object["is"] = "code";
auto comp_obj_location =
node_construct.node_location_emitter(
content_non_header,
@@ -2536,29 +2521,32 @@ template SiSUdocAbstraction() {
obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa);
an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];
- comp_obj_block = comp_obj_block.init;
- comp_obj_block.use = "body";
- comp_obj_block.is_of = "block";
- comp_obj_block.is_a = "group";
- comp_obj_block.ocn = obj_cite_number;
- comp_obj_block.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
- comp_obj_block.text = an_object["substantive"];
- comp_obj_block.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
- comp_obj_block.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
- comp_obj_block.inline_links = substantive_obj_misc_tuple[sObj.links];
- the_document_body_section ~= comp_obj_block;
+ comp_obj_code = comp_obj_code.init;
+ comp_obj_code.use = "body";
+ comp_obj_code.is_of = "block";
+ comp_obj_code.is_a = "code";
+ comp_obj_code.ocn = obj_cite_number;
+ comp_obj_code.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ comp_obj_code.text = an_object["substantive"];
+ comp_obj_code.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
+ comp_obj_code.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
+ comp_obj_code.inline_links = substantive_obj_misc_tuple[sObj.links];
+ the_document_body_section ~= comp_obj_code;
+ type["blocks"] = TriState.off;
+ type["code"] = TriState.off;
object_reset(an_object);
processing.remove("verse");
++cntr;
- type["blocks"] = TriState.off;
- type["group"] = TriState.off;
- } else if (type["block"] == TriState.closing) {
- obj_cite_number = ocn_emit(type["ocn_status"]);
+ } else if (type["poem"] == TriState.closing) {
an_object["bookindex_nugget"] =
("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
bookindex_unordered_hashes =
- bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
- an_object["is"] = "block";
+ bookindex_extract_hash.bookindex_nugget_hash(
+ an_object["bookindex_nugget"],
+ obj_cite_number,
+ segment_anchor_tag_that_object_belongs_to
+ );
+ an_object["is"] = "verse"; // check also
auto comp_obj_location =
node_construct.node_location_emitter(
content_non_header,
@@ -2567,15 +2555,48 @@ template SiSUdocAbstraction() {
cntr,
heading_ptr-1,
an_object["is"]
- );
+ );
+ comp_obj_poem_ocn = comp_obj_poem_ocn.init;
+ comp_obj_poem_ocn.use = "body";
+ comp_obj_poem_ocn.is_of = "block";
+ comp_obj_poem_ocn.is_a = "poem";
+ comp_obj_poem_ocn.ocn = obj_cite_number;
+ comp_obj_poem_ocn.obj_cite_number = (obj_cite_number_poem["start"], obj_cite_number_poem["end"]);
+ comp_obj_poem_ocn.text = ""; // an_object["substantive"];
+ the_document_body_section ~= comp_obj_poem_ocn;
+ type["blocks"] = TriState.off;
+ type["poem"] = TriState.off;
+ object_reset(an_object);
+ processing.remove("verse");
+ } else if (type["quote"] == TriState.closing) {
+ obj_cite_number =
+ ocn_emit(type["ocn_status"]);
+ an_object["bookindex_nugget"] =
+ ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
+ bookindex_unordered_hashes =
+ bookindex_extract_hash.bookindex_nugget_hash(
+ an_object["bookindex_nugget"],
+ obj_cite_number,
+ segment_anchor_tag_that_object_belongs_to
+ );
+ an_object["is"] = "quote";
+ auto comp_obj_location =
+ node_construct.node_location_emitter(
+ content_non_header,
+ segment_anchor_tag_that_object_belongs_to,
+ obj_cite_number,
+ cntr,
+ heading_ptr-1,
+ an_object["is"]
+ );
auto substantive_obj_misc_tuple =
- obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa);
- an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
+ obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa); // ...
+ an_object["substantive"] = substantive_obj_misc_tuple[sObj.content]; // ...
anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];
comp_obj_block = comp_obj_block.init;
comp_obj_block.use = "body";
comp_obj_block.is_of = "block";
- comp_obj_block.is_a = "block";
+ comp_obj_block.is_a = "quote";
comp_obj_block.ocn = obj_cite_number;
comp_obj_block.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
comp_obj_block.text = an_object["substantive"];
@@ -2587,15 +2608,19 @@ template SiSUdocAbstraction() {
processing.remove("verse");
++cntr;
type["blocks"] = TriState.off;
- type["block"] = TriState.off;
- } else if (type["quote"] == TriState.closing) {
+ type["quote"] = TriState.off;
+ } else if (type["table"] == TriState.closing) {
obj_cite_number =
ocn_emit(type["ocn_status"]);
an_object["bookindex_nugget"] =
("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
bookindex_unordered_hashes =
- bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
- an_object["is"] = "quote";
+ bookindex_extract_hash.bookindex_nugget_hash(
+ an_object["bookindex_nugget"],
+ obj_cite_number,
+ segment_anchor_tag_that_object_belongs_to
+ );
+ an_object["is"] = "table";
auto comp_obj_location =
node_construct.node_location_emitter(
content_non_header,
@@ -2606,13 +2631,13 @@ template SiSUdocAbstraction() {
an_object["is"]
);
auto substantive_obj_misc_tuple =
- obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa); // ...
- an_object["substantive"] = substantive_obj_misc_tuple[sObj.content]; // ...
+ obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa);
+ an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];
comp_obj_block = comp_obj_block.init;
comp_obj_block.use = "body";
comp_obj_block.is_of = "block";
- comp_obj_block.is_a = "quote";
+ comp_obj_block.is_a = "table";
comp_obj_block.ocn = obj_cite_number;
comp_obj_block.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
comp_obj_block.text = an_object["substantive"];
@@ -2620,11 +2645,11 @@ template SiSUdocAbstraction() {
comp_obj_block.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
comp_obj_block.inline_links = substantive_obj_misc_tuple[sObj.links];
the_document_body_section ~= comp_obj_block;
+ type["blocks"] = TriState.off;
+ type["table"] = TriState.off;
object_reset(an_object);
processing.remove("verse");
++cntr;
- type["blocks"] = TriState.off;
- type["quote"] = TriState.off;
}
}
auto _book_index_(L,I,O,T,B)(
@@ -2634,7 +2659,7 @@ template SiSUdocAbstraction() {
return ref T type,
B opt_action_bool,
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(book_idx_tmp) == string));
static assert(is(typeof(an_object) == string[string]));
@@ -2693,7 +2718,7 @@ template SiSUdocAbstraction() {
return ref R heading_match_rgx,
return ref T type
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(dochead_make_identify_unmarked_headings) == string));
static assert(is(typeof(heading_match_str) == string[string]));
@@ -2784,7 +2809,7 @@ template SiSUdocAbstraction() {
return ref R heading_match_rgx,
return ref T type
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(line_occur) == int[string]));
static assert(is(typeof(heading_match_rgx) == Regex!(char)[string]));
@@ -2850,7 +2875,7 @@ template SiSUdocAbstraction() {
return ref T type,
return ref Me dochead_meta_aa,
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(line_occur) == int[string]));
static assert(is(typeof(an_object) == string[string]));
@@ -3004,7 +3029,7 @@ template SiSUdocAbstraction() {
return ref T type,
return ref C line_occur,
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(line) == char[]));
static assert(is(typeof(an_object) == string[string]));
static assert(is(typeof(an_object_key) == string));
@@ -3105,7 +3130,7 @@ template SiSUdocAbstraction() {
n_foot_sp_plus = 0;
}
string url_links(Ot)(Ot obj_txt_in) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
/+ url matched +/
@@ -3159,7 +3184,7 @@ template SiSUdocAbstraction() {
return obj_txt_in;
}
auto footnotes_endnotes_markup_and_number_or_stars(Ot)(Ot obj_txt_in, bool reset_note_numbers) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
/+ endnotes (regular) +/
@@ -3216,7 +3241,7 @@ template SiSUdocAbstraction() {
}
private auto object_notes_and_links_(Ot)(Ot obj_txt_in, bool reset_note_numbers=false)
in {
- debug(asserts){
+ debug(asserts) {
assert(is(typeof(obj_txt_in) == string));
}
}
@@ -3270,17 +3295,18 @@ template SiSUdocAbstraction() {
}
invariant() {
}
- auto para(Ot)(Ot obj_txt_in)
+ auto munge_heading(Ot)(Ot obj_txt_in, bool reset_note_numbers=false)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
obj_txt["munge"]=(obj_txt_in)
- .replaceFirst(rgx.para_attribs, "")
- .replaceFirst(rgx.obj_cite_number_off_all, "");
- auto t = object_notes_and_links_(obj_txt["munge"]);
+ .replaceFirst(rgx.heading, "")
+ .replaceFirst(rgx.obj_cite_number_off_all, "")
+ .strip;
+ auto t = object_notes_and_links_(obj_txt["munge"], reset_note_numbers);
debug(munge) {
writeln(__LINE__);
writeln(obj_txt_in);
@@ -3289,18 +3315,19 @@ template SiSUdocAbstraction() {
}
return t;
}
- auto heading(Ot)(Ot obj_txt_in, bool reset_note_numbers=false)
+ invariant() {
+ }
+ auto munge_para(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
obj_txt["munge"]=(obj_txt_in)
- .replaceFirst(rgx.heading, "")
- .replaceFirst(rgx.obj_cite_number_off_all, "")
- .strip;
- auto t = object_notes_and_links_(obj_txt["munge"], reset_note_numbers);
+ .replaceFirst(rgx.para_attribs, "")
+ .replaceFirst(rgx.obj_cite_number_off_all, "");
+ auto t = object_notes_and_links_(obj_txt["munge"]);
debug(munge) {
writeln(__LINE__);
writeln(obj_txt_in);
@@ -3309,22 +3336,7 @@ template SiSUdocAbstraction() {
}
return t;
}
- invariant() {
- }
- string code(Ot)(Ot obj_txt_in)
- in {
- debug(asserts){
- assert(is(typeof(obj_txt_in) == string));
- }
- }
- body {
- obj_txt_in = (obj_txt_in).replaceAll(rgx.two_spaces, mkup.nbsp ~ mkup.nbsp);
- obj_txt["munge"] = obj_txt_in;
- return obj_txt["munge"];
- }
- invariant() {
- }
- auto group(string obj_txt_in)
+ auto munge_group(string obj_txt_in)
in { }
body {
obj_txt["munge"]=obj_txt_in;
@@ -3333,9 +3345,9 @@ template SiSUdocAbstraction() {
}
invariant() {
}
- auto block(Ot)(Ot obj_txt_in)
+ auto munge_block(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
@@ -3346,9 +3358,9 @@ template SiSUdocAbstraction() {
}
invariant() {
}
- auto verse(Ot)(Ot obj_txt_in)
+ auto munge_verse(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
@@ -3359,9 +3371,22 @@ template SiSUdocAbstraction() {
}
invariant() {
}
- string quote(Ot)(Ot obj_txt_in)
+ string munge_code(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
+ assert(is(typeof(obj_txt_in) == string));
+ }
+ }
+ body {
+ obj_txt_in = (obj_txt_in).replaceAll(rgx.two_spaces, mkup.nbsp ~ mkup.nbsp);
+ obj_txt["munge"] = obj_txt_in;
+ return obj_txt["munge"];
+ }
+ invariant() {
+ }
+ string munge_table(Ot)(Ot obj_txt_in)
+ in {
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
@@ -3371,9 +3396,9 @@ template SiSUdocAbstraction() {
}
invariant() {
}
- string table(Ot)(Ot obj_txt_in)
+ string munge_quote(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
@@ -3383,9 +3408,9 @@ template SiSUdocAbstraction() {
}
invariant() {
}
- string comment(Ot)(Ot obj_txt_in)
+ string munge_comment(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
@@ -3406,15 +3431,15 @@ template SiSUdocAbstraction() {
Ma dochead_make_aa
)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_) == string[string]));
static assert(is(typeof(obj_key_) == string));
static assert(is(typeof(dochead_make_aa) == string[string][string]));
}
}
body {
- obj_txt["munge"]=obj_[obj_key_].dup;
- obj_txt["munge"]=(match(obj_["is"], ctRegex!(`verse|code`)))
+ obj_txt["munge"] = obj_[obj_key_].dup;
+ obj_txt["munge"] = (match(obj_["is"], ctRegex!(`verse|code`)))
? obj_txt["munge"]
: strip(obj_txt["munge"]);
static __gshared string[] anchor_tags_ = [];
@@ -3435,37 +3460,38 @@ template SiSUdocAbstraction() {
} else if (obj_["lev"] == "1") {
writeln("heading anchor tag missing: ", obj_txt["munge"]);
}
- x =munge.heading(obj_txt["munge"], reset_note_numbers);
+ x =munge.munge_heading(obj_txt["munge"], reset_note_numbers);
reset_note_numbers=false;
goto default;
case "para":
- x = munge.para(obj_txt["munge"]);
+ x = munge.munge_para(obj_txt["munge"]);
goto default;
case "group":
- x = munge.group(obj_txt["munge"]);
+ x = munge.munge_group(obj_txt["munge"]);
goto default;
case "block":
- x = munge.block(obj_txt["munge"]);
+ x = munge.munge_block(obj_txt["munge"]);
goto default;
case "verse":
- x = munge.verse(obj_txt["munge"]);
+ x = munge.munge_verse(obj_txt["munge"]);
goto default;
case "code":
- obj_txt["munge"]=munge.code(obj_txt["munge"]);
- break;
- case "quote":
- obj_txt["munge"]=munge.quote(obj_txt["munge"]);
+ obj_txt["munge"] = munge.munge_code(obj_txt["munge"]);
break;
case "table":
- obj_txt["munge"]=munge.table(obj_txt["munge"]);
+ obj_txt["munge"] = munge.munge_table(obj_txt["munge"]);
+ break;
+ case "quote":
+ obj_txt["munge"] = munge.munge_quote(obj_txt["munge"]);
break;
case "comment":
- obj_txt["munge"]=munge.comment(obj_txt["munge"]);
+ obj_txt["munge"] = munge.munge_comment(obj_txt["munge"]);
break;
case "doc_end_reset":
munge.initialize_note_numbers();
break;
default:
+ /+ para, heading, group, block, verse +/
obj_txt["munge"]=x[0];
obj_notes_and_links["notes_reg"] = x[1];
obj_notes_and_links["notes_star"] = x[2];
@@ -3487,7 +3513,7 @@ template SiSUdocAbstraction() {
auto _clean_heading_toc_(Toc)(
Toc heading_toc_,
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(heading_toc_) == char[]));
}
auto m = matchFirst(cast(char[]) heading_toc_, rgx.heading);
@@ -3505,7 +3531,7 @@ template SiSUdocAbstraction() {
Toc the_table_of_contents_section,
)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_) == string[string]));
static assert(is(typeof(dochead_make_aa) == string[string][string]));
static assert(is(typeof(segment_anchor_tag_that_object_belongs_to) == string));
@@ -3662,13 +3688,12 @@ template SiSUdocAbstraction() {
O obj_,
Ma dochead_make_aa
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(munge_) == string));
static assert(is(typeof(obj_) == string[string]));
static assert(is(typeof(dochead_make_aa) == string[string][string]));
}
if (dochead_make_aa["make"]["num_top"].length > 0) {
- // if (!(match(munge_, rgx.heading_anchor_tag))) {
static __gshared int heading_num_top_level=9;
static __gshared int heading_num_depth=2;
static __gshared int heading_num_0 = 0;
@@ -3796,7 +3821,7 @@ template SiSUdocAbstraction() {
static string _make_segment_anchor_tags_if_none_provided(M,Lv)(M munge_, Lv lev_) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(munge_) == string));
static assert(is(typeof(lev_) == string));
}
@@ -3875,7 +3900,7 @@ template SiSUdocAbstraction() {
OH _comp_obj_heading,
)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_is_) == string));
static assert(is(typeof(obj_raw) == string));
static assert(is(typeof(_comp_obj_heading) == ObjGenericComposite));
@@ -3942,7 +3967,7 @@ template SiSUdocAbstraction() {
string _obj_attributes;
string _para_and_blocks(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
@@ -3970,121 +3995,121 @@ template SiSUdocAbstraction() {
}
return _obj_attributes;
}
- string _para(Ot)(Ot obj_txt_in)
+ string _heading(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"para\","
- ~ " \"is\": \"para\"";
+ ~ " \"is\": \"heading\"";
return _obj_attributes;
}
invariant() {
}
- string _heading(Ot)(Ot obj_txt_in)
+ string _para(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"para\","
- ~ " \"is\": \"heading\"";
+ ~ " \"is\": \"para\"";
return _obj_attributes;
}
invariant() {
}
- string _code(Ot)(Ot obj_txt_in)
+ string _group(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"block\","
- ~ " \"is\": \"code\"";
+ ~ " \"is\": \"group\"";
return _obj_attributes;
}
invariant() {
}
- string _group(Ot)(Ot obj_txt_in)
+ string _block(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"block\","
- ~ " \"is\": \"group\"";
+ ~ " \"is\": \"block\"";
return _obj_attributes;
}
invariant() {
}
- string _block(Ot)(Ot obj_txt_in)
+ string _verse(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"block\","
- ~ " \"is\": \"block\"";
+ ~ " \"is\": \"verse\"";
return _obj_attributes;
}
invariant() {
}
- string _verse(Ot)(Ot obj_txt_in)
+ string _code(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"block\","
- ~ " \"is\": \"verse\"";
+ ~ " \"is\": \"code\"";
return _obj_attributes;
}
invariant() {
}
- string _quote(Ot)(Ot obj_txt_in)
+ string _table(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"block\","
- ~ " \"is\": \"quote\"";
+ ~ " \"is\": \"table\"";
return _obj_attributes;
}
invariant() {
}
- string _table(Ot)(Ot obj_txt_in)
+ string _quote(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
body {
_obj_attributes = " \"use\": \"content\","
~ " \"of\": \"block\","
- ~ " \"is\": \"table\"";
+ ~ " \"is\": \"quote\"";
return _obj_attributes;
}
invariant() {
}
string _comment(Ot)(Ot obj_txt_in)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(obj_txt_in) == string));
}
}
@@ -4101,7 +4126,7 @@ template SiSUdocAbstraction() {
Oi obj_is_,
OH _comp_obj_heading,
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(_obj_attrib) == string));
static assert(is(typeof(obj_is_) == string));
static assert(is(typeof(_comp_obj_heading) == ObjGenericComposite));
@@ -4139,7 +4164,7 @@ template SiSUdocAbstraction() {
S segment_anchor_tag,
)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(bookindex_section) == string));
static assert(is(typeof(obj_cite_number) == int));
}
@@ -4213,7 +4238,7 @@ template SiSUdocAbstraction() {
auto bookindex_report_indented(BI)(
BI bookindex_unordered_hashes
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(bookindex_unordered_hashes) == string[][string][string]));
}
auto mainkeys=
@@ -4244,7 +4269,7 @@ template SiSUdocAbstraction() {
auto bookindex_write_section(BI)(
BI bookindex_unordered_hashes
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(bookindex_unordered_hashes) == string[][string][string]));
}
auto mainkeys=bookindex_unordered_hashes.byKey.array.sort().release;
@@ -4275,7 +4300,7 @@ template SiSUdocAbstraction() {
N obj_cite_number,
B opt_action_bool,
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(bookindex_unordered_hashes) == string[][string][string]));
static assert(is(typeof(obj_cite_number) == int));
static assert(is(typeof(opt_action_bool) == bool[string]));
@@ -4597,7 +4622,7 @@ template SiSUdocAbstraction() {
return ref BJ bib_arr_json
)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(biblio_unsorted_incomplete) == string[]));
static assert(is(typeof(bib_arr_json) == JSONValue[]));
}
@@ -4628,7 +4653,7 @@ template SiSUdocAbstraction() {
Bi biblio_unordered,
return ref BJ bib_arr_json
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(biblio_unordered) == string[]));
static assert(is(typeof(bib_arr_json) == JSONValue[]));
}
@@ -4659,7 +4684,7 @@ template SiSUdocAbstraction() {
return biblio_unsorted_array_of_json_objects;
}
final private JSONValue[] biblio_sort(BJ)(BJ biblio_unordered) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(biblio_unordered) == JSONValue[]));
}
JSONValue[] biblio_sorted_;
@@ -4677,7 +4702,7 @@ template SiSUdocAbstraction() {
return biblio_sorted_;
}
void biblio_debug(BJ)(BJ biblio_sorted) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(biblio_sorted) == JSONValue[]));
}
debug(biblio0) {
@@ -4704,7 +4729,7 @@ template SiSUdocAbstraction() {
I is_
)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(lev_markup_number) == string));
static assert(is(typeof(segment_anchor_tag) == string));
static assert(is(typeof(obj_cite_number_) == int));
@@ -4770,7 +4795,7 @@ template SiSUdocAbstraction() {
fL flag_links,
)
in {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(_text) == string));
static assert(is(typeof(lev) == string));
static assert(is(typeof(lev_markup_number) == string));
@@ -4949,7 +4974,7 @@ template SiSUdocAbstraction() {
O an_object,
Lv lv
) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(an_object) == string[string]));
static assert(is(typeof(lv) == int[string]));
}
@@ -5125,7 +5150,7 @@ template SiSUdocAbstraction() {
}
}
auto assertions_flag_types_block_status_none_or_closed(T)(T type) {
- debug(asserts){
+ debug(asserts) {
static assert(is(typeof(type) == int[string]));
}
assert(
diff --git a/src/sdp/ao_defaults.d b/src/sdp/ao_defaults.d
index a5fda94..b6a3eb9 100644
--- a/src/sdp/ao_defaults.d
+++ b/src/sdp/ao_defaults.d
@@ -260,37 +260,37 @@ template SiSUrgxInitFlags() {
/+ regex flags +/
int[string] flags_type_init() {
int[string] flags_type_init = [
- "make_headings" : 0,
- "header_make" : 0,
- "header_meta" : 0,
- "heading" : 0,
- "biblio_section" : 0,
- "glossary_section" : 0,
- "blurb_section" : 0,
- "para" : 0,
- "blocks" : 0, // 0..2 generic
- "code" : 0, // 0..2
- "poem" : 0, // 0..2
- "table" : 0, // 0..2
- "group" : 0, // 0..2
- "block" : 0, // 0..2
- "quote" : 0, // 0..2
- "verse_new" : 0,
- "curly_code" : 0,
- "curly_poem" : 0,
- "curly_table" : 0,
- "curly_group" : 0,
- "curly_block" : 0,
- "curly_quote" : 0,
- "tic_code" : 0,
- "tic_poem" : 0,
- "tic_table" : 0,
- "tic_group" : 0,
- "tic_block" : 0,
- "tic_quote" : 0,
- "ocn_status" : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings
- "ocn_status_multi_obj" : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings
- "book_index" : 0,
+ "make_headings" : 0,
+ "header_make" : 0,
+ "header_meta" : 0,
+ "heading" : 0,
+ "biblio_section" : 0,
+ "glossary_section" : 0,
+ "blurb_section" : 0,
+ "para" : 0,
+ "blocks" : 0, // 0..2 generic
+ "code" : 0, // 0..2
+ "poem" : 0, // 0..2
+ "table" : 0, // 0..2
+ "group" : 0, // 0..2
+ "block" : 0, // 0..2
+ "quote" : 0, // 0..2
+ "verse_new" : 0,
+ "curly_code" : 0,
+ "curly_poem" : 0,
+ "curly_group" : 0,
+ "curly_block" : 0,
+ "curly_quote" : 0,
+ "curly_table" : 0,
+ "tic_code" : 0,
+ "tic_poem" : 0,
+ "tic_group" : 0,
+ "tic_block" : 0,
+ "tic_quote" : 0,
+ "tic_table" : 0,
+ "ocn_status" : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings
+ "ocn_status_multi_obj" : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings
+ "book_index" : 0,
];
return flags_type_init;
}
diff --git a/src/sdp/ao_read_source_files.d b/src/sdp/ao_read_source_files.d
index a6459b2..4acfe41 100644
--- a/src/sdp/ao_read_source_files.d
+++ b/src/sdp/ao_read_source_files.d
@@ -99,7 +99,7 @@ template SiSUrawMarkupContent() {
}
final private char[][] markupSourceLineArray(in char[] src_text) {
char[][] source_line_arr =
- split(cast(char[]) src_text, rgx.newline_eol_strip_preceeding);
+ split(cast(char[]) src_text, rgx.newline_eol_strip_preceding);
return source_line_arr;
}
auto markupSourceReadIn(in string fn_src) {
diff --git a/src/sdp/ao_rgx.d b/src/sdp/ao_rgx.d
index 20535d0..109b0cf 100644
--- a/src/sdp/ao_rgx.d
+++ b/src/sdp/ao_rgx.d
@@ -20,7 +20,7 @@ template SiSUrgxInit() {
static trailing_comma = ctRegex!(",[ ]*$");
static trailing_linebreak = ctRegex!(",[ ]{1,2}\\\\\\\\\n[ ]{4}$","m");
static newline_eol_delimiter = ctRegex!("\n");
- static newline_eol_strip_preceeding = ctRegex!("[ ]*\n");
+ static newline_eol_strip_preceding = ctRegex!("[ ]*\n");
static newline_eol_delimiter_only = ctRegex!("^\n");
static line_delimiter_ws_strip = ctRegex!("[ ]*\n[ ]*");
static para_delimiter = ctRegex!("\n[ ]*\n+");
diff --git a/src/sdp/output_html.d b/src/sdp/output_html.d
index d356ee5..cc330b2 100644
--- a/src/sdp/output_html.d
+++ b/src/sdp/output_html.d
@@ -464,54 +464,6 @@ template outputHTML() {
margin-left: 5%;
margin-right: 1%;
}
- #top_band {
- position: absolute;
- top: 0;
- bottom: 80px;
- width: 100%;
- }
- #top_band_search {
- position: absolute;
- top: 0px;
- right: 0px;
- margin-left: 75%;
- width: 20%;
- }
- #column_left {
- position: absolute;
- top: 80px;
- left: 0;
- margin-left: 1%;
- width: 20%;
- }
- #column_center {
- position: absolute;
- top: 80px;
- margin-left: 20%;
- width: 55%;
- }
- #column_right {
- position: absolute;
- top: 80px;
- right: 0px;
- margin-left: 75%;
- width: 25%;
- }
- #pane_major {
- position: absolute;
- top: 0px;
- left: 0;
- margin-left: 0;
- width: 80%;
- }
- #pane_minor {
- position: absolute;
- top: 0px;
- right: 0px;
- margin-left: 75%;
- width: 20%;
- background-color: #aaaaaa;
- }
.norm, .bold, .verse, .group, .block, .alt {
line-height: 133%;
margin-left: 0em;
@@ -946,66 +898,6 @@ template outputHTML() {
padding-left: 9em;
text-indent: 0em;
}
- p.it0 {
- margin-left: 0em;
- margin-top: 6px;
- margin-bottom: 0px;
- line-height: 100%;
- }
- p.it1 {
- margin-left: 1em;
- margin-top: 0px;
- margin-bottom: 0px;
- line-height: 100%;
- }
- p.it2 {
- margin-left: 2em;
- margin-top: 0px;
- margin-bottom: 0px;
- line-height: 100%;
- }
- p.it3 {
- margin-left: 3em;
- margin-top: 0px;
- margin-bottom: 0px;
- line-height: 100%;
- }
- p.it4 {
- margin-left: 4em;
- margin-top: 0px;
- margin-bottom: 0px;
- line-height: 100%;
- }
- p.it5 {
- margin-left: 5em;
- margin-top: 0px;
- margin-bottom: 0px;
- line-height: 100%;
- }
- p.it6 {
- margin-left: 6em;
- margin-top: 0px;
- margin-bottom: 0px;
- line-height: 100%;
- }
- p.it7 {
- margin-left: 7em;
- margin-top: 0px;
- margin-bottom: 0px;
- line-height: 100%;
- }
- p.it8 {
- margin-left: 8em;
- margin-top: 0px;
- margin-bottom: 0px;
- line-height: 100%;
- }
- p.it9 {
- margin-left: 9em;
- margin-bottom: 0px;
- margin-top: 0px;
- line-height: 100%;
- }
p.block { }
p.group { }
p.alt { }
@@ -1085,33 +977,6 @@ template outputHTML() {
margin-right: 0px;
text-align: center;
}
- p.pane, p.pane_title, p.pane_blurb, p.pane_link, p.pane_indent {
- font-size: 80%;
- margin-top: 0px;
- margin-bottom: 0px;
- margin-left: 2mm;
- margin-right: 4px;
- text-align: left;
- }
- p.pane { }
- p.pane_title {
- font-weight: bold;
- margin-bottom: 0px;
- }
- p.pane_blurb {
- font-size: 10px;
- margin-bottom: 0px;
- }
- p.pane_link {
- font-size: 10px;
- margin-bottom: 0px;
- margin-left: 4mm;
- }
- p.pane_indent {
- font-size: 10px;
- margin-bottom: 0px;
- margin-left: 4mm;
- }
p.concordance_word {
line-height: 150%;
font-weight: bold;
@@ -1145,35 +1010,6 @@ template outputHTML() {
margin-top: 1px;
margin-bottom: 3px;
}
- p.quickref {
- font-size: 10px;
- font-style: italic;
- margin-top: 0px;
- margin-bottom: 0px;
- color: #777777;
- margin-right: 5px;
- text-align: left;
- }
- p.bigref {
- font-size: 11px;
- font-weight: bold;
- margin-top: 0px;
- margin-bottom: 0px;
- color: #777777;
- margin-right: 5px;
- text-align: center;
- }
- p.letter {
- font-weight: bold;
- font-size: 80%;
- margin-left: 0em;
- margin-top: 2px;
- margin-bottom: 2px;
- margin-right: 6px;
- text-align: left;
- color: white;
- background: #880000;
- }
tt {
font-family: inconsolata, andale mono, courier new, courier, monospace;
background-color: #eeeeee;
@@ -1209,73 +1045,6 @@ template outputHTML() {
p.right,th.right,td.right {
text-align: right;
}
- #horizontal_links {
- background: #eeeeee;
- margin-left: 5%;
- margin-right: 5%;
- }
- #horizontal {
- margin: 0;
- padding: 0 0 0 10px;
- border-top: 1px solid #000077;
- border-bottom: 1px solid #000077;
- }
- #horizontal li {
- margin: 0 0 0 0;
- padding: 0 16px 0 0;
- display: inline;
- list-style-type: none;
- text-align: left;
- background: none;
- }
- #horizontal a {
- line-height: 12px;
- margin: 0 0 0 0;
- text-decoration: none;
- color: #000077;
- }
- #horizontal a.active, #horizontal a:hover {
- border-bottom: 2px solid #777777;
- padding-bottom: 2px;
- color: #000077;
- }
- #horizontal a:hover {
- color: #000077;
- }
- #document_versions {
- position: absolute;
- top: 10mm;
- right: 2%;
- width: 12%;
- float: right;
- }
- #vertical_links {
- position: absolute;
- top: 10mm;
- right: 0px;
- width: 20%;
- background: #dddddd;
- float: right;
- }
- #vertical {
- padding: 0 12px 0px 0px;
- margin-left: 2%;
- margin-right: 2%;
- }
- #vertical li {
- display: block;
- list-style-type: none;
- }
- #vertical a {
- line-height: 12px;
- text-decoration: none;
- color: #000077;
- }
- #vertical a.active, #vertical a:hover {
- border-bottom: 2px solid #777777;
- padding-bottom: 2px;
- color: #000077;
- }
ul, li {
list-style-type: none;
list-style: none;
@@ -1296,51 +1065,6 @@ template outputHTML() {
}
ul {
}
- li.bullet { margin-left: 1em; }
- li.i1 { margin-left: 2em; }
- li.i2 { margin-left: 3em; }
- li.i3 { margin-left: 4em; }
- li.i4 { margin-left: 5em; }
- li.i5 { margin-left: 6em; }
- li.i6 { margin-left: 7em; }
- li.i7 { margin-left: 8em; }
- li.i8 { margin-left: 9em; }
- li.i9 { margin-left: 10em; }
- li.doc, li.ref, li.refcenter {
- margin-top: 0px;
- margin-bottom: 0px;
- margin-right: 0px;
- font-size: 8px;
- font-style: normal;
- text-align: left;
- }
- li.doc {
- background: url(../image_sys/bullet_09.png) no-repeat 0px 6px;
- padding-left: 16px;
- margin-left: 10px;
- margin-right: 0px;
- }
- li.ref {
- background: none;
- padding-left: 0;
- margin-left: 0;
- color: #777777;
- }
- li.refcenter {
- background: url(../image_sys/bullet_09.png) no-repeat 0px 6px;
- padding-left: 20px;
- margin-left: 10%;
- font-size: 9px;
- color: #777777;
- text-align: center;
- }
- li.refbold {
- list-style-type: none;
- padding-left: 16px;
- margin-left: 0;
- margin-right: 10mm;
- font-weight: bold;
- }
h0, h1, h2, h3, h4, h5, h6, h7 {
font-weight: bold;
line-height: 120%;
@@ -1352,9 +1076,6 @@ template outputHTML() {
margin-top: 10px;
margin-bottom: 0px;
}
- h0.center, h1.center, h2.center, h3.center, h4.center, h5.center, h6.center, h7.center {
- text-align: center;
- }
h0 { font-size: 125%; }
h1 { font-size: 120%; }
h2 { font-size: 115%; }
@@ -1372,88 +1093,6 @@ template outputHTML() {
h7.i {margin-left: 8em;}
h8.i {margin-left: 9em;}
h9.i {margin-left: 10em;}
- h1.top_band {
- display: inline;
- text-align: left;
- margin-top: 0;
- margin-left: 4mm;
- text-indent: 0mm;
- font-weight: bold;
- font-size: 120%;
- }
- h2.top_band_tiny {
- font-size: 10px;
- font-weight: normal;
- margin-top: 0px;
- margin-left: 4mm;
- text-indent: 0mm;
- margin-bottom: 0px;
- color: #777777;
- margin-left: 140px;
- margin-right: 0px;
- text-align: left;
- }
- p.top_band {
- display: inline;
- text-align: left;
- margin-top: 0;
- margin-left: 140px;
- text-indent: 0mm;
- font-weight: bold;
- font-size: 120%;
- }
- p.top_band_tiny {
- font-size: 10px;
- margin-top: 0px;
- margin-bottom: 0px;
- color: #777777;
- margin-left: 140px;
- margin-right: 0px;
- text-align: left;
- }
- p.top_band_image {
- float: left;
- display: inline;
- text-align: left;
- margin-top: 0;
- margin-left: 1mm;
- text-indent: 0mm;
- margin-right: 1mm;
- }
- .banner, .subbanner {
- font-weight: bold;
- text-align: center;
- margin-left: 10mm;
- margin-right: 15mm;
- margin-top: 20px;
- margin-bottom: 10px;
- }
- h0.banner {
- font-size: 125%;
- }
- h1.banner {
- font-size: 120%;
- }
- h1.subbanner {
- font-size: 115%;
- }
- h2.banner {
- font-size: 110%;
- }
- h3.banner {
- color: #990000;
- font-size: 105%;
- }
- h4.banner {
- color: #ff0000;
- font-size: 100%;
- }
- h5.banner {
- }
- h6.banner {
- }
- h7.banner {
- }
.toc {
font-weight: normal;
margin-top: 6px;
@@ -1499,46 +1138,6 @@ template outputHTML() {
font-size: 85%;
line-height: 100%;
}
- .microtoc {
- margin-top: 2px;
- margin-bottom: 2px;
- }
- h0.microtoc {
- margin-left: 0mm;
- font-size: 120%;
- }
- h1.microtoc {
- margin-left: 0mm;
- font-size: 115%;
- }
- h2.microtoc {
- margin-left: 5mm;
- font-size: 110%;
- }
- h3.microtoc {
- margin-left: 10mm;
- font-size: 105%;
- }
- h4.microtoc {
- margin-left: 15mm;
- font-weight: normal;
- font-size: 100%;
- }
- h5.microtoc {
- margin-left: 20mm;
- font-weight: normal;
- font-size: 95%;
- }
- h6.microtoc {
- margin-left: 25mm;
- font-weight: normal;
- font-size: 90%;
- }
- h7.microtoc {
- margin-left: 30mm;
- font-weight: normal;
- font-size: 85%;
- }
.subtoc {
margin-right: 34%;
font-weight: normal;
@@ -1656,60 +1255,6 @@ template outputHTML() {
div.toc a:hover {
color: #000000;
background-color: #f9f9aa;
- }
- .minitoc {
- font-weight: normal;
- margin-top: 2px;
- margin-bottom: 2px;
- }
- h1.minitoc, h2.minitoc, h3.minitoc {
- margin-left: 0em;
- font-weight: bold;
- text-align: left;
- font-size: 90%;
- margin-top: 4px;
- margin-bottom: 4px;
- }
- h4.minitoc {
- margin-left: 0em;
- font-size: 90%;
- }
- h5.minitoc {
- margin-left: 1em;
- font-size: 85%;
- }
- h6.minitoc {
- margin-left: 2em;
- font-size: 85%;
- }
- h7.minitoc {
- margin-left: 3em;
- font-size: 80%;
- }
- h0.minitoc {
- margin-left: 0em;
- font-size: 90%;
- }
- h0.c, h1.c, h2.c, h3.c, h4.c, h5.c, h6.c, h7.c, p.c {
- text-align: center
- }
- h1.red, h2.red, h3.red, h4.red, h5.red, h6.red, h7.red {
- text-align: center;
- color: #ff0000;
- margin-left: 5mm;
- text-indent: 5mm;
- margin-top: 30px;
- margin-bottom: 20px;
- margin-right: 15mm;
- }
- h1.ruby, h2.ruby, h3.ruby, h4.ruby, h5.ruby, h6.ruby, h7.ruby {
- text-align: center;
- color: #990000;
- margin-left: 5mm;
- text-indent: 5mm;
- margin-top: 30px;
- margin-bottom: 20px;
- margin-right: 15mm;
}";
return css;
}
diff --git a/src/sdp/output_xhtmls.d b/src/sdp/output_xhtmls.d
index d39298c..dcbc8f8 100644
--- a/src/sdp/output_xhtmls.d
+++ b/src/sdp/output_xhtmls.d
@@ -30,7 +30,7 @@ template outputXHTMLs() {
.replaceAll(rgx.xhtml_ampersand, "&amp;")
.replaceAll(rgx.xhtml_less_than, "&lt;")
.replaceAll(rgx.xhtml_greater_than, "&gt;")
- .replaceAll(rgx.xhtml_line_break, "<br />");
+ .replaceAll(rgx.xhtml_line_break, "<br>");
return _txt;
}
string font_face(string _txt){