aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sisudoc/meta
diff options
context:
space:
mode:
Diffstat (limited to 'src/sisudoc/meta')
-rw-r--r--src/sisudoc/meta/conf_make_meta_json.d28
-rw-r--r--src/sisudoc/meta/conf_make_meta_structs.d26
-rw-r--r--src/sisudoc/meta/conf_make_meta_yaml.d62
-rw-r--r--src/sisudoc/meta/doc_debugs.d34
-rw-r--r--src/sisudoc/meta/metadoc.d26
-rw-r--r--src/sisudoc/meta/metadoc_curate.d24
-rw-r--r--src/sisudoc/meta/metadoc_curate_authors.d20
-rw-r--r--src/sisudoc/meta/metadoc_curate_topics.d20
-rw-r--r--src/sisudoc/meta/metadoc_from_src.d40
-rw-r--r--src/sisudoc/meta/metadoc_from_src_functions.d37
-rw-r--r--src/sisudoc/meta/metadoc_object_setter.d96
-rw-r--r--src/sisudoc/meta/metadoc_show_config.d56
-rw-r--r--src/sisudoc/meta/metadoc_show_make.d28
-rw-r--r--src/sisudoc/meta/metadoc_show_metadata.d28
-rw-r--r--src/sisudoc/meta/metadoc_show_summary.d30
-rw-r--r--src/sisudoc/meta/package.d24
-rw-r--r--src/sisudoc/meta/rgx.d18
-rw-r--r--src/sisudoc/meta/rgx_yaml.d (renamed from src/sisudoc/meta/rgx_yaml_tags.d)0
18 files changed, 296 insertions, 301 deletions
diff --git a/src/sisudoc/meta/conf_make_meta_json.d b/src/sisudoc/meta/conf_make_meta_json.d
index 44f2c5e..4e9e5cd 100644
--- a/src/sisudoc/meta/conf_make_meta_json.d
+++ b/src/sisudoc/meta/conf_make_meta_json.d
@@ -54,21 +54,19 @@
module sisudoc.meta.conf_make_meta_json;
@safe:
static template contentJSONtoSpineStruct() {
- import
- std.algorithm,
- std.array,
- std.exception,
- std.regex,
- std.stdio,
- std.string,
- std.typecons,
- std.utf,
- std.conv : to;
- import
- sisudoc.meta.conf_make_meta_structs,
- sisudoc.meta.conf_make_meta_json,
- sisudoc.meta.defaults,
- sisudoc.meta.rgx;
+ import std.algorithm;
+ import std.array;
+ import std.exception;
+ import std.regex;
+ import std.stdio;
+ import std.string;
+ import std.typecons;
+ import std.utf;
+ import std.conv : to;
+ import sisudoc.meta.conf_make_meta_structs;
+ import sisudoc.meta.conf_make_meta_json;
+ import sisudoc.meta.defaults;
+ import sisudoc.meta.rgx;
ConfComposite _struct_composite;
auto contentJSONtoSpineStruct(C,J,M)(C _struct_composite, J _json, M _manifested, string _identifier) {
mixin spineRgxIn;
diff --git a/src/sisudoc/meta/conf_make_meta_structs.d b/src/sisudoc/meta/conf_make_meta_structs.d
index 4738a57..9503c83 100644
--- a/src/sisudoc/meta/conf_make_meta_structs.d
+++ b/src/sisudoc/meta/conf_make_meta_structs.d
@@ -49,20 +49,18 @@
+/
module sisudoc.meta.conf_make_meta_structs;
@safe:
-import
- std.exception,
- std.json,
- std.path,
- std.regex,
- std.stdio,
- std.string,
- std.typecons,
- std.utf,
- std.conv : to;
-import
- sisudoc.meta.defaults,
- sisudoc.meta.rgx_yaml,
- sisudoc.meta.rgx;
+import std.exception;
+import std.json;
+import std.path;
+import std.regex;
+import std.stdio;
+import std.string;
+import std.typecons;
+import std.utf;
+import std.conv : to;
+import sisudoc.meta.defaults;
+import sisudoc.meta.rgx_yaml;
+import sisudoc.meta.rgx;
mixin spineRgxIn;
static auto rgx = RgxI();
mixin spineRgxYamlTags;
diff --git a/src/sisudoc/meta/conf_make_meta_yaml.d b/src/sisudoc/meta/conf_make_meta_yaml.d
index 98a92f9..4b56b51 100644
--- a/src/sisudoc/meta/conf_make_meta_yaml.d
+++ b/src/sisudoc/meta/conf_make_meta_yaml.d
@@ -54,22 +54,20 @@
module sisudoc.meta.conf_make_meta_yaml;
@safe:
template contentYAMLtoSpineStruct() {
- import
- std.algorithm,
- std.array,
- std.exception,
- std.path,
- std.regex,
- std.stdio,
- std.string,
- std.typecons,
- std.utf,
- std.conv : to;
- import
- sisudoc.meta.conf_make_meta_structs,
- sisudoc.meta.defaults,
- sisudoc.meta.rgx_yaml,
- sisudoc.meta.rgx;
+ import std.algorithm;
+ import std.array;
+ import std.exception;
+ import std.path;
+ import std.regex;
+ import std.stdio;
+ import std.string;
+ import std.typecons;
+ import std.utf;
+ import std.conv : to;
+ import sisudoc.meta.conf_make_meta_structs;
+ import sisudoc.meta.defaults;
+ import sisudoc.meta.rgx_yaml;
+ import sisudoc.meta.rgx;
ConfComposite _struct_composite;
@system ConfComposite contentYAMLtoSpineStruct(C,Y,M,O,Cfg)(
C _struct_composite,
@@ -896,9 +894,8 @@ template contentYAMLtoSpineStruct() {
}
template configParseYAMLreturnSpineStruct() {
import dyaml;
- import
- sisudoc.meta.conf_make_meta_structs,
- sisudoc.meta.conf_make_meta_json;
+ import sisudoc.meta.conf_make_meta_structs;
+ import sisudoc.meta.conf_make_meta_json;
mixin contentYAMLtoSpineStruct;
@system ConfComposite configParseYAMLreturnSpineStruct(T,M,O,Cfg)(
T _document_struct,
@@ -928,21 +925,18 @@ template configParseYAMLreturnSpineStruct() {
}
}
template docHeaderMakeAndMetaTupYamlExtractAndConvertToStruct() {
- import
- std.exception,
- std.regex,
- std.stdio,
- // std.traits,
- std.typecons,
- std.utf,
- std.conv : to;
- import
- dyaml;
- import
- sisudoc.meta.conf_make_meta_structs,
- sisudoc.meta.conf_make_meta_json,
- sisudoc.meta.rgx_yaml,
- sisudoc.meta.rgx;
+ import std.exception;
+ import std.regex;
+ import std.stdio;
+ // import std.traits;
+ import std.typecons;
+ import std.utf;
+ import std.conv : to;
+ import dyaml;
+ import sisudoc.meta.conf_make_meta_structs;
+ import sisudoc.meta.conf_make_meta_json;
+ import sisudoc.meta.rgx_yaml;
+ import sisudoc.meta.rgx;
mixin spineRgxIn;
mixin contentJSONtoSpineStruct;
static auto rgx = RgxI();
diff --git a/src/sisudoc/meta/doc_debugs.d b/src/sisudoc/meta/doc_debugs.d
index 35fd3de..b28ba2e 100644
--- a/src/sisudoc/meta/doc_debugs.d
+++ b/src/sisudoc/meta/doc_debugs.d
@@ -52,24 +52,22 @@
+/
module sisudoc.meta.doc_debugs;
template spineDebugs() {
- import
- sisudoc.meta.defaults,
- sisudoc.meta.rgx_files;
- import
- std.algorithm,
- std.array,
- std.container,
- std.exception,
- std.json,
- std.stdio,
- std.file,
- std.path,
- std.range,
- std.regex,
- std.string,
- std.typecons,
- std.utf,
- std.conv : to;
+ import sisudoc.meta.defaults;
+ import sisudoc.meta.rgx_files;
+ import std.algorithm;
+ import std.array;
+ import std.container;
+ import std.exception;
+ import std.json;
+ import std.stdio;
+ import std.file;
+ import std.path;
+ import std.range;
+ import std.regex;
+ import std.string;
+ import std.typecons;
+ import std.utf;
+ import std.conv : to;
auto spineDebugs(S,T)(
const S contents,
T doc_matters,
diff --git a/src/sisudoc/meta/metadoc.d b/src/sisudoc/meta/metadoc.d
index 5c3694e..ffe297e 100644
--- a/src/sisudoc/meta/metadoc.d
+++ b/src/sisudoc/meta/metadoc.d
@@ -50,20 +50,18 @@
module sisudoc.meta.metadoc;
@safe:
template spineAbstraction() {
- import
- std.datetime,
- std.digest.crc,
- std.digest.sha;
- import
- sisudoc.meta,
- sisudoc.meta.metadoc_from_src,
- sisudoc.meta.conf_make_meta_structs,
- sisudoc.meta.conf_make_meta_json,
- sisudoc.meta.defaults,
- sisudoc.io_in.paths_source,
- sisudoc.io_in.read_config_files,
- sisudoc.io_in.read_source_files,
- sisudoc.io_out.hub;
+ import std.datetime;
+ import std.digest.crc;
+ import std.digest.sha;
+ import sisudoc.meta;
+ import sisudoc.meta.metadoc_from_src;
+ import sisudoc.meta.conf_make_meta_structs;
+ import sisudoc.meta.conf_make_meta_json;
+ import sisudoc.meta.defaults;
+ import sisudoc.io_in.paths_source;
+ import sisudoc.io_in.read_config_files;
+ import sisudoc.io_in.read_source_files;
+ import sisudoc.io_out.hub;
mixin spineBiblio;
mixin outputHub;
enum makeMeta { make, meta }
diff --git a/src/sisudoc/meta/metadoc_curate.d b/src/sisudoc/meta/metadoc_curate.d
index bb7452a..da20b3e 100644
--- a/src/sisudoc/meta/metadoc_curate.d
+++ b/src/sisudoc/meta/metadoc_curate.d
@@ -54,19 +54,17 @@ template spineMetaDocCurate() {
T doc_matters,
H hvst,
) {
- import
- sisudoc.meta.defaults,
- sisudoc.meta.rgx;
- import
- std.array,
- std.exception,
- std.regex,
- std.stdio,
- std.string,
- std.typecons,
- std.uni,
- std.utf,
- std.conv : to;
+ import sisudoc.meta.defaults;
+ import sisudoc.meta.rgx;
+ import std.array;
+ import std.exception;
+ import std.regex;
+ import std.stdio;
+ import std.string;
+ import std.typecons;
+ import std.uni;
+ import std.utf;
+ import std.conv : to;
mixin InternalMarkup;
static auto mkup = InlineMarkup();
import sisudoc.io_out.paths_output;
diff --git a/src/sisudoc/meta/metadoc_curate_authors.d b/src/sisudoc/meta/metadoc_curate_authors.d
index c86d3e1..d8b5261 100644
--- a/src/sisudoc/meta/metadoc_curate_authors.d
+++ b/src/sisudoc/meta/metadoc_curate_authors.d
@@ -49,17 +49,15 @@
+/
module sisudoc.meta.metadoc_curate_authors;
@safe:
- import
- std.algorithm,
- std.array,
- std.exception,
- std.regex,
- std.stdio,
- std.string,
- std.conv : to;
- import
- sisudoc.meta.defaults,
- sisudoc.meta.rgx;
+ import std.algorithm;
+ import std.array;
+ import std.exception;
+ import std.regex;
+ import std.stdio;
+ import std.string;
+ import std.conv : to;
+ import sisudoc.meta.defaults;
+ import sisudoc.meta.rgx;
mixin spineCurateMetadata;
mixin InternalMarkup;
template spineMetaDocCuratesAuthors() {
diff --git a/src/sisudoc/meta/metadoc_curate_topics.d b/src/sisudoc/meta/metadoc_curate_topics.d
index fca3ff2..3045dcb 100644
--- a/src/sisudoc/meta/metadoc_curate_topics.d
+++ b/src/sisudoc/meta/metadoc_curate_topics.d
@@ -49,17 +49,15 @@
+/
module sisudoc.meta.metadoc_curate_topics;
@safe:
- import
- std.algorithm,
- std.array,
- std.exception,
- std.regex,
- std.stdio,
- std.string,
- std.conv : to;
- import
- sisudoc.meta.defaults,
- sisudoc.meta.rgx;
+ import std.algorithm;
+ import std.array;
+ import std.exception;
+ import std.regex;
+ import std.stdio;
+ import std.string;
+ import std.conv : to;
+ import sisudoc.meta.defaults;
+ import sisudoc.meta.rgx;
mixin spineCurateMetadata;
mixin InternalMarkup;
template spineMetaDocCuratesTopics() {
diff --git a/src/sisudoc/meta/metadoc_from_src.d b/src/sisudoc/meta/metadoc_from_src.d
index 4aa49dc..4240a3f 100644
--- a/src/sisudoc/meta/metadoc_from_src.d
+++ b/src/sisudoc/meta/metadoc_from_src.d
@@ -54,19 +54,17 @@ module sisudoc.meta.metadoc_from_src;
@safe:
template docAbstraction() {
// ↓ abstraction imports
- import
- std.algorithm,
- std.container,
- std.digest.sha,
- std.file,
- std.json,
- std.path;
- import
- sisudoc.meta,
- sisudoc.meta.defaults,
- sisudoc.meta.rgx,
- sisudoc.meta.metadoc_object_setter,
- sisudoc.meta.rgx;
+ import std.algorithm;
+ import std.container;
+ import std.digest.sha;
+ import std.file;
+ import std.json;
+ import std.path;
+ import sisudoc.meta;
+ import sisudoc.meta.defaults;
+ import sisudoc.meta.rgx;
+ import sisudoc.meta.metadoc_object_setter;
+ import sisudoc.meta.rgx;
public import sisudoc.meta.metadoc_from_src_functions;
mixin docAbstractionFunctions;
@system auto docAbstraction(CMM,Opt,Mf) (
@@ -214,8 +212,8 @@ template docAbstraction() {
}
if (conf_make_meta.make.substitute) {
foreach(substitution_pair; conf_make_meta.make.substitute) {
- writeln("regex to match: ", substitution_pair[Substitute.match]);
- writeln("substitution to make: ", substitution_pair[Substitute.markup]);
+ writeln("regex to match: ", substitution_pair[Substitute.match]);
+ writeln("substitution to make: ", substitution_pair[Substitute.markup]);
}
}
if (conf_make_meta.make.bold) {
@@ -772,7 +770,7 @@ template docAbstraction() {
comp_obj_.has.inline_links = substantive_obj_misc_struct.has_links;
comp_obj_.has.image_without_dimensions = substantive_obj_misc_struct.has_images_without_dimensions;
the_document_body_section ~= comp_obj_;
- tag_assoc = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc);
+ tag_assoc = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc);
{
ST_txt_by_line_common_reset _get = txt_by_line_common_reset_(line_occur, an_object, pith);
{
@@ -941,7 +939,7 @@ template docAbstraction() {
}
{ // document segnames
ST_segnames get_segnames;
- get_segnames = the_document_body_section.after_doc_determine_segnames(the_document_endnotes_section, the_document_glossary_section, the_document_bibliography_section, the_document_bookindex_section, the_document_blurb_section, segnames, html_segnames_ptr_cntr, html_segnames_ptr); //
+ get_segnames = the_document_body_section.after_doc_determine_segnames(the_document_endnotes_section, the_document_glossary_section, the_document_bibliography_section, the_document_bookindex_section, the_document_blurb_section, segnames, html_segnames_ptr_cntr, html_segnames_ptr);
segnames = get_segnames.segnames;
html_segnames_ptr_cntr = get_segnames.html_segnames_ptr_cntr;
html_segnames_ptr = get_segnames.html_segnames_ptr;
@@ -1378,36 +1376,42 @@ template docAbstraction() {
"scroll": ["head", "toc", "body",],
"seg": ["head", "toc", "body",],
"sql": ["head", "body",],
- "latex": ["head", "toc", "body",]
+ "latex": ["head", "toc", "body",],
+ "text": ["head", "toc", "body",],
];
if (document_the["endnotes"].length > 1) {
document_section_keys_sequenced["scroll"] ~= "endnotes";
document_section_keys_sequenced["seg"] ~= "endnotes";
document_section_keys_sequenced["latex"] ~= "endnotes";
+ document_section_keys_sequenced["text"] ~= "endnotes";
}
if (document_the["glossary"].length > 1) {
document_section_keys_sequenced["scroll"] ~= "glossary";
document_section_keys_sequenced["seg"] ~= "glossary";
document_section_keys_sequenced["sql"] ~= "glossary";
document_section_keys_sequenced["latex"] ~= "glossary";
+ document_section_keys_sequenced["text"] ~= "glossary";
}
if (document_the["bibliography"].length > 1) {
document_section_keys_sequenced["scroll"] ~= "bibliography";
document_section_keys_sequenced["seg"] ~= "bibliography";
document_section_keys_sequenced["sql"] ~= "bibliography";
document_section_keys_sequenced["latex"] ~= "bibliography";
+ document_section_keys_sequenced["text"] ~= "bibliography";
}
if (document_the["bookindex"].length > 1) {
document_section_keys_sequenced["scroll"] ~= "bookindex";
document_section_keys_sequenced["seg"] ~= "bookindex";
document_section_keys_sequenced["sql"] ~= "bookindex";
document_section_keys_sequenced["latex"] ~= "bookindex";
+ document_section_keys_sequenced["text"] ~= "bookindex";
}
if (document_the["blurb"].length > 1) {
document_section_keys_sequenced["scroll"] ~= "blurb";
document_section_keys_sequenced["seg"] ~= "blurb";
document_section_keys_sequenced["sql"] ~= "blurb";
document_section_keys_sequenced["latex"] ~= "blurb";
+ document_section_keys_sequenced["text"] ~= "blurb";
}
if ((opt_action.html)
|| (opt_action.html_scroll)
diff --git a/src/sisudoc/meta/metadoc_from_src_functions.d b/src/sisudoc/meta/metadoc_from_src_functions.d
index 3ae10d1..63143e9 100644
--- a/src/sisudoc/meta/metadoc_from_src_functions.d
+++ b/src/sisudoc/meta/metadoc_from_src_functions.d
@@ -2557,10 +2557,8 @@ template docAbstractionFunctions() {
CMM conf_make_meta,
Flag!"_new_doc" _new_doc
) {
- obj_txt["munge"] = obj_[obj_key_].dup;
- obj_txt["munge"] = (obj_["is"].match(ctRegex!(`verse|code`)))
- ? obj_txt["munge"]
- : obj_txt["munge"].strip;
+ obj_txt["munge"] = obj_[obj_key_].dup;
+ obj_txt["munge"] = (obj_["is"].match(ctRegex!(`verse|code`))) ? obj_txt["munge"] : obj_txt["munge"].strip;
if (_new_doc) {
anchor_tag = "";
}
@@ -2579,8 +2577,8 @@ template docAbstractionFunctions() {
|| (obj_["is"] == "group")
|| (obj_["is"] == "block")
|| (obj_["is"] == "verse")) {
- obj_txt["munge"] = (obj_txt["munge"]).inline_markup_faces;
- obj_txt["munge"] = (obj_txt["munge"]).links_and_images;
+ obj_txt["munge"] = (obj_txt["munge"]).inline_markup_faces;
+ obj_txt["munge"] = (obj_txt["munge"]).links_and_images;
}
switch (obj_["is"]) {
case "heading":
@@ -3299,8 +3297,8 @@ template docAbstractionFunctions() {
// ↓ - endnotes
struct NotesSection {
string[string] object_notes;
- int previous_count;
- int mkn;
+ int previous_count;
+ int mkn;
static auto rgx = RgxI();
private auto gather_notes_for_endnote_section(
ObjGenericComposite[] contents_am,
@@ -4235,11 +4233,31 @@ template docAbstractionFunctions() {
int html_segnames_ptr_cntr,
int html_segnames_ptr,
) {
+ string[string][string] notes_;
+ if (the_document_body_section.length > 1) {
+ string _notes;
+ foreach (ref obj; the_document_body_section) {
+ if (obj.has.inline_notes_reg) {
+ if ((obj.text).matchFirst(rgx.inline_notes_al_gen)) {
+ foreach (m; (obj.text).matchAll(rgx.inline_notes_al_regular_number_note)) {
+ _notes ~= "\n\n" ~ m["num"] ~ ". " ~ m["note"];
+ notes_[(m["num"])]["ocn"] = obj.metainfo.ocn.to!string;
+ }
+ }
+ }
+ }
+ }
if (the_document_endnotes_section.length > 1) {
segnames["html"] ~= "endnotes";
segnames["epub"] ~= "endnotes";
html_segnames_ptr = html_segnames_ptr_cntr;
foreach (ref obj; the_document_endnotes_section) {
+ auto matches = (obj.text).matchAll(rgx.endnote_section_note);
+ foreach (m; matches) {
+ obj.metainfo.parent_ocn = notes_[(m["notenumber"])]["ocn"].to!int;
+ }
+ }
+ foreach (ref obj; the_document_endnotes_section) {
if (obj.metainfo.is_a == "heading") {
obj.metainfo.parent_ocn = obj.metainfo.markedup_ancestors[obj.metainfo.parent_lev_markup];
}
@@ -5406,6 +5424,9 @@ template docSectKeysSeq() {
string[] latex() {
return document_section_keys_sequenced["latex"];
}
+ string[] text() {
+ return document_section_keys_sequenced["text"];
+ }
}
return doc_sect_keys_seq();
}
diff --git a/src/sisudoc/meta/metadoc_object_setter.d b/src/sisudoc/meta/metadoc_object_setter.d
index e0e896e..abcb799 100644
--- a/src/sisudoc/meta/metadoc_object_setter.d
+++ b/src/sisudoc/meta/metadoc_object_setter.d
@@ -57,68 +57,68 @@ module sisudoc.meta.metadoc_object_setter;
template ObjectSetter() {
/+ structs +/
struct DocObj_TxtAttrib_ {
- int indent_base = 0;
- int indent_hang = 0;
- bool bullet = false;
- string language = "";
+ int indent_base = 0;
+ int indent_hang = 0;
+ bool bullet = false;
+ string language = "";
}
struct DocObj_Has_ {
- bool inline_links = false;
- bool inline_notes_reg = false;
- bool inline_notes_star = false;
- bool images = false;
- bool image_without_dimensions = false;
+ bool inline_links = false;
+ bool inline_notes_reg = false;
+ bool inline_notes_star = false;
+ bool images = false;
+ bool image_without_dimensions = false;
}
struct DocObj_Table_ {
- int number_of_columns = 0;
- double[] column_widths = [];
- string[] column_aligns = [];
- bool heading = false;
- bool walls = false;
+ int number_of_columns = 0;
+ double[] column_widths = [];
+ string[] column_aligns = [];
+ bool heading = false;
+ bool walls = false;
}
struct DocObj_CodeBlock_ {
- string syntax = "";
- bool linenumbers = false;
+ string syntax = "";
+ bool linenumbers = false;
}
struct DocObj_Stow_ {
- string[] link = [];
+ string[] link = [];
}
struct DocObj_Pointer_ {
- int doc_object = 0;
- int html_segnames = 0;
- int heading = 0;
+ int doc_object = 0;
+ int html_segnames = 0;
+ int heading = 0;
}
struct DocObj_Tags_ {
- string[] heading_ancestors_text = [ "", "", "", "", "", "", "", "", ];
- string anchor_tag_html = "";
- string in_segment_html = "";
- string segment_anchor_tag_epub = "";
- string html_segment_anchor_tag_is = "";
- string epub_segment_anchor_tag_is = "";
- string heading_lev_anchor_tag = "";
- string segname_prev = "";
- string segname_next = "";
- string[] lev4_subtoc = [];
- string[] anchor_tags = [];
+ string[] heading_ancestors_text = [ "", "", "", "", "", "", "", "", ];
+ string anchor_tag_html = "";
+ string in_segment_html = "";
+ string segment_anchor_tag_epub = "";
+ string html_segment_anchor_tag_is = "";
+ string epub_segment_anchor_tag_is = "";
+ string heading_lev_anchor_tag = "";
+ string segname_prev = "";
+ string segname_next = "";
+ string[] lev4_subtoc = [];
+ string[] anchor_tags = [];
}
struct DocObj_MetaInfo_ {
- string is_of_part = ""; // frontmatter, body, backmatter
- string is_of_section = ""; // toc, body, glossary, biography, book index, blurb
- string is_of_type = ""; // para, block ?
- string is_a = ""; // heading, para, table, code block, group, verse/poem ...
- alias of_part = is_of_part;
- alias of_section = is_of_section;
- alias is_of = is_of_type;
- string attrib = "";
- string lang = ""; // blocks: group, block, quote; not codeblock;
- string syntax = ""; // codeblock only
+ string is_of_part = ""; // frontmatter, body, backmatter
+ string is_of_section = ""; // toc, body, glossary, biography, book index, blurb
+ string is_of_type = ""; // para, block ?
+ string is_a = ""; // heading, para, table, code block, group, verse/poem ...
+ alias of_part = is_of_part;
+ alias of_section = is_of_section;
+ alias is_of = is_of_type;
+ string attrib = "";
+ string lang = ""; // blocks: group, block, quote; not codeblock;
+ string syntax = ""; // codeblock only
/+ o_n +/
- int o_n_substantive = 0;
- int o_n_non_substantive = 0;
- int o_n_glossary = 0;
- int o_n_bibliography = 0;
- int o_n_book_index = 0;
- int o_n_blurb = 0;
+ int o_n_substantive = 0;
+ int o_n_non_substantive = 0;
+ int o_n_glossary = 0;
+ int o_n_bibliography = 0;
+ int o_n_book_index = 0;
+ int o_n_blurb = 0;
string object_number_substantive() const @property {
return (o_n_substantive == 0) ? "" : o_n_substantive.to!string;
}
@@ -176,7 +176,7 @@ template ObjectSetter() {
ubyte[32] sha256;
}
struct ObjGenericComposite {
- string text = "";
+ string text = "";
DocObj_MetaInfo_ metainfo;
DocObj_TxtAttrib_ attrib;
DocObj_Tags_ tags;
diff --git a/src/sisudoc/meta/metadoc_show_config.d b/src/sisudoc/meta/metadoc_show_config.d
index 7434506..5bbeea6 100644
--- a/src/sisudoc/meta/metadoc_show_config.d
+++ b/src/sisudoc/meta/metadoc_show_config.d
@@ -54,21 +54,19 @@ template spineShowSiteConfig() {
O opt_action,
T config,
) {
- import
- sisudoc.meta.defaults,
- sisudoc.meta.rgx;
- import
- std.array,
- std.digest.crc,
- std.digest.sha,
- std.exception,
- std.regex,
- std.stdio,
- std.string,
- std.typecons,
- std.uni,
- std.utf,
- std.conv : to;
+ import sisudoc.meta.defaults;
+ import sisudoc.meta.rgx;
+ import std.array;
+ import std.digest.crc;
+ import std.digest.sha;
+ import std.exception;
+ import std.regex;
+ import std.stdio;
+ import std.string;
+ import std.typecons;
+ import std.uni;
+ import std.utf;
+ import std.conv : to;
mixin InternalMarkup;
auto markup = InlineMarkup();
auto char_repeat_number = 66;
@@ -140,21 +138,19 @@ template spineShowSiteConfig() {
}
template spineShowConfig() {
void spineShowConfig(T)(T doc_matters) {
- import
- sisudoc.meta.defaults,
- sisudoc.meta.rgx;
- import
- std.array,
- std.digest.crc,
- std.digest.sha,
- std.exception,
- std.regex,
- std.stdio,
- std.string,
- std.typecons,
- std.uni,
- std.utf,
- std.conv : to;
+ import sisudoc.meta.defaults;
+ import sisudoc.meta.rgx;
+ import std.array;
+ import std.digest.crc;
+ import std.digest.sha;
+ import std.exception;
+ import std.regex;
+ import std.stdio;
+ import std.string;
+ import std.typecons;
+ import std.uni;
+ import std.utf;
+ import std.conv : to;
mixin InternalMarkup;
auto markup = InlineMarkup();
auto min_repeat_number = 66;
diff --git a/src/sisudoc/meta/metadoc_show_make.d b/src/sisudoc/meta/metadoc_show_make.d
index a5e5608..57721cf 100644
--- a/src/sisudoc/meta/metadoc_show_make.d
+++ b/src/sisudoc/meta/metadoc_show_make.d
@@ -51,21 +51,19 @@ module sisudoc.meta.metadoc_show_make;
@safe:
template spineShowMake() {
void spineShowMake(T)(T doc_matters) {
- import
- sisudoc.meta.defaults,
- sisudoc.meta.rgx;
- import
- std.array,
- std.digest.crc,
- std.digest.sha,
- std.exception,
- std.regex,
- std.stdio,
- std.string,
- std.typecons,
- std.uni,
- std.utf,
- std.conv : to;
+ import sisudoc.meta.defaults;
+ import sisudoc.meta.rgx;
+ import std.array;
+ import std.digest.crc;
+ import std.digest.sha;
+ import std.exception;
+ import std.regex;
+ import std.stdio;
+ import std.string;
+ import std.typecons;
+ import std.uni;
+ import std.utf;
+ import std.conv : to;
mixin InternalMarkup;
auto markup = InlineMarkup();
auto min_repeat_number = 66;
diff --git a/src/sisudoc/meta/metadoc_show_metadata.d b/src/sisudoc/meta/metadoc_show_metadata.d
index 4a7a177..331ab7f 100644
--- a/src/sisudoc/meta/metadoc_show_metadata.d
+++ b/src/sisudoc/meta/metadoc_show_metadata.d
@@ -51,21 +51,19 @@ module sisudoc.meta.metadoc_show_metadata;
@safe:
template spineShowMetaData() {
void spineShowMetaData(T)(T doc_matters) {
- import
- sisudoc.meta.defaults,
- sisudoc.meta.rgx;
- import
- std.array,
- std.digest.crc,
- std.digest.sha,
- std.exception,
- std.regex,
- std.stdio,
- std.string,
- std.typecons,
- std.uni,
- std.utf,
- std.conv : to;
+ import sisudoc.meta.defaults;
+ import sisudoc.meta.rgx;
+ import std.array;
+ import std.digest.crc;
+ import std.digest.sha;
+ import std.exception;
+ import std.regex;
+ import std.stdio;
+ import std.string;
+ import std.typecons;
+ import std.uni;
+ import std.utf;
+ import std.conv : to;
mixin InternalMarkup;
auto markup = InlineMarkup();
auto min_repeat_number = 66;
diff --git a/src/sisudoc/meta/metadoc_show_summary.d b/src/sisudoc/meta/metadoc_show_summary.d
index 2ceb337..ceb4fd5 100644
--- a/src/sisudoc/meta/metadoc_show_summary.d
+++ b/src/sisudoc/meta/metadoc_show_summary.d
@@ -52,21 +52,19 @@ module sisudoc.meta.metadoc_show_summary;
template spineMetaDocSummary() {
void spineMetaDocSummary(D)(D doc) {
auto doc_matters = doc.matters;
- import
- sisudoc.meta.defaults,
- sisudoc.meta.rgx;
- import
- std.array,
- std.digest.crc,
- std.digest.sha,
- std.exception,
- std.regex,
- std.stdio,
- std.string,
- std.typecons,
- std.uni,
- std.utf,
- std.conv : to;
+ import sisudoc.meta.defaults;
+ import sisudoc.meta.rgx;
+ import std.array;
+ import std.digest.crc;
+ import std.digest.sha;
+ import std.exception;
+ import std.regex;
+ import std.stdio;
+ import std.string;
+ import std.typecons;
+ import std.uni;
+ import std.utf;
+ import std.conv : to;
mixin InternalMarkup;
auto markup = InlineMarkup();
auto min_repeat_number = 66;
@@ -75,7 +73,7 @@ template spineMetaDocSummary() {
char_repeat_number = (char_repeat_number > min_repeat_number)
? char_repeat_number
: min_repeat_number;
- if (doc_matters.opt.action.vox_gt1
+ if (doc_matters.opt.action.vox_gt_2
|| doc_matters.opt.action.show_summary) {
string[string] check = [
"last_object_number" : "NA [debug \"checkdoc\" not run]",
diff --git a/src/sisudoc/meta/package.d b/src/sisudoc/meta/package.d
index d24afbb..911952b 100644
--- a/src/sisudoc/meta/package.d
+++ b/src/sisudoc/meta/package.d
@@ -48,17 +48,15 @@
+/
module sisudoc.meta;
-public import
- sisudoc.meta.defaults;
+public import sisudoc.meta.defaults;
/+ std +/
-public import
- std.array,
- std.exception,
- std.range,
- std.regex,
- std.stdio,
- std.string,
- std.typecons,
- // std.uni,
- std.utf,
- std.conv : to;
+public import std.array;
+public import std.exception;
+public import std.range;
+public import std.regex;
+public import std.stdio;
+public import std.string;
+public import std.typecons;
+// public import std.uni;
+public import std.utf;
+public import std.conv : to;
diff --git a/src/sisudoc/meta/rgx.d b/src/sisudoc/meta/rgx.d
index 259ab82..86ca40c 100644
--- a/src/sisudoc/meta/rgx.d
+++ b/src/sisudoc/meta/rgx.d
@@ -148,16 +148,16 @@ static template spineRgxIn() {
static table_col_separator_nl = ctRegex!(`[┊]$`, "mg");
/+ inline markup footnotes endnotes +/
static inline_notes_curly_gen = ctRegex!(`~\{.+?\}~`, "m");
- static inline_notes_curly = ctRegex!(`~\{\s*(.+?)\}~`, "mg");
- static inline_notes_curly_sp_asterisk = ctRegex!(`~\{[*]+\s+(.+?)\}~`, "m");
- static inline_notes_curly_sp_plus = ctRegex!(`~\{[+]+\s+(.+?)\}~`, "m");
+ static inline_notes_curly = ctRegex!(`~\{\s*(.+?)\s*\}~`, "mg");
+ static inline_notes_curly_sp_asterisk = ctRegex!(`~\{[*]+\s+(.+?)\s*\}~`, "m");
+ static inline_notes_curly_sp_plus = ctRegex!(`~\{[+]+\s+(.+?)\s*\}~`, "m");
static note_ref = ctRegex!(`^\S+?noteref_(?P<ref>[0-9]+)`, "mg"); // {^{73.}^}#noteref_73
static smid_inline_url_generic = ctRegex!(`(?:^|[}(\[ ])(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)[a-zA-Z0-9_#]`, "mg");
static smid_inline_url = ctRegex!(`((?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)[a-zA-Z0-9_]\S*)`, "mg");
static smid_inline_link_naked_url = ctRegex!(`(?P<pre>^|[ (\[])(?P<link>(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤)\S+?)(?=[.,;:?!'"]?([ )\]]|$))`, "mg");
static smid_inline_link_markup_regular = ctRegex!(`(?P<pre>^|[ (\[])\{\s*(?P<content>.+?)\s*\}(?P<link>(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)\S+?)(?=[;:!,?.]?([ )\]]|$))`, "mg");
- static smid_inline_link_endnote_url_helper_punctuated = ctRegex!(`\{~\^\s+(?P<content>.+?)\}(?P<link>(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)\S+?)(?=[.,;:?!]?([ ]|$))`, "mg");
- static smid_inline_link_endnote_url_helper = ctRegex!(`\{~\^\s+(?P<content>.+?)\}(?P<link>(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)\S+)`, "mg");
+ static smid_inline_link_endnote_url_helper_punctuated = ctRegex!(`\{~\^\s+(?P<content>.+?)\s*\}(?P<link>(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)\S+?)(?=[.,;:?!]?([ ]|$))`, "mg");
+ static smid_inline_link_endnote_url_helper = ctRegex!(`\{~\^\s+(?P<content>.+?)\s*\}(?P<link>(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)\S+)`, "mg");
static image = ctRegex!(`([a-zA-Z0-9._-]+?\.(?:png|gif|jpg))`, "mg");
static smid_image = ctRegex!(`(?P<pre>(?:^|[ ])[{┥](?:~\^\s+|\s*))(?P<image>[a-zA-Z0-9._-]+?\.(?:png|gif|jpg))(?P<post>(?:.*?)\s*[}┝](?:image|┤.*?├|(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)\S+?)(?=[;:!,?.]?([ )\]]|$)))`, "mg");
static smid_image_generic = ctRegex!(`(?:^|[ ])[{┥](?:~\^\s+|\s*)\S+\.(?:png|gif|jpg).*?[}┝](?:image|┤.*?├|(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)\S+?)(?=[;:!,?.]?([ )\]]|$))`, "mg");
@@ -221,9 +221,9 @@ static template spineRgxIn() {
static br_empty_line = ctRegex!(`\n[ ]*\n`, "mg");
static br_linebreaks_newlines = ctRegex!(`[\n┘┙]`, "mg");
static br_linebreaks = ctRegex!(`[┘┙]`, "mg");
- static br_line = ctRegex!(`┘`, "mg");
- static br_line_inline = ctRegex!(`┙`, "mg");
- static br_line_spaced = ctRegex!(`┚`, "mg");
+ static br_line = ctRegex!(`\s*┘\s*`, "mg");
+ static br_line_inline = ctRegex!(`\s*┙\s*`, "mg");
+ static br_line_spaced = ctRegex!(`\s*┚\s*`, "mg");
/+ inline markup footnotes endnotes +/
static inline_notes_al = ctRegex!(`【(?:[*+]\s+|\s*)(.+?)】`, "mg");
static inline_notes_al_special = ctRegex!(`【(?:[*+]\s+)(.+?)】`, "mg"); // TODO remove match when special footnotes are implemented
@@ -236,6 +236,7 @@ static template spineRgxIn() {
static inline_al_delimiter_open_symbol_star = ctRegex!(`【[*]\s`, "m");
static inline_al_delimiter_open_symbol_plus = ctRegex!(`【[+]\s`, "m");
static inline_text_and_note_al_ = ctRegex!(`(.+?(?:【[*+]*\s+.+?】|.+))`, "mg");
+ static endnote_section_note = ctRegex!(`┥\s*⑆\^┨(?P<notenumber>\d+)\.┣\^┝┤(?P<link>¤?.+?)├.+`, "mg");
/+ inline markup links +/
static inline_image = ctRegex!(`(?P<pre>┥)☼(?P<imginf>(?P<img>[a-zA-Z0-9._-]+?\.(?:jpg|gif|png)),w(?P<width>\d+)h(?P<height>\d+))\s*(?P<post>.*?┝┤.*?├)`, "mg");
static inline_image_without_dimensions = ctRegex!(`(?P<pre>┥)☼(?P<imginf>(?P<img>[a-zA-Z0-9._-]+?\.(?:jpg|gif|png)),w(?P<width>0)h(?P<height>0))\s*(?P<post>.*?┝┤.*?├)`, "mg");
@@ -250,6 +251,7 @@ static template spineRgxIn() {
static inline_link_seg_and_hash = ctRegex!(`┥(?P<text>.+?)┝┤(?P<link>(?P<seg>[^/#├]*)#(?P<hash>.+?))├`, "mg");
static inline_link_clean = ctRegex!(`┤(?:.+?)├|[┥┝]`, "mg");
static inline_link_toc_to_backmatter = ctRegex!(`┤#(?P<link>endnotes|bibliography|bookindex|glossary|blurb)├`, "mg");
+ static find_bookindex_ocn_link_and_comma = ctRegex!(`[, ]*┥.+?┝┤#?\S+?├`, "mg");
static url = ctRegex!(`https?://`, "mg");
static uri = ctRegex!(`(?:https?|git)://`, "mg");
static uri_identify_components = ctRegex!(`(?P<type>(?:https?|git)://)(?P<path>\S+?/)(?P<file>[^/]+)$`, "mg");
diff --git a/src/sisudoc/meta/rgx_yaml_tags.d b/src/sisudoc/meta/rgx_yaml.d
index ee57469..ee57469 100644
--- a/src/sisudoc/meta/rgx_yaml_tags.d
+++ b/src/sisudoc/meta/rgx_yaml.d