aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorRalph Amissah <ralph.amissah@gmail.com>2022-11-25 22:06:40 -0500
committerRalph Amissah <ralph.amissah@gmail.com>2022-12-23 18:17:41 -0500
commitf6d28b62f0e02b8a88a1832589e203c7a613f45b (patch)
treeb5d6462e45bae998190194784e02b143a83f79a3 /src
parentgitignore & things nix (diff)
regex review, match speed & compile time, ctregex
- improve match time - add interim fontface identifier marker - improve compile time - remove unused regexs - separate out some specialized output matches
Diffstat (limited to 'src')
-rw-r--r--src/doc_reform/io_in/paths_source.d38
-rw-r--r--src/doc_reform/io_in/read_config_files.d20
-rw-r--r--src/doc_reform/io_in/read_source_files.d24
-rw-r--r--src/doc_reform/io_out/epub3.d15
-rw-r--r--src/doc_reform/io_out/html.d13
-rw-r--r--src/doc_reform/io_out/hub.d4
-rw-r--r--src/doc_reform/io_out/latex.d29
-rw-r--r--src/doc_reform/io_out/odt.d23
-rw-r--r--src/doc_reform/io_out/package.d3
-rw-r--r--src/doc_reform/io_out/paths_output.d21
-rw-r--r--src/doc_reform/io_out/rgx.d38
-rw-r--r--src/doc_reform/io_out/rgx_latex.d68
-rw-r--r--src/doc_reform/io_out/rgx_xhtml.d63
-rw-r--r--src/doc_reform/io_out/source_pod.d10
-rw-r--r--src/doc_reform/io_out/sqlite.d39
-rw-r--r--src/doc_reform/io_out/xmls.d15
-rw-r--r--src/doc_reform/meta/conf_make_meta_structs.d3
-rw-r--r--src/doc_reform/meta/conf_make_meta_yaml.d252
-rw-r--r--src/doc_reform/meta/metadoc.d53
-rw-r--r--src/doc_reform/meta/metadoc_from_src.d27
-rw-r--r--src/doc_reform/meta/package.d3
-rw-r--r--src/doc_reform/meta/rgx.d10
-rw-r--r--src/doc_reform/meta/rgx_files.d72
-rw-r--r--src/doc_reform/meta/rgx_yaml_tags.d62
-rwxr-xr-xsrc/doc_reform/spine.d36
25 files changed, 637 insertions, 304 deletions
diff --git a/src/doc_reform/io_in/paths_source.d b/src/doc_reform/io_in/paths_source.d
index c34ac43..24f12b9 100644
--- a/src/doc_reform/io_in/paths_source.d
+++ b/src/doc_reform/io_in/paths_source.d
@@ -63,10 +63,10 @@ import
std.conv : to;
import
doc_reform.meta.defaults,
- doc_reform.meta.rgx;
+ doc_reform.meta.rgx_files;
template PodManifest() {
- mixin spineRgxIn;
- static auto rgx = RgxI();
+ mixin spineRgxFiles;
+ static auto rgx_files = RgxFiles();
@safe auto PodManifest(O)(
O _opt_action,
string _pth=""
@@ -81,12 +81,12 @@ template PodManifest() {
&& (exists(_pth.chainPath(pod_manifest_filename).array) != 0
&& (_pth.chainPath(pod_manifest_filename).array).isFile)) {
_manifest_path = _pth;
- } else if (_pth.match(rgx.src_pth_contents)
+ } else if (_pth.match(rgx_files.src_pth_contents)
&& exists(_pth) != 0 && _pth.isFile) {
_manifest_path = _pth.dirName;
- } else if (_pth.match(rgx.src_pth_pod_sst_or_ssm)
+ } else if (_pth.match(rgx_files.src_pth_pod_sst_or_ssm)
&& exists(_pth) != 0 && (_pth.isFile)) {
- if (auto m = _pth.match(rgx.src_pth_pod_sst_or_ssm)) {
+ if (auto m = _pth.match(rgx_files.src_pth_pod_sst_or_ssm)) {
_manifest_path = m.captures["podpath"];
}
} else {
@@ -118,9 +118,9 @@ template PodManifest() {
}
}
template PathMatters() {
- mixin spineRgxIn;
mixin InternalMarkup;
- static auto rgx = RgxI();
+ mixin spineRgxFiles;
+ static auto rgx_files = RgxFiles();
static auto mkup = InlineMarkup();
@safe auto PathMatters(O,E)(
O _opt_action,
@@ -193,7 +193,7 @@ template PathMatters() {
string[] _lngs;
foreach (filename_; manifest_list_of_filenames) {
string _k = "en";
- if (auto m = (filename_).match(rgx.language_code_and_filename)) {
+ if (auto m = (filename_).match(rgx_files.language_code_and_filename)) {
_k = m.captures[1].to!string;
}
_lngs ~= _k; // all the languages from the manifest list of filenames with paths
@@ -230,11 +230,11 @@ template PathMatters() {
return filename.stripExtension;
}
@safe string filename_extension() {
- return filename.match(rgx.src_pth_sst_or_ssm).captures["extension"];
+ return filename.match(rgx_files.src_pth_sst_or_ssm).captures["extension"];
}
@safe string lng() {
string _k;
- if (auto m = path_and_fn.match(rgx.language_code_and_filename)) {
+ if (auto m = path_and_fn.match(rgx_files.language_code_and_filename)) {
_k = m.captures[1];
} else {_k = "en"; }
return _k;
@@ -318,7 +318,7 @@ template PathMatters() {
} else {
_dir = ((path_and_fn.chainPath("../../../")).asNormalizedPath).array;
assert(_dir == absolute_path_to_src
- .match(rgx.src_base_parent_dir_name).captures["dir"]);
+ .match(rgx_files.src_base_parent_dir_name).captures["dir"]);
}
if (_opt_action.debug_do) {
writeln("--> (base_dir) ", _dir);
@@ -341,7 +341,7 @@ template PathMatters() {
string _dir;
if (
auto m = (absolute_path_to_src)
- .match(rgx.src_formalised_file_path_parts)
+ .match(rgx_files.src_formalised_file_path_parts)
) {
_dir = ((m.captures["pth"]).asNormalizedPath).array;
} else if (
@@ -396,7 +396,7 @@ template PathMatters() {
) {
_dir = m.captures["dir"];
} else {
- _dir = (absolute_path_to_src).match(rgx.src_base_parent_dir_name).captures["dir"];
+ _dir = (absolute_path_to_src).match(rgx_files.src_base_parent_dir_name).captures["dir"];
}
if (_opt_action.debug_do) {
writeln("--> (base_parent_dir) ", _dir);
@@ -460,8 +460,6 @@ template PathMatters() {
}
}
template configFilePaths() {
- mixin spineRgxIn;
- static auto rgx = RgxI();
@safe auto configFilePaths(M,E)(
M _manifested,
E _env,
@@ -581,8 +579,8 @@ template configFilePaths() {
}
}
template spinePathsSRC() {
- mixin spineRgxIn;
- static auto rgx = RgxI();
+ mixin spineRgxFiles;
+ static auto rgx_files = RgxFiles();
@safe auto spinePathsSRC(D,Fn)(
D _pwd,
Fn _fn_src_and_path,
@@ -594,7 +592,7 @@ template spinePathsSRC() {
@safe string language() {
// use command line info as well?
string _k;
- if (auto m = _fn_src_and_path.match(rgx.language_code_and_filename)) {
+ if (auto m = _fn_src_and_path.match(rgx_files.language_code_and_filename)) {
_k = m.captures[1];
} else { /+ unknown until doc_meta read, (could provide & use command line info?) +/
_k = "xx"; // original default was "en" but is not known
@@ -632,8 +630,6 @@ template spinePathsSRC() {
template spinePathsPods() {
- mixin spineRgxIn;
- static auto rgx = RgxI();
string _suffix = ".zip";
auto spinePathsPods(M)(M doc_matters) {
string _base_dir_pod = (doc_matters.output_path.length > 0)
diff --git a/src/doc_reform/io_in/read_config_files.d b/src/doc_reform/io_in/read_config_files.d
index 64d548b..a1aa425 100644
--- a/src/doc_reform/io_in/read_config_files.d
+++ b/src/doc_reform/io_in/read_config_files.d
@@ -56,9 +56,11 @@
module doc_reform.io_in.read_config_files;
import
std.file,
- std.path,
+ std.path;
+import
doc_reform.meta,
doc_reform.io_in.paths_source,
+ doc_reform.meta.rgx_files,
doc_reform.meta.rgx;
template readConfigSite() {
@@ -191,13 +193,17 @@ webserv:
static template readConfigDoc() {
import
std.file,
- std.path,
+ std.path;
+ import
doc_reform.meta,
doc_reform.io_in.paths_source,
+ doc_reform.meta.rgx_files,
doc_reform.meta.rgx;
@system final auto readConfigDoc(M,E)(M _manifested, E _env) {
mixin spineRgxIn;
static auto rgx = RgxI();
+ mixin spineRgxFiles;
+ static auto rgx_files = RgxFiles();
string config_file_str;
string conf_filename = "NONE";
auto _conf_file_details = configFilePaths!()(_manifested, _env);
@@ -243,9 +249,12 @@ static template readConfigDoc() {
static template configReadSiteYAML() {
import
std.file,
- std.path,
+ std.path;
+ import
doc_reform.meta,
- doc_reform.io_in.paths_source;
+ doc_reform.io_in.paths_source,
+ doc_reform.meta.rgx_files,
+ doc_reform.meta.rgx;
@safe final YAMLDocument configReadSiteYAML(M,E)(M _manifested, E _env) {
string _configuration = configReadInSiteYAML!()(_manifested, _env);
auto _conf_file_details = configFilePaths!()(_manifested, _env);
@@ -257,7 +266,8 @@ static template configReadSiteYAML() {
static template configReadDocYAML() {
import
std.file,
- std.path,
+ std.path;
+ import
doc_reform.meta,
doc_reform.io_in.paths_source;
@safe final YAMLDocument configReadDocYAML(M,E)(M _manifested, E _env) {
diff --git a/src/doc_reform/io_in/read_source_files.d b/src/doc_reform/io_in/read_source_files.d
index 4c8cf77..0a187f8 100644
--- a/src/doc_reform/io_in/read_source_files.d
+++ b/src/doc_reform/io_in/read_source_files.d
@@ -57,12 +57,16 @@ module doc_reform.io_in.read_source_files;
template spineRawMarkupContent() {
import
std.file,
- std.path,
+ std.path;
+ import
doc_reform.meta,
doc_reform.io_in.paths_source,
+ doc_reform.meta.rgx_files,
doc_reform.meta.rgx;
mixin spineRgxIn;
static auto rgx = RgxI();
+ mixin spineRgxFiles;
+ static auto rgx_files = RgxFiles();
string[] _images=[];
@safe string[] _extract_images(S)(S content_block) {
string[] images_;
@@ -108,7 +112,7 @@ template spineRawMarkupContent() {
= raw.markupSourceHeaderContentRawLineTupleArray(source_txt_str);
char[] header_raw = t.header;
char[][] sourcefile_body_content = t.src_txt;
- if (fn_src.match(rgx.src_fn_master)) { // filename with path needed if master file (.ssm) not otherwise
+ if (fn_src.match(rgx_files.src_fn_master)) { // filename with path needed if master file (.ssm) not otherwise
auto ins = Inserts();
ContentsInsertsImages tu
= ins.scan_master_src_for_insert_files_and_import_content(_opt_action, sourcefile_body_content, fn_src);
@@ -175,9 +179,9 @@ template spineRawMarkupContent() {
return source_line_arr;
}
@safe string markupSourceReadIn(in string fn_src) {
- static auto rgx = RgxI();
+ static auto rgx_files = RgxFiles();
enforce(
- fn_src.match(rgx.src_pth_sst_or_ssm),
+ fn_src.match(rgx_files.src_pth_sst_or_ssm),
"not a dr markup filename: «" ~
fn_src ~ "»"
);
@@ -226,7 +230,7 @@ template spineRawMarkupContent() {
char[][] contents_insert;
int code_block_status = 0;
enum codeBlock { off, curly, tic, }
- auto fn_pth_full = fn_src.match(rgx.src_pth_sst_or_ssm);
+ auto fn_pth_full = fn_src.match(rgx_files.src_pth_sst_or_ssm);
auto markup_src_file_path = fn_pth_full.captures[1];
foreach (line; markup_sourcefile_insert_content) {
if (code_block_status == codeBlock.curly) {
@@ -245,14 +249,14 @@ template spineRawMarkupContent() {
} else if (line.matchFirst(rgx.block_tic_code_open)) {
code_block_status = codeBlock.tic;
contents_insert ~= line;
- } else if (auto m = line.match(rgx.insert_src_fn_ssi_or_sst)) {
+ } else if (auto m = line.match(rgx_files.insert_src_fn_ssi_or_sst)) {
auto insert_fn = m.captures[2];
auto insert_sub_pth = m.captures[1];
auto fn_src_insert
= chainPath(markup_src_file_path, insert_sub_pth ~ insert_fn).array;
auto raw = MarkupRawUnit();
auto markup_sourcesubfile_insert_content
- = raw.getInsertMarkupSourceContentRawLineArray(fn_src_insert, rgx.src_fn_find_inserts);
+ = raw.getInsertMarkupSourceContentRawLineArray(fn_src_insert, rgx_files.src_fn_find_inserts);
debug(insert_file) {
writeln(line);
writeln(fn_src_insert);
@@ -300,7 +304,7 @@ template spineRawMarkupContent() {
char[][] contents;
int code_block_status = 0;
enum codeBlock { off, curly, tic, }
- auto fn_pth_full = fn_src.match(rgx.src_pth_sst_or_ssm);
+ auto fn_pth_full = fn_src.match(rgx_files.src_pth_sst_or_ssm);
auto markup_src_file_path = fn_pth_full.captures[1];
char[][] contents_insert;
string[] _images =[];
@@ -322,7 +326,7 @@ template spineRawMarkupContent() {
} else if (line.matchFirst(rgx.block_tic_code_open)) {
code_block_status = codeBlock.tic;
contents ~= line;
- } else if (auto m = line.match(rgx.insert_src_fn_ssi_or_sst)) {
+ } else if (auto m = line.match(rgx_files.insert_src_fn_ssi_or_sst)) {
auto insert_fn = m.captures[2];
auto insert_sub_pth = m.captures[1];
auto fn_src_insert
@@ -331,7 +335,7 @@ template spineRawMarkupContent() {
auto raw = MarkupRawUnit();
/+ TODO +/
auto markup_sourcefile_insert_content
- = raw.getInsertMarkupSourceContentRawLineArray(fn_src_insert, rgx.src_fn_find_inserts);
+ = raw.getInsertMarkupSourceContentRawLineArray(fn_src_insert, rgx_files.src_fn_find_inserts);
debug(insert_file) {
writeln(line);
writeln(fn_src_insert);
diff --git a/src/doc_reform/io_out/epub3.d b/src/doc_reform/io_out/epub3.d
index d19545c..41d6d9d 100644
--- a/src/doc_reform/io_out/epub3.d
+++ b/src/doc_reform/io_out/epub3.d
@@ -58,18 +58,21 @@ template outputEPub3() {
std.conv : to;
import
doc_reform.io_out,
+ doc_reform.io_out.rgx,
+ doc_reform.io_out.rgx_xhtml,
doc_reform.io_out.create_zip_file,
doc_reform.io_out.xmls,
doc_reform.io_out.xmls_css;
mixin InternalMarkup;
mixin outputXHTMLs;
static auto rgx = RgxO();
+ static auto rgx_xhtml = RgxXHTML();
@safe string special_characters_text(string _txt) {
_txt = _txt
- .replaceAll(rgx.xhtml_ampersand, "&amp;") // "&#38;"
- .replaceAll(rgx.xhtml_quotation, "&quot;") // "&#34;"
- .replaceAll(rgx.xhtml_less_than, "&lt;") // "&#60;"
- .replaceAll(rgx.xhtml_greater_than, "&gt;") // "&#62;"
+ .replaceAll(rgx_xhtml.ampersand, "&amp;") // "&#38;"
+ .replaceAll(rgx_xhtml.quotation, "&quot;") // "&#34;"
+ .replaceAll(rgx_xhtml.less_than, "&lt;") // "&#60;"
+ .replaceAll(rgx_xhtml.greater_than, "&gt;") // "&#62;"
.replaceAll(rgx.br_line, "<br />")
.replaceAll(rgx.br_line_inline, "<br />")
.replaceAll(rgx.br_line_spaced, "<br />\n<br />")
@@ -184,6 +187,7 @@ template outputEPub3() {
enum DomTags { none, open, close, close_and_open, open_still, }
auto markup = InlineMarkup();
static auto rgx = RgxO();
+ static auto rgx_xhtml = RgxXHTML();
string toc;
bool _new_title_set = false;
string toc_head = format(q"┃<html xmlns="https://www.w3.org/1999/xhtml"
@@ -297,8 +301,10 @@ template outputEPub3() {
I doc_matters,
) {
mixin spineRgxOut;
+ mixin spineRgxXHTML;
auto xhtml_format = outputXHTMLs();
static auto rgx = RgxO();
+ static auto rgx_xhtml = RgxXHTML();
string[] doc;
string segment_filename;
string[] top_level_headings = ["","","",""];
@@ -607,6 +613,7 @@ template outputEPub3() {
static assert(is(typeof(epub_write.oebps_content_opf) == string));
}
static auto rgx = RgxO();
+ static auto rgx_xhtml = RgxXHTML();
auto pth_epub3 = spinePathsEPUB!()(doc_matters.output_path, doc_matters.src.language);
auto xhtml_format = outputXHTMLs();
/+ zip file +/
diff --git a/src/doc_reform/io_out/html.d b/src/doc_reform/io_out/html.d
index 26636ba..dd50252 100644
--- a/src/doc_reform/io_out/html.d
+++ b/src/doc_reform/io_out/html.d
@@ -57,6 +57,9 @@ template outputHTML() {
std.conv : to;
import
doc_reform.io_out,
+ doc_reform.io_out.rgx,
+ doc_reform.meta.rgx_files,
+ doc_reform.io_out.rgx_xhtml,
doc_reform.io_out.create_zip_file,
doc_reform.io_out.xmls,
doc_reform.io_out.xmls_css;
@@ -66,8 +69,10 @@ template outputHTML() {
M doc_matters,
) {
mixin spineRgxOut;
+ mixin spineRgxXHTML;
auto xhtml_format = outputXHTMLs();
static auto rgx = RgxO();
+ static auto rgx_xhtml = RgxXHTML();
string[] doc_html;
string[] doc;
string suffix = ".html";
@@ -257,7 +262,9 @@ template outputHTML() {
M doc_matters,
) {
mixin spineRgxOut;
+ mixin spineRgxXHTML;
static auto rgx = RgxO();
+ static auto rgx_xhtml = RgxXHTML();
auto xhtml_format = outputXHTMLs();
string[][string] doc_html;
string[][string] doc_html_endnotes;
@@ -508,11 +515,11 @@ template outputHTML() {
debug(asserts) {
static assert(is(typeof(doc_html) == string[][string]));
}
- mixin spineRgxOut;
- static auto rgx = RgxO();
+ mixin spineRgxFiles;
+ static auto rgx_files = RgxFiles();
auto pth_html = spinePathsHTML!()(doc_matters.output_path, doc_matters.src.language);
auto xhtml_format = outputXHTMLs();
- auto m = doc_matters.src.filename.matchFirst(rgx.src_fn);
+ auto m = doc_matters.src.filename.matchFirst(rgx_files.src_fn);
try {
if (!exists(pth_html.seg(doc_matters.src.filename))) {
pth_html.seg(doc_matters.src.filename).mkdirRecurse;
diff --git a/src/doc_reform/io_out/hub.d b/src/doc_reform/io_out/hub.d
index 4c5254b..c53055d 100644
--- a/src/doc_reform/io_out/hub.d
+++ b/src/doc_reform/io_out/hub.d
@@ -63,10 +63,8 @@ template outputHub() {
const D doc_abstraction,
I doc_matters
) {
- mixin spineRgxOut;
mixin Msg;
auto msg = Msg!()(doc_matters);
- static auto rgx = RgxO();
enum outTask { source_or_pod, sqlite, sqlite_multi, latex, odt, epub, html_scroll, html_seg, html_stuff }
void Scheduled(D,I)(int sched, D doc_abstraction, I doc_matters) {
auto msg = Msg!()(doc_matters);
@@ -201,8 +199,6 @@ template outputHubOp() {
doc_reform.io_out.create_zip_file,
doc_reform.io_out.paths_output;
@system void outputHubOp(E,O,C)(E env, O opt_action, C config) {
- mixin spineRgxOut;
- static auto rgx = RgxO();
if ((opt_action.sqlite_db_drop)) {
if ((opt_action.vox_gt1)) {
writeln("sqlite drop db...");
diff --git a/src/doc_reform/io_out/latex.d b/src/doc_reform/io_out/latex.d
index 992887d..f7dee74 100644
--- a/src/doc_reform/io_out/latex.d
+++ b/src/doc_reform/io_out/latex.d
@@ -325,10 +325,14 @@ template outputLaTeX() {
std.outbuffer,
std.uri,
std.conv : to;
- import doc_reform.io_out;
- mixin InternalMarkup; // watch
+ import
+ doc_reform.io_out,
+ doc_reform.io_out.rgx,
+ doc_reform.io_out.rgx_latex;
mixin spineRgxOut;
static auto rgx = RgxO();
+ mixin spineRgxLSC;
+ static auto rgx_sc = RgxLSC();
mixin spineLanguageCodes;
auto lang = Lang();
auto paper = paperLaTeX;
@@ -337,23 +341,23 @@ template outputLaTeX() {
) {
string _unescape_sp_char_esc()(string _txt) {
_txt = _txt
- .replaceAll(rgx.latex_special_char_escaped,
+ .replaceAll(rgx_sc.latex_special_char_escaped,
format(q"┃%s┃", "$1"))
- .replaceAll(rgx.latex_special_char_escaped_braced,
+ .replaceAll(rgx_sc.latex_special_char_escaped_braced,
format(q"┃%s┃", "$1"));
return _txt;
}
string _unescape_fontface_esc()(string _txt) {
- _txt = _txt.replaceAll(rgx.latex_identify_inline_fontface,
+ _txt = _txt.replaceAll(rgx_sc.latex_identify_inline_fontface,
format(q"┃%s%s┃", "$1", "$2"));
return _txt;
}
- _txt = replaceAll!(m => "\\" ~ m[1])(_txt, rgx.latex_special_char_for_escape);
- _txt = replaceAll!(m => "{\\" ~ m[1] ~ "}")(_txt, rgx.latex_special_char_for_escape_and_braces);
+ _txt = replaceAll!(m => "\\" ~ m[1])(_txt, rgx_sc.latex_special_char_for_escape);
+ _txt = replaceAll!(m => "{\\" ~ m[1] ~ "}")(_txt, rgx_sc.latex_special_char_for_escape_and_braces);
_txt = replaceAll!(m => "''")(_txt, rgx.quotes_open_and_close);
_txt = replaceAll!(m => "$\\cdot$")(_txt, rgx.middle_dot);
- _txt = replaceAll!(m => _unescape_sp_char_esc(m[0]))(_txt, rgx.latex_identify_inline_link);
- _txt = replaceAll!(m => _unescape_fontface_esc(m[0]))(_txt, rgx.latex_identify_inline_fontface);
+ _txt = replaceAll!(m => _unescape_sp_char_esc(m[0]))(_txt, rgx_sc.latex_identify_inline_link);
+ _txt = replaceAll!(m => _unescape_fontface_esc(m[0]))(_txt, rgx_sc.latex_identify_inline_fontface);
return _txt;
}
@safe string sp_char_esc(O)(
@@ -461,8 +465,8 @@ template outputLaTeX() {
}
string _check_link(string _link) {
_link = _link
- .replaceFirst(rgx.latex_clean_internal_link, "")
- .replaceAll(rgx.latex_special_char_for_escape_url, "\\$1");
+ .replaceFirst(rgx_sc.latex_clean_internal_link, "")
+ .replaceAll(rgx_sc.latex_special_char_for_escape_url, "\\$1");
return _link;
}
if (obj.metainfo.is_a != "code") {
@@ -529,7 +533,7 @@ template outputLaTeX() {
string _tex_para;
_tex_para = q"┃%s┃";
_txt = format(_tex_para,
- _txt.replaceAll(rgx.latex_clean_bookindex_linebreak, "\n") ~ "\n\\brln\n"
+ _txt.replaceAll(rgx_sc.latex_clean_bookindex_linebreak, "\n") ~ "\n\\brln\n"
);
}
return _txt;
@@ -1381,7 +1385,6 @@ template outputLaTeX() {
}
template outputLaTeXstyInit() {
import doc_reform.io_out;
- mixin spineRgxOut;
auto paper = paperLaTeX;
void writeOutputLaTeXstyStatic(
string latex_sty,
diff --git a/src/doc_reform/io_out/odt.d b/src/doc_reform/io_out/odt.d
index c5fb469..1cde2d4 100644
--- a/src/doc_reform/io_out/odt.d
+++ b/src/doc_reform/io_out/odt.d
@@ -50,7 +50,10 @@
+/
module doc_reform.io_out.odt;
template formatODT() {
- import doc_reform.io_out;
+ import
+ doc_reform.io_out,
+ doc_reform.io_out.rgx,
+ doc_reform.io_out.rgx_xhtml;
import
std.digest.sha,
std.file,
@@ -63,8 +66,10 @@ template formatODT() {
doc_reform.io_out.xmls,
doc_reform.io_out.xmls_css;
mixin spineRgxOut;
+ mixin spineRgxXHTML;
struct formatODT {
static auto rgx = RgxO();
+ static auto rgx_xhtml = RgxXHTML();
@safe string _tags(O)(const O obj) {
string _tags = "";
if (obj.tags.anchor_tags.length > 0) {
@@ -107,6 +112,7 @@ template formatODT() {
}
@safe string _footnotes()(string _txt) {
static auto rgx = RgxO();
+ static auto rgx_xhtml = RgxXHTML();
_txt = _txt.replaceAll(
rgx.inline_notes_al_regular_number_note,
format(q"┃<text:note text:id="ftn%s" text:note-class="footnote">
@@ -274,10 +280,10 @@ template formatODT() {
}
@safe string _special_characters(O)(string _txt, const O obj) {
_txt = _txt
- .replaceAll(rgx.xhtml_ampersand, "&amp;")
- .replaceAll(rgx.xhtml_quotation, "&#34;")
- .replaceAll(rgx.xhtml_less_than, "&lt;")
- .replaceAll(rgx.xhtml_greater_than, "&gt;")
+ .replaceAll(rgx_xhtml.ampersand, "&amp;")
+ .replaceAll(rgx_xhtml.quotation, "&#34;")
+ .replaceAll(rgx_xhtml.less_than, "&lt;")
+ .replaceAll(rgx_xhtml.greater_than, "&gt;")
.replaceAll(rgx.nbsp_char, "&#160;");
return _txt;
}
@@ -640,7 +646,10 @@ template formatODT() {
}
}
template outputODT() {
- import doc_reform.io_out;
+ import
+ doc_reform.io_out,
+ doc_reform.io_out.rgx,
+ doc_reform.io_out.rgx_xhtml;
import
std.digest.sha,
std.file,
@@ -654,7 +663,9 @@ template outputODT() {
doc_reform.io_out.xmls_css;
mixin InternalMarkup;
mixin spineRgxOut;
+ mixin spineRgxXHTML;
static auto rgx = RgxO();
+ static auto rgx_xhtml = RgxXHTML();
// mixin outputXmlODT;
@safe string odt_head(I)(I doc_matters) {
string _has_tables = format(q"┃
diff --git a/src/doc_reform/io_out/package.d b/src/doc_reform/io_out/package.d
index b6932ea..0a75f98 100644
--- a/src/doc_reform/io_out/package.d
+++ b/src/doc_reform/io_out/package.d
@@ -67,5 +67,4 @@ public import
doc_reform.share.defaults,
doc_reform.io_in.paths_source,
doc_reform.io_out.defaults,
- doc_reform.io_out.paths_output,
- doc_reform.io_out.rgx;
+ doc_reform.io_out.paths_output;
diff --git a/src/doc_reform/io_out/paths_output.d b/src/doc_reform/io_out/paths_output.d
index fc31711..471c966 100644
--- a/src/doc_reform/io_out/paths_output.d
+++ b/src/doc_reform/io_out/paths_output.d
@@ -57,7 +57,8 @@ import
std.path,
std.regex,
std.stdio;
-import doc_reform.meta.rgx;
+import
+ doc_reform.meta.rgx_files;
template spineOutPaths() {
auto spineOutPaths()(
string output_pth_root,
@@ -149,8 +150,6 @@ template spineOutPathsFnPd() {
}
template spineDocRootTreeHTML() {
- mixin spineRgxIn;
- static auto rgx = RgxI();
auto spineDocRootTreeHTML()(string lng) {
auto lng_pth = spineOutPaths!()("", lng);
string base_dir = "html";
@@ -209,8 +208,6 @@ template spineDocRootTreeHTML() {
}
}
template spinePathsHTML() {
- mixin spineRgxIn;
- static auto rgx = RgxI();
auto spinePathsHTML()(
string output_path_root,
string lng,
@@ -270,8 +267,6 @@ template spinePathsHTML() {
}
template spineUrlsHTML() {
import std.format;
- mixin spineRgxIn;
- static auto rgx = RgxI();
auto spineUrlsHTML()(
string url_doc_root,
string lng,
@@ -371,8 +366,6 @@ template spineUrlsHTML() {
}
}
template spinePathsEPUB() {
- mixin spineRgxIn;
- static auto rgx = RgxI();
auto spinePathsEPUB()(
string output_pth_root,
string lng,
@@ -477,8 +470,6 @@ template spinePathsEPUB() {
}
template spinePathsODT() {
import std.conv;
- mixin spineRgxIn;
- static auto rgx = RgxI();
auto spinePathsODT(M)(
M doc_matters,
) {
@@ -541,8 +532,6 @@ template spinePathsODT() {
}
}
template spinePathsPDF() {
- mixin spineRgxIn;
- static auto rgx = RgxI();
auto spinePathsPDF(M)(
M doc_matters,
) {
@@ -565,8 +554,6 @@ template spinePathsPDF() {
}
}
template spinePathsLaTeX() {
- mixin spineRgxIn;
- static auto rgx = RgxI();
auto spinePathsLaTeX(M)(
M doc_matters,
) {
@@ -636,8 +623,6 @@ template spinePathsLaTeXsty() {
}
}
template spinePathsSQLiteDiscrete() {
- mixin spineRgxIn;
- static auto rgx = RgxI();
auto spinePathsSQLiteDiscrete()(
string output_pth_root,
string lng,
@@ -662,8 +647,6 @@ template spinePathsSQLiteDiscrete() {
}
}
template spinePathsSQLite() {
- mixin spineRgxIn;
- static auto rgx = RgxI();
auto spinePathsSQLite()(
string db_name,
string output_pth_root,
diff --git a/src/doc_reform/io_out/rgx.d b/src/doc_reform/io_out/rgx.d
index 8369735..943643c 100644
--- a/src/doc_reform/io_out/rgx.d
+++ b/src/doc_reform/io_out/rgx.d
@@ -68,8 +68,7 @@ static template spineRgxOut() {
static src_pth_contents = ctRegex!(`^(?P<path>[/]?(?:[a-zA-Z0-9._-]+/)*)(?P<filename>[a-zA-Z0-9][a-zA-Z0-9._-]*)/pod[.]manifest$`);
static src_pth_zip = ctRegex!(`^(?P<path>[/]?(?:[a-zA-Z0-9._-]+/)*)(?P<filename>[a-zA-Z0-9._-]+[.]zip)$`);
static src_pth_types = ctRegex!(`^(?P<path>[/]?[a-zA-Z0-9._-]+/)*(?P<gotfile>(?P<filename>[a-zA-Z0-9._-]+[.]ss[tm])|(?P<filelist>[a-zA-Z0-9._-]+/pod[.]manifest)|(?P<filezip>[a-zA-Z0-9._-]+[.]zip))$`);
- static src_fn =
- ctRegex!(`^([/]?(?:[a-zA-Z0-9._-]+/)*)(?P<fn_src>(?P<fn_base>[a-zA-Z0-9._-]+)[.](?P<fn_src_suffix>ss[tm]))$`);
+ static src_fn = ctRegex!(`^([/]?(?:[a-zA-Z0-9._-]+/)*)(?P<fn_src>(?P<fn_base>[a-zA-Z0-9._-]+)[.](?P<fn_src_suffix>ss[tm]))$`);
static src_fn_master = ctRegex!(`^(?P<path>/?(?:[a-zA-Z0-9._-]+/)*)(?P<filename>[a-zA-Z0-9._-]+[.]ssm)$`);
static src_fn_find_inserts = ctRegex!(`^(?P<path>/?(?:[a-zA-Z0-9._-]+/)*)(?P<filename>[a-zA-Z0-9._-]+[.]ss[im])$`);
static insert_src_fn_ssi_or_sst = ctRegex!(`^<<\s*(?P<path>[a-zA-Z0-9._-]+/)*(?P<filename>[a-zA-Z0-9._-]+[.]ss[ti])$`);
@@ -119,34 +118,19 @@ static template spineRgxOut() {
static mark_internal_site_lnk = ctRegex!(`¤`, "mg");
static quotation_mark_sql_insert_delimiter = ctRegex!("[']", "mg");
/+ inline markup font face mod +/
- static inline_emphasis = ctRegex!(`[*]┨(?P<text>.+?)┣[*]`, "mg");
- static inline_bold = ctRegex!(`[!]┨(?P<text>.+?)┣[!]`, "mg");
- static inline_underscore = ctRegex!(`[_]┨(?P<text>.+?)┣[_]`, "mg");
- static inline_italics = ctRegex!(`[/]┨(?P<text>.+?)┣[/]`, "mg");
- static inline_superscript = ctRegex!(`\^┨(?P<text>.+?)┣\^`, "mg");
- static inline_subscript = ctRegex!(`[,]┨(?P<text>.+?)┣[,]`, "mg");
- static inline_strike = ctRegex!(`[-]┨(?P<text>.+?)┣[-]`, "mg");
- static inline_insert = ctRegex!(`[+]┨(?P<text>.+?)┣[+]`, "mg");
- static inline_mono = ctRegex!(`[■]┨(?P<text>.+?)┣[■]`, "mg");
- static inline_cite = ctRegex!(`[‖]┨(?P<text>.+?)┣[‖]`, "mg");
+ static inline_emphasis = ctRegex!(`⑆[*]┨(?P<text>.+?)┣[*]`, "mg");
+ static inline_bold = ctRegex!(`⑆[!]┨(?P<text>.+?)┣[!]`, "mg");
+ static inline_underscore = ctRegex!(`⑆[_]┨(?P<text>.+?)┣[_]`, "mg");
+ static inline_italics = ctRegex!(`⑆[/]┨(?P<text>.+?)┣[/]`, "mg");
+ static inline_superscript = ctRegex!(`⑆\^┨(?P<text>.+?)┣\^`, "mg");
+ static inline_subscript = ctRegex!(`⑆[,]┨(?P<text>.+?)┣[,]`, "mg");
+ static inline_strike = ctRegex!(`⑆[-]┨(?P<text>.+?)┣[-]`, "mg");
+ static inline_insert = ctRegex!(`⑆[+]┨(?P<text>.+?)┣[+]`, "mg");
+ static inline_mono = ctRegex!(`⑆[■]┨(?P<text>.+?)┣[■]`, "mg");
+ static inline_cite = ctRegex!(`⑆[‖]┨(?P<text>.+?)┣[‖]`, "mg");
/+ table delimiters +/
static table_delimiter_col = ctRegex!("[ ]*[┊][ ]*", "mg");
static table_delimiter_row = ctRegex!("[ ]*\n", "mg");
- static xhtml_ampersand = ctRegex!(`[&]`, "m"); // &amp;
- static xhtml_quotation = ctRegex!(`["]`, "m"); // &quot;
- static xhtml_less_than = ctRegex!(`[<]`, "m"); // &lt;
- static xhtml_greater_than = ctRegex!(`[>]`, "m"); // &gt;
- static xhtml_line_break = ctRegex!(` [\\]{2}`, "m"); // <br />
- static latex_special_char = ctRegex!(`([%${}_#&\\])`);
- static latex_special_char_for_escape = ctRegex!(`([%${}_#\\])`);
- static latex_special_char_for_escape_and_braces = ctRegex!(`([&])`);
- static latex_special_char_for_escape_url = ctRegex!(`([%])`);
- static latex_special_char_escaped = ctRegex!(`\\([%${}_#\\])`);
- static latex_special_char_escaped_braced = ctRegex!(`[{]\\([&])[}]`);
- static latex_identify_inline_link = ctRegex!(`┥.+?┝┤\S+?├`, "mg");
- static latex_identify_inline_fontface = ctRegex!(`\\([_#$]┨.+?┣)\\([_#$])`, "mg");
- static latex_clean_internal_link = ctRegex!(`^(?:#|¤\S+?#)`, "m");
- static latex_clean_bookindex_linebreak = ctRegex!(`\s*\\\\\\\\\s*`, "m");
/+ paragraph operators +/
static grouped_para_indent_1 = ctRegex!(`^_1[ ]`, "m");
static grouped_para_indent_2 = ctRegex!(`^_2[ ]`, "m");
diff --git a/src/doc_reform/io_out/rgx_latex.d b/src/doc_reform/io_out/rgx_latex.d
new file mode 100644
index 0000000..25b9c60
--- /dev/null
+++ b/src/doc_reform/io_out/rgx_latex.d
@@ -0,0 +1,68 @@
+/+
+- Name: Spine, Doc Reform [a part of]
+ - Description: documents, structuring, processing, publishing, search
+ - static content generator
+
+ - Author: Ralph Amissah
+ [ralph.amissah@gmail.com]
+
+ - Copyright: (C) 2015 - 2022 Ralph Amissah, All Rights
+ Reserved.
+
+ - License: AGPL 3 or later:
+
+ Spine (SiSU), a framework for document structuring, publishing and
+ search
+
+ Copyright (C) Ralph Amissah
+
+ This program is free software: you can redistribute it and/or modify it
+ under the terms of the GNU AFERO General Public License as published by the
+ Free Software Foundation, either version 3 of the License, or (at your
+ option) any later version.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ more details.
+
+ You should have received a copy of the GNU General Public License along with
+ this program. If not, see [https://www.gnu.org/licenses/].
+
+ If you have Internet connection, the latest version of the AGPL should be
+ available at these locations:
+ [https://www.fsf.org/licensing/licenses/agpl.html]
+ [https://www.gnu.org/licenses/agpl.html]
+
+ - Spine (by Doc Reform, related to SiSU) uses standard:
+ - docReform markup syntax
+ - standard SiSU markup syntax with modified headers and minor modifications
+ - docReform object numbering
+ - standard SiSU object citation numbering & system
+
+ - Homepages:
+ [https://www.doc_reform.org]
+ [https://www.sisudoc.org]
+
+ - Git
+ [https://git.sisudoc.org/projects/?p=software/spine.git;a=summary]
+
++/
+/++
+ regex: regular expressions used in sisu document parser
++/
+module doc_reform.io_out.rgx_latex;
+static template spineRgxLSC() {
+ static struct RgxLSC {
+ static latex_special_char = ctRegex!(`([%${}_#&\\])`);
+ static latex_special_char_for_escape = ctRegex!(`([%${}_#\\])`);
+ static latex_special_char_for_escape_and_braces = ctRegex!(`([&])`);
+ static latex_special_char_for_escape_url = ctRegex!(`([%])`);
+ static latex_special_char_escaped = ctRegex!(`\\([%${}_#\\])`);
+ static latex_special_char_escaped_braced = ctRegex!(`[{]\\([&])[}]`);
+ static latex_identify_inline_link = ctRegex!(`┥.+?┝┤\S+?├`, "mg");
+ static latex_identify_inline_fontface = ctRegex!(`\\([_#$]┨.+?┣)\\([_#$])`, "mg");
+ static latex_clean_internal_link = ctRegex!(`^(?:#|¤\S+?#)`, "m");
+ static latex_clean_bookindex_linebreak = ctRegex!(`\s*\\\\\\\\\s*`, "m");
+ }
+}
diff --git a/src/doc_reform/io_out/rgx_xhtml.d b/src/doc_reform/io_out/rgx_xhtml.d
new file mode 100644
index 0000000..2d9aab1
--- /dev/null
+++ b/src/doc_reform/io_out/rgx_xhtml.d
@@ -0,0 +1,63 @@
+/+
+- Name: Spine, Doc Reform [a part of]
+ - Description: documents, structuring, processing, publishing, search
+ - static content generator
+
+ - Author: Ralph Amissah
+ [ralph.amissah@gmail.com]
+
+ - Copyright: (C) 2015 - 2022 Ralph Amissah, All Rights
+ Reserved.
+
+ - License: AGPL 3 or later:
+
+ Spine (SiSU), a framework for document structuring, publishing and
+ search
+
+ Copyright (C) Ralph Amissah
+
+ This program is free software: you can redistribute it and/or modify it
+ under the terms of the GNU AFERO General Public License as published by the
+ Free Software Foundation, either version 3 of the License, or (at your
+ option) any later version.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ more details.
+
+ You should have received a copy of the GNU General Public License along with
+ this program. If not, see [https://www.gnu.org/licenses/].
+
+ If you have Internet connection, the latest version of the AGPL should be
+ available at these locations:
+ [https://www.fsf.org/licensing/licenses/agpl.html]
+ [https://www.gnu.org/licenses/agpl.html]
+
+ - Spine (by Doc Reform, related to SiSU) uses standard:
+ - docReform markup syntax
+ - standard SiSU markup syntax with modified headers and minor modifications
+ - docReform object numbering
+ - standard SiSU object citation numbering & system
+
+ - Homepages:
+ [https://www.doc_reform.org]
+ [https://www.sisudoc.org]
+
+ - Git
+ [https://git.sisudoc.org/projects/?p=software/spine.git;a=summary]
+
++/
+/++
+ regex: regular expressions used in sisu document parser
++/
+module doc_reform.io_out.rgx_xhtml;
+static template spineRgxXHTML() {
+ static struct RgxXHTML {
+ static ampersand = ctRegex!(`[&]`, "m"); // &amp;
+ static quotation = ctRegex!(`["]`, "m"); // &quot;
+ static less_than = ctRegex!(`[<]`, "m"); // &lt;
+ static greater_than = ctRegex!(`[>]`, "m"); // &gt;
+ static line_break = ctRegex!(` [\\]{2}`, "m"); // <br />
+ }
+}
diff --git a/src/doc_reform/io_out/source_pod.d b/src/doc_reform/io_out/source_pod.d
index 14d63d7..0f9aef7 100644
--- a/src/doc_reform/io_out/source_pod.d
+++ b/src/doc_reform/io_out/source_pod.d
@@ -50,7 +50,9 @@
+/
module doc_reform.io_out.source_pod;
template spinePod() {
- import doc_reform.io_out;
+ import
+ doc_reform.meta.rgx_files,
+ doc_reform.io_out;
import
std.digest.sha,
std.file,
@@ -64,15 +66,15 @@ template spinePod() {
debug(asserts) {
// static assert(is(typeof(doc_matters) == tuple));
}
- mixin spineRgxOut;
+ mixin spineRgxFiles;
string pwd = doc_matters.env.pwd;
auto src_path_info = doc_matters.src_path_info;
auto pth_dr_doc_src = doc_matters.src_path_info;
auto pths_pod = spinePathsPods!()(doc_matters);
mixin spineLanguageCodes;
auto lang = Lang();
- static auto rgx = RgxO();
- assert (doc_matters.src.filename.match(rgx.src_fn));
+ static auto rgx_files = RgxFiles();
+ assert (doc_matters.src.filename.match(rgx_files.src_fn));
@system auto pod_archive(Z)(
string _source_type,
string _data_in,
diff --git a/src/doc_reform/io_out/sqlite.d b/src/doc_reform/io_out/sqlite.d
index a546998..33c25fe 100644
--- a/src/doc_reform/io_out/sqlite.d
+++ b/src/doc_reform/io_out/sqlite.d
@@ -49,7 +49,10 @@
+/
module doc_reform.io_out.sqlite;
-import doc_reform.io_out;
+import
+ doc_reform.io_out,
+ doc_reform.io_out.rgx,
+ doc_reform.io_out.rgx_xhtml;
import
std.file,
std.uri;
@@ -57,8 +60,10 @@ import std.conv : to;
import std.typecons : Nullable;
import d2sqlite3;
mixin spineRgxOut;
+mixin spineRgxXHTML;
mixin InternalMarkup;
static auto rgx = RgxO();
+static auto rgx_xhtml = RgxXHTML();
static auto mkup = InlineMarkup();
long _metadata_tid_lastrowid;
template SQLiteHubBuildTablesAndPopulate() {
@@ -193,6 +198,7 @@ template SQLiteFormatAndLoadObject() {
M doc_matters,
) {
mixin spineRgxOut;
+ mixin spineRgxXHTML;
struct sqlite_format_and_load_objects {
string generic_munge_sanitize_text_for_search(
string _txt,
@@ -235,15 +241,15 @@ template SQLiteFormatAndLoadObject() {
) {
string _html_special_characters(string _txt){
_txt = _txt
- .replaceAll(rgx.xhtml_ampersand, "&#38;")
- .replaceAll(rgx.xhtml_quotation, "&#34;")
- .replaceAll(rgx.xhtml_less_than, "&#60;")
- .replaceAll(rgx.xhtml_greater_than, "&#62;")
+ .replaceAll(rgx_xhtml.ampersand, "&#38;")
+ .replaceAll(rgx_xhtml.quotation, "&#34;")
+ .replaceAll(rgx_xhtml.less_than, "&#60;")
+ .replaceAll(rgx_xhtml.greater_than, "&#62;")
.replaceAll(rgx.nbsp_char, " ")
.replaceAll(rgx.br_line_inline, "<br />")
.replaceAll(rgx.br_line, "<br />")
.replaceAll(rgx.br_line_spaced, "<br /><br />")
- .replaceAll(rgx.xhtml_line_break, "<br />");
+ .replaceAll(rgx_xhtml.line_break, "<br />");
return _txt;
}
string _html_font_face(string _txt){
@@ -272,23 +278,23 @@ template SQLiteFormatAndLoadObject() {
}
string html_special_characters(string _txt){
_txt = _txt
- .replaceAll(rgx.xhtml_ampersand, "&#38;")
- .replaceAll(rgx.xhtml_quotation, "&#34;")
- .replaceAll(rgx.xhtml_less_than, "&#60;")
- .replaceAll(rgx.xhtml_greater_than, "&#62;")
+ .replaceAll(rgx_xhtml.ampersand, "&#38;")
+ .replaceAll(rgx_xhtml.quotation, "&#34;")
+ .replaceAll(rgx_xhtml.less_than, "&#60;")
+ .replaceAll(rgx_xhtml.greater_than, "&#62;")
.replaceAll(rgx.nbsp_char, " ")
.replaceAll(rgx.br_line_inline, "<br />")
.replaceAll(rgx.br_line, "<br />")
.replaceAll(rgx.br_line_spaced, "<br /><br />")
- .replaceAll(rgx.xhtml_line_break, "<br />");
+ .replaceAll(rgx_xhtml.line_break, "<br />");
return _txt;
}
string html_special_characters_code(string _txt){
_txt = _txt
- .replaceAll(rgx.xhtml_ampersand, "&#38;")
- .replaceAll(rgx.xhtml_quotation, "&#34;")
- .replaceAll(rgx.xhtml_less_than, "&#60;")
- .replaceAll(rgx.xhtml_greater_than, "&#62;")
+ .replaceAll(rgx_xhtml.ampersand, "&#38;")
+ .replaceAll(rgx_xhtml.quotation, "&#34;")
+ .replaceAll(rgx_xhtml.less_than, "&#60;")
+ .replaceAll(rgx_xhtml.greater_than, "&#62;")
.replaceAll(rgx.nbsp_char, " ");
return _txt;
}
@@ -314,6 +320,7 @@ template SQLiteFormatAndLoadObject() {
string _xml_type = "seg",
) {
static auto rgx = RgxO();
+ static auto rgx_xhtml = RgxXHTML();
if (obj.metainfo.is_a == "group") {
_txt = (_txt)
.replaceAll(rgx.grouped_para_indent_1,
@@ -1614,7 +1621,7 @@ template SQLiteTablesCreate() {
: "";
if (db_filename.length > 0 && db_path.length > 0) {
if ((opt_action.vox_gt1)) {
- writeln("db name & path: ", db_path, db_filename);
+ writeln("db name & path: ", db_path, "/", db_filename);
}
auto pth_sqlite = spinePathsSQLite!()(db_filename, db_path);
pth_sqlite.base.mkdirRecurse;
diff --git a/src/doc_reform/io_out/xmls.d b/src/doc_reform/io_out/xmls.d
index 0b0dce7..131dbb6 100644
--- a/src/doc_reform/io_out/xmls.d
+++ b/src/doc_reform/io_out/xmls.d
@@ -57,12 +57,17 @@ template outputXHTMLs() {
std.conv : to;
import
doc_reform.io_out,
+ doc_reform.io_out.rgx,
+ doc_reform.meta.rgx_files,
+ doc_reform.io_out.rgx_xhtml,
doc_reform.io_out.create_zip_file,
doc_reform.io_out.xmls,
doc_reform.io_out.xmls_css;
mixin spineRgxOut;
+ mixin spineRgxXHTML;
struct outputXHTMLs {
static auto rgx = RgxO();
+ static auto rgx_xhtml = RgxXHTML();
@safe string div_delimit(
string part,
return ref string previous_part
@@ -95,10 +100,10 @@ template outputXHTMLs() {
}
@safe string special_characters_text(string _txt) {
_txt = _txt
- .replaceAll(rgx.xhtml_ampersand, "&amp;") // "&#38;"
- .replaceAll(rgx.xhtml_quotation, "&quot;") // "&#34;"
- .replaceAll(rgx.xhtml_less_than, "&lt;") // "&#60;"
- .replaceAll(rgx.xhtml_greater_than, "&gt;") // "&#62;"
+ .replaceAll(rgx_xhtml.ampersand, "&amp;") // "&#38;"
+ .replaceAll(rgx_xhtml.quotation, "&quot;") // "&#34;"
+ .replaceAll(rgx_xhtml.less_than, "&lt;") // "&#60;"
+ .replaceAll(rgx_xhtml.greater_than, "&gt;") // "&#62;"
.replaceAll(rgx.br_line, "<br />")
.replaceAll(rgx.br_line_inline, "<br />")
.replaceAll(rgx.br_line_spaced, "<br />\n<br />")
@@ -161,7 +166,7 @@ template outputXHTMLs() {
}
if (!(obj.metainfo.is_a == "code")) {
_txt = (_txt)
- .replaceAll(rgx.xhtml_line_break, "<br />");
+ .replaceAll(rgx_xhtml.line_break, "<br />");
}
return _txt;
}
diff --git a/src/doc_reform/meta/conf_make_meta_structs.d b/src/doc_reform/meta/conf_make_meta_structs.d
index 966e8d0..c6e7692 100644
--- a/src/doc_reform/meta/conf_make_meta_structs.d
+++ b/src/doc_reform/meta/conf_make_meta_structs.d
@@ -61,9 +61,12 @@ import
std.conv : to;
import
doc_reform.meta.defaults,
+ doc_reform.meta.rgx_yaml,
doc_reform.meta.rgx;
mixin spineRgxIn;
static auto rgx = RgxI();
+mixin spineRgxYamlTags;
+static auto rgx_y = RgxYaml();
mixin InternalMarkup;
static auto mkup = InlineMarkup();
@safe string url_markup(string line) {
diff --git a/src/doc_reform/meta/conf_make_meta_yaml.d b/src/doc_reform/meta/conf_make_meta_yaml.d
index caf560f..fa87f9c 100644
--- a/src/doc_reform/meta/conf_make_meta_yaml.d
+++ b/src/doc_reform/meta/conf_make_meta_yaml.d
@@ -68,6 +68,7 @@ template contentYAMLtoSpineStruct() {
import
doc_reform.meta.conf_make_meta_structs,
doc_reform.meta.defaults,
+ doc_reform.meta.rgx_yaml,
doc_reform.meta.rgx;
ConfComposite _struct_composite;
@system auto contentYAMLtoSpineStruct(C,Y,M,O,Cfg)(
@@ -80,6 +81,8 @@ template contentYAMLtoSpineStruct() {
) {
mixin spineRgxIn;
static auto rgx = RgxI();
+ mixin spineRgxYamlTags;
+ static auto rgx_y = RgxYaml();
string check_input_markup()(
string _txt,
) {
@@ -107,11 +110,11 @@ template contentYAMLtoSpineStruct() {
: _cfg.http_request_type;
if (("webserv" in _yaml && _yaml["webserv"].type.sequence)
&& (_yaml["webserv"].type.mapping
- && _yaml["webserv"].tag.match(rgx.yaml_tag_is_map))
+ && _yaml["webserv"].tag.match(rgx_y.yaml_tag_is_map))
) {
if ("http" in _yaml["webserv"]
&& _yaml["webserv"]["http"].type.string
- && _yaml["webserv"]["http"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["webserv"]["http"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.w_srv_http
= _yaml["webserv"]["http"].get!string;
@@ -128,11 +131,11 @@ template contentYAMLtoSpineStruct() {
: _cfg.cgi_search_form_title;
if (("webserv" in _yaml && _yaml["webserv"].type.sequence)
&& (_yaml["webserv"].type.mapping
- && _yaml["webserv"].tag.match(rgx.yaml_tag_is_map))
+ && _yaml["webserv"].tag.match(rgx_y.yaml_tag_is_map))
) {
if ("cgi_search_form_title" in _yaml["webserv"]
&& _yaml["webserv"]["cgi_search_form_title"].type.string
- && _yaml["webserv"]["cgi_search_form_title"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["webserv"]["cgi_search_form_title"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.w_srv_cgi_search_form_title
= _yaml["webserv"]["cgi_search_form_title"].get!string;
@@ -149,11 +152,11 @@ template contentYAMLtoSpineStruct() {
: _cfg.cgi_filename;
if (("webserv" in _yaml && _yaml["webserv"].type.sequence)
&& (_yaml["webserv"].type.mapping
- && _yaml["webserv"].tag.match(rgx.yaml_tag_is_map))
+ && _yaml["webserv"].tag.match(rgx_y.yaml_tag_is_map))
) {
if ("cgi_search_script" in _yaml["webserv"]
&& _yaml["webserv"]["cgi_search_script"].type.string
- && _yaml["webserv"]["cgi_search_script"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["webserv"]["cgi_search_script"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.w_srv_cgi_search_script
= _yaml["webserv"]["cgi_search_script"].get!string;
@@ -170,11 +173,11 @@ template contentYAMLtoSpineStruct() {
: _cfg.db_sqlite_filename;
if (("webserv" in _yaml && _yaml["webserv"].type.sequence)
&& (_yaml["webserv"].type.mapping
- && _yaml["webserv"].tag.match(rgx.yaml_tag_is_map))
+ && _yaml["webserv"].tag.match(rgx_y.yaml_tag_is_map))
) {
if ("db_sqlite_filename" in _yaml["webserv"]
&& _yaml["webserv"]["db_sqlite_filename"].type.string
- && _yaml["webserv"]["db_sqlite_filename"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["webserv"]["db_sqlite_filename"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.w_srv_db_sqlite_filename
= _yaml["webserv"]["db_sqlite_filename"].get!string;
@@ -191,11 +194,11 @@ template contentYAMLtoSpineStruct() {
: _cfg.db_sqlite_path;
if (("webserv" in _yaml && _yaml["webserv"].type.sequence)
&& (_yaml["webserv"].type.mapping
- && _yaml["webserv"].tag.match(rgx.yaml_tag_is_map))
+ && _yaml["webserv"].tag.match(rgx_y.yaml_tag_is_map))
) {
if ("db_sqlite_path" in _yaml["webserv"]
&& _yaml["webserv"]["db_sqlite_path"].type.string
- && _yaml["webserv"]["db_sqlite_path"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["webserv"]["db_sqlite_path"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.w_srv_db_sqlite_path
= _yaml["webserv"]["db_sqlite_path"].get!string;
@@ -212,11 +215,11 @@ template contentYAMLtoSpineStruct() {
: _cfg.www_url_doc_root;
if (("webserv" in _yaml && _yaml["webserv"].type.sequence)
&& (_yaml["webserv"].type.mapping
- && _yaml["webserv"].tag.match(rgx.yaml_tag_is_map))
+ && _yaml["webserv"].tag.match(rgx_y.yaml_tag_is_map))
) {
if ("cgi_action" in _yaml["webserv"]
&& _yaml["webserv"]["cgi_action"].type.string
- && _yaml["webserv"]["cgi_action"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["webserv"]["cgi_action"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.w_srv_cgi_action
= _yaml["webserv"]["cgi_action"].get!string;
@@ -239,14 +242,14 @@ template contentYAMLtoSpineStruct() {
: _cfg.processing_path_doc_root;
if (("webserv" in _yaml && _yaml["webserv"].type.sequence)
&& (_yaml["webserv"].type.mapping
- && _yaml["webserv"].tag.match(rgx.yaml_tag_is_map))
+ && _yaml["webserv"].tag.match(rgx_y.yaml_tag_is_map))
) {
if (_yaml["output"].type.mapping
- && _yaml["output"].tag.match(rgx.yaml_tag_is_map)
+ && _yaml["output"].tag.match(rgx_y.yaml_tag_is_map)
) {
if ("path" in _yaml["output"]
&& _yaml["output"]["path"].type.string
- && _yaml["output"]["path"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["output"]["path"].tag.match(rgx_y.yaml_tag_is_str)
) {
if (_manifested.output.path == _manifested.env.pwd
&& _yaml["output"]["path"].get!string.length > 0
@@ -267,11 +270,11 @@ template contentYAMLtoSpineStruct() {
: _cfg.processing_path_doc_root;
if (("webserv" in _yaml && _yaml["webserv"].type.sequence)
&& (_yaml["webserv"].type.mapping
- && _yaml["webserv"].tag.match(rgx.yaml_tag_is_map))
+ && _yaml["webserv"].tag.match(rgx_y.yaml_tag_is_map))
) {
if ("data_root_path" in _yaml["webserv"]
&& _yaml["webserv"]["data_root_path"].type.string
- && _yaml["webserv"]["data_root_path"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["webserv"]["data_root_path"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.w_srv_data_root_path
= _yaml["webserv"]["data_root_path"].get!string;
@@ -289,11 +292,11 @@ template contentYAMLtoSpineStruct() {
: _cfg.cgi_bin_root;
if (("webserv" in _yaml && _yaml["webserv"].type.sequence)
&& (_yaml["webserv"].type.mapping
- && _yaml["webserv"].tag.match(rgx.yaml_tag_is_map))
+ && _yaml["webserv"].tag.match(rgx_y.yaml_tag_is_map))
) {
if ("cgi_bin_path" in _yaml["webserv"]
&& _yaml["webserv"]["cgi_bin_path"].type.string
- && _yaml["webserv"]["cgi_bin_path"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["webserv"]["cgi_bin_path"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.w_srv_cgi_bin_path
= _yaml["webserv"]["cgi_bin_path"].get!string;
@@ -304,11 +307,11 @@ template contentYAMLtoSpineStruct() {
= "";
if (("webserv" in _yaml && _yaml["webserv"].type.sequence)
&& (_yaml["webserv"].type.mapping
- && _yaml["webserv"].tag.match(rgx.yaml_tag_is_map))
+ && _yaml["webserv"].tag.match(rgx_y.yaml_tag_is_map))
) {
if ("data_root_part" in _yaml["webserv"]
&& _yaml["webserv"]["data_root_part"].type.string
- && _yaml["webserv"]["data_root_part"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["webserv"]["data_root_part"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.w_srv_data_root_part = _yaml["webserv"]["data_root_part"].get!string;
}
@@ -318,11 +321,11 @@ template contentYAMLtoSpineStruct() {
= "image";
if (("webserv" in _yaml && _yaml["webserv"].type.sequence)
&& (_yaml["webserv"].type.mapping
- && _yaml["webserv"].tag.match(rgx.yaml_tag_is_map))
+ && _yaml["webserv"].tag.match(rgx_y.yaml_tag_is_map))
) {
if ("images_root_part" in _yaml["webserv"]
&& _yaml["webserv"]["images_root_part"].type.string
- && _yaml["webserv"]["images_root_part"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["webserv"]["images_root_part"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.w_srv_images_root_part = _yaml["webserv"]["images_root_part"].get!string;
}
@@ -332,31 +335,31 @@ template contentYAMLtoSpineStruct() {
if (("webserv" in _yaml
&& _yaml["webserv"].type.sequence)
&& (_yaml["webserv"].type.mapping
- && _yaml["webserv"].tag.match(rgx.yaml_tag_is_map))
+ && _yaml["webserv"].tag.match(rgx_y.yaml_tag_is_map))
) { // cannot be used as is with opt_action FIX look at remaining, decide what to do later
if ("data_http" in _yaml["webserv"]
&& _yaml["webserv"]["data_http"].type.string
- && _yaml["webserv"]["data_http"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["webserv"]["data_http"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.w_srv_data_http = _yaml["webserv"]["data_http"].get!string;
}
// if (_opt_action.*.length > 0) {
if ("cgi_http" in _yaml["webserv"]
&& _yaml["webserv"]["cgi_http"].type.string
- && _yaml["webserv"]["cgi_http"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["webserv"]["cgi_http"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.w_srv_cgi_http = _yaml["webserv"]["cgi_http"].get!string;
}
// if (_opt_action.*.length > 0) {
if ("host" in _yaml["webserv"]
&& _yaml["webserv"]["host"].type.string
- && _yaml["webserv"]["host"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["webserv"]["host"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.w_srv_host = _yaml["webserv"]["host"].get!string;
}
if ("data_root_url" in _yaml["webserv"]
&& _yaml["webserv"]["data_root_url"].type.string
- && _yaml["webserv"]["data_root_url"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["webserv"]["data_root_url"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.w_srv_data_root_url = _yaml["webserv"]["data_root_url"].get!string;
_struct_composite.conf.w_srv_data_root_url_html =
@@ -373,7 +376,7 @@ template contentYAMLtoSpineStruct() {
}
if ("cgi_host" in _yaml["webserv"]
&& _yaml["webserv"]["cgi_host"].type.string
- && _yaml["webserv"]["cgi_host"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["webserv"]["cgi_host"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.w_srv_cgi_host = _yaml["webserv"]["cgi_host"].get!string;
} else { // composite construct
@@ -381,25 +384,25 @@ template contentYAMLtoSpineStruct() {
}
if ("cgi_bin_subpath" in _yaml["webserv"]
&& _yaml["webserv"]["cgi_bin_subpath"].type.string
- && _yaml["webserv"]["cgi_bin_subpath"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["webserv"]["cgi_bin_subpath"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.w_srv_cgi_bin_subpath = _yaml["webserv"]["cgi_bin_subpath"].get!string;
}
if ("cgi_port" in _yaml["webserv"]
&& _yaml["webserv"]["cgi_port"].type.string
- && _yaml["webserv"]["cgi_port"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["webserv"]["cgi_port"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.w_srv_cgi_port = _yaml["webserv"]["cgi_port"].get!string;
}
if ("cgi_user" in _yaml["webserv"]
&& _yaml["webserv"]["cgi_user"].type.string
- && _yaml["webserv"]["cgi_user"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["webserv"]["cgi_user"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.w_srv_cgi_user = _yaml["webserv"]["cgi_user"].get!string;
}
if ("cgi_bin_url" in _yaml["webserv"]
&& _yaml["webserv"]["cgi_bin_url"].type.string
- && _yaml["webserv"]["cgi_bin_url"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["webserv"]["cgi_bin_url"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.w_srv_cgi_bin_url = _yaml["webserv"]["cgi_bin_url"].get!string;
} else {
@@ -415,7 +418,7 @@ template contentYAMLtoSpineStruct() {
}
// if ("cgi_file_links" in _yaml["webserv"]
// && _yaml["webserv"]["cgi_file_links"].type.string
- // && _yaml["webserv"]["cgi_file_links"].tag.match(rgx.yaml_tag_is_str)
+ // && _yaml["webserv"]["cgi_file_links"].tag.match(rgx_y.yaml_tag_is_str)
// ) {
// _struct_composite.conf.w_srv_cgi_file_links = _yaml["webserv"]["cgi_file_links"].get!string;
// }
@@ -425,11 +428,11 @@ template contentYAMLtoSpineStruct() {
&& _yaml["processing"].type.sequence
) {
if (_yaml["processing"].type.mapping
- && _yaml["processing"].tag.match(rgx.yaml_tag_is_map)
+ && _yaml["processing"].tag.match(rgx_y.yaml_tag_is_map)
) {
if ("concord_max" in _yaml["processing"]
&& _yaml["processing"]["concord_max"].type.string
- && _yaml["processing"]["concord_max"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["processing"]["concord_max"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.processing_concord_max = _yaml["processing"]["concord_max"].get!string;
}
@@ -439,65 +442,65 @@ template contentYAMLtoSpineStruct() {
&& _yaml["flag"].type.sequence
) {
if (_yaml["flag"].type.mapping
- && _yaml["flag"].tag.match(rgx.yaml_tag_is_map)
+ && _yaml["flag"].tag.match(rgx_y.yaml_tag_is_map)
) {
if ("act0" in _yaml["flag"]
&& _yaml["flag"]["act0"].type.string
- && _yaml["flag"]["act0"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["flag"]["act0"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.flag_act0 = _yaml["flag"]["act0"].get!string;
}
if ("act1" in _yaml["flag"]
&& _yaml["flag"]["act1"].type.string
- && _yaml["flag"]["act1"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["flag"]["act1"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.flag_act1 = _yaml["flag"]["act1"].get!string;
}
if ("act2" in _yaml["flag"]
&& _yaml["flag"]["act2"].type.string
- && _yaml["flag"]["act2"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["flag"]["act2"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.flag_act2 = _yaml["flag"]["act2"].get!string;
}
if ("act3" in _yaml["flag"]
&& _yaml["flag"]["act3"].type.string
- && _yaml["flag"]["act3"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["flag"]["act3"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.flag_act3 = _yaml["flag"]["act3"].get!string;
}
if ("act4" in _yaml["flag"]
&& _yaml["flag"]["act4"].type.string
- && _yaml["flag"]["act4"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["flag"]["act4"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.flag_act4 = _yaml["flag"]["act4"].get!string;
}
if ("act5" in _yaml["flag"]
&& _yaml["flag"]["act5"].type.string
- && _yaml["flag"]["act5"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["flag"]["act5"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.flag_act5 = _yaml["flag"]["act5"].get!string;
}
if ("act6" in _yaml["flag"]
&& _yaml["flag"]["act6"].type.string
- && _yaml["flag"]["act6"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["flag"]["act6"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.flag_act6 = _yaml["flag"]["act6"].get!string;
}
if ("act7" in _yaml["flag"]
&& _yaml["flag"]["act7"].type.string
- && _yaml["flag"]["act7"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["flag"]["act7"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.flag_act7 = _yaml["flag"]["act7"].get!string;
}
if ("act8" in _yaml["flag"]
&& _yaml["flag"]["act8"].type.string
- && _yaml["flag"]["act8"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["flag"]["act8"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.flag_act8 = _yaml["flag"]["act8"].get!string;
}
if ("act9" in _yaml["flag"]
&& _yaml["flag"]["act9"].type.string
- && _yaml["flag"]["act9"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["flag"]["act9"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.flag_act9 = _yaml["flag"]["act9"].get!string;
}
@@ -574,7 +577,7 @@ template contentYAMLtoSpineStruct() {
: _cfg.default_papersize;
if ("papersize" in _yaml["default"]
&& _yaml["default"]["papersize"].type.string
- && _yaml["default"]["papersize"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["default"]["papersize"].tag.match(rgx_y.yaml_tag_is_str)
) {
_set_papersize
= _yaml["default"]["papersize"].get!string;
@@ -585,29 +588,29 @@ template contentYAMLtoSpineStruct() {
"default" in _yaml
&& _yaml["default"].type.sequence
&& _yaml["default"].type.mapping
- && _yaml["default"].tag.match(rgx.yaml_tag_is_map)
+ && _yaml["default"].tag.match(rgx_y.yaml_tag_is_map)
) {
if ("text_wrap" in _yaml["default"]
&& _yaml["default"]["text_wrap"].type.string
- && _yaml["default"]["text_wrap"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["default"]["text_wrap"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.set_text_wrap = _yaml["default"]["text_wrap"].get!string;
}
if ("emphasis" in _yaml["default"]
&& _yaml["default"]["emphasis"].type.string
- && _yaml["default"]["emphasis"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["default"]["emphasis"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.set_emphasis = _yaml["default"]["emphasis"].get!string;
}
if ("language" in _yaml["default"]
&& _yaml["default"]["language"].type.string
- && _yaml["default"]["language"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["default"]["language"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.set_language = _yaml["default"]["language"].get!string;
}
if ("digest" in _yaml["default"]
&& _yaml["default"]["digest"].type.string
- && _yaml["default"]["digest"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["default"]["digest"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.set_digest = _yaml["default"]["digest"].get!string;
}
@@ -616,29 +619,29 @@ template contentYAMLtoSpineStruct() {
&& _yaml["search"].type.sequence
) {
if (_yaml["search"].type.mapping
- && _yaml["search"].tag.match(rgx.yaml_tag_is_map)
+ && _yaml["search"].tag.match(rgx_y.yaml_tag_is_map)
) {
if ("flag" in _yaml["search"]
&& _yaml["search"]["flag"].type.string
- && _yaml["search"]["flag"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["search"]["flag"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.search_flag = _yaml["search"]["flag"].get!string;
}
if ("action" in _yaml["search"]
&& _yaml["search"]["action"].type.string
- && _yaml["search"]["action"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["search"]["action"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.search_action = _yaml["search"]["action"].get!string;
}
if ("db" in _yaml["search"]
&& _yaml["search"]["db"].type.string
- && _yaml["search"]["db"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["search"]["db"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.search_db = _yaml["search"]["db"].get!string;
}
if ("title" in _yaml["search"]
&& _yaml["search"]["title"].type.string
- && _yaml["search"]["title"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["search"]["title"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.conf.search_title = _yaml["search"]["title"].get!string;
}
@@ -650,47 +653,47 @@ template contentYAMLtoSpineStruct() {
&& _yaml["make"].type.sequence
) {
if (_yaml["make"].type.mapping
- && _yaml["make"].tag.match(rgx.yaml_tag_is_map)
+ && _yaml["make"].tag.match(rgx_y.yaml_tag_is_map)
) {
if ("doc_type" in _yaml["make"]
&& _yaml["make"]["doc_type"].type.string
- && _yaml["make"]["doc_type"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["make"]["doc_type"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.make_str.doc_type = _yaml["make"]["doc_type"].get!string;
}
if ("breaks" in _yaml["make"]
&& _yaml["make"]["breaks"].type.string
- && _yaml["make"]["breaks"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["make"]["breaks"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.make_str.breaks = _yaml["make"]["breaks"].get!string;
}
if ("bold" in _yaml["make"]
&& _yaml["make"]["bold"].type.string
- && _yaml["make"]["bold"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["make"]["bold"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.make_str.bold = _yaml["make"]["bold"].get!string;
}
if ("cover_image" in _yaml["make"]
&& _yaml["make"]["cover_image"].type.string
- && _yaml["make"]["cover_image"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["make"]["cover_image"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.make_str.cover_image = _yaml["make"]["cover_image"].get!string;
}
if ("css" in _yaml["make"]
&& _yaml["make"]["css"].type.string
- && _yaml["make"]["css"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["make"]["css"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.make_str.css = _yaml["make"]["css"].get!string;
}
if ("emphasis" in _yaml["make"]
&& _yaml["make"]["emphasis"].type.string
- && _yaml["make"]["emphasis"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["make"]["emphasis"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.make_str.emphasis = _yaml["make"]["emphasis"].get!string;
}
if ("footer" in _yaml["make"]
&& _yaml["make"]["footer"].type.string
- && _yaml["make"]["footer"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["make"]["footer"].tag.match(rgx_y.yaml_tag_is_str)
) {
char[][] __match_footer_array
= (cast(char[]) _yaml["make"]["footer"].get!string)
@@ -699,7 +702,7 @@ template contentYAMLtoSpineStruct() {
}
if ("headings" in _yaml["make"]
&& _yaml["make"]["headings"].type.string
- && _yaml["make"]["headings"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["make"]["headings"].tag.match(rgx_y.yaml_tag_is_str)
) {
char[][] __match_headings_array
= (cast(char[]) _yaml["make"]["headings"].get!string)
@@ -707,7 +710,7 @@ template contentYAMLtoSpineStruct() {
_struct_composite.make_str.headings = __match_headings_array.to!(string[]);
} else if ("headings" in _yaml["make"]
&& _yaml["make"]["headings"].type.string
- && _yaml["make"]["headings"].tag.match(rgx.yaml_tag_is_seq)
+ && _yaml["make"]["headings"].tag.match(rgx_y.yaml_tag_is_seq)
) {
foreach(string identify_heading_level; _yaml["make"]["headings"]) {
_struct_composite.make_str.headings ~= identify_heading_level;
@@ -715,7 +718,7 @@ template contentYAMLtoSpineStruct() {
}
if ("home_button_image" in _yaml["make"]
&& _yaml["make"]["home_button_image"].type.string
- && _yaml["make"]["home_button_image"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["make"]["home_button_image"].tag.match(rgx_y.yaml_tag_is_str)
) {
char[][] __match_home_button_image_array
= (cast(char[]) _yaml["make"]["home_button_image"].get!string)
@@ -724,12 +727,12 @@ template contentYAMLtoSpineStruct() {
}
if ("home_button_text" in _yaml["make"]
&& _yaml["make"]["home_button_text"].type.string
- && _yaml["make"]["home_button_text"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["make"]["home_button_text"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.make_str.home_button_text = _yaml["make"]["home_button_text"].get!string;
} else if ("home_button_text" in _yaml["make"]
&& _yaml["make"]["home_button_text"].type.string
- && _yaml["make"]["home_button_text"].tag.match(rgx.yaml_tag_is_seq)
+ && _yaml["make"]["home_button_text"].tag.match(rgx_y.yaml_tag_is_seq)
) {
_struct_composite.make_str.home_button_text = "";
foreach(string hbt; _yaml["make"]["home_button_text"]) {
@@ -738,13 +741,13 @@ template contentYAMLtoSpineStruct() {
}
if ("italics" in _yaml["make"]
&& _yaml["make"]["italics"].type.string
- && _yaml["make"]["italics"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["make"]["italics"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.make_str.italics = _yaml["make"]["italics"].get!string;
}
if ("auto_num_top_at_level" in _yaml["make"]
&& _yaml["make"]["auto_num_top_at_level"].type.string
- && _yaml["make"]["auto_num_top_at_level"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["make"]["auto_num_top_at_level"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.make_str.auto_num_top_at_level = _yaml["make"]["auto_num_top_at_level"].get!string;
switch (_yaml["make"]["auto_num_top_at_level"].get!string) {
@@ -770,12 +773,12 @@ template contentYAMLtoSpineStruct() {
}
if ("auto_num_depth" in _yaml["make"]
&& _yaml["make"]["auto_num_depth"].type.string
- && _yaml["make"]["auto_num_depth"].tag.match(rgx.yaml_tag_is_int)
+ && _yaml["make"]["auto_num_depth"].tag.match(rgx_y.yaml_tag_is_int)
) { // not sure implemented for documents
_struct_composite.make_str.auto_num_depth = _yaml["make"]["auto_num_depth"].get!int;
} else if ("auto_num_depth" in _yaml["make"]
&& _yaml["make"]["auto_num_depth"].type.string
- && _yaml["make"]["auto_num_depth"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["make"]["auto_num_depth"].tag.match(rgx_y.yaml_tag_is_str)
) { // not sure implemented for documents
_struct_composite.make_str.auto_num_depth = _yaml["make"]["auto_num_depth"].get!int;
}
@@ -808,34 +811,34 @@ template contentYAMLtoSpineStruct() {
&& _yaml["creator"].type.sequence
) {
if (_yaml["creator"].type.mapping
- && _yaml["creator"].tag.match(rgx.yaml_tag_is_map)
+ && _yaml["creator"].tag.match(rgx_y.yaml_tag_is_map)
) {
if ("author" in _yaml["creator"]
&& _yaml["creator"]["author"].type.string
- && _yaml["creator"]["author"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["creator"]["author"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.creator_author = _yaml["creator"]["author"].get!string;
}
if ("email" in _yaml["creator"]
&& _yaml["creator"]["email"].type.string
- && _yaml["creator"]["email"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["creator"]["email"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.creator_author_email = _yaml["creator"]["email"].get!string;
}
if ("illustrator" in _yaml["creator"]
&& _yaml["creator"]["illustrator"].type.string
- && _yaml["creator"]["illustrator"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["creator"]["illustrator"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.creator_illustrator = _yaml["creator"]["illustrator"].get!string;
}
if ("translator" in _yaml["creator"]
&& _yaml["creator"]["translator"].type.string
- && _yaml["creator"]["translator"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["creator"]["translator"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.creator_translator = _yaml["creator"]["translator"].get!string;
}
} else if (_yaml["creator"].type.string
- && _yaml["creator"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["creator"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.creator_author = _yaml["creator"].get!string;
}
@@ -875,57 +878,57 @@ template contentYAMLtoSpineStruct() {
&& _yaml["title"].type.sequence
) {
if (_yaml["title"].type.mapping
- && _yaml["title"].tag.match(rgx.yaml_tag_is_map)
+ && _yaml["title"].tag.match(rgx_y.yaml_tag_is_map)
) {
if ("main" in _yaml["title"]
&& _yaml["title"]["main"].type.string
- && _yaml["title"]["main"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["title"]["main"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.title_main = _yaml["title"]["main"].get!string;
} else if ("title" in _yaml["title"]
&& _yaml["title"]["title"].type.string
- && _yaml["title"]["title"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["title"]["title"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.title_main = _yaml["title"]["title"].get!string;
}
if ("edition" in _yaml["title"]
&& _yaml["title"]["edition"].type.string
- && _yaml["title"]["edition"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["title"]["edition"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.title_edition = _yaml["title"]["edition"].get!string;
}
if ("full" in _yaml["title"]
&& _yaml["title"]["full"].type.string
- && _yaml["title"]["full"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["title"]["full"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.title_full = _yaml["title"]["full"].get!string;
}
if ("language" in _yaml["title"]
&& _yaml["title"]["language"].type.string
- && _yaml["title"]["language"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["title"]["language"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.title_language = _yaml["title"]["language"].get!string;
}
if ("note" in _yaml["title"]
&& _yaml["title"]["note"].type.string
- && _yaml["title"]["note"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["title"]["note"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.title_note = _yaml["title"]["note"].get!string;
}
if ("subtitle" in _yaml["title"]
&& _yaml["title"]["subtitle"].type.string
- && _yaml["title"]["subtitle"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["title"]["subtitle"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.title_subtitle = _yaml["title"]["subtitle"].get!string;
} else if ("sub" in _yaml["title"]
&& _yaml["title"]["sub"].type.string
- && _yaml["title"]["sub"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["title"]["sub"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.title_subtitle = _yaml["title"]["sub"].get!string;
}
} else if (
_yaml["title"].type.string
- && _yaml["title"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["title"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.title_main = _yaml["title"].get!string;
}
@@ -947,29 +950,29 @@ template contentYAMLtoSpineStruct() {
&& _yaml["classify"].type.sequence
) {
if (_yaml["classify"].type.mapping
- && _yaml["classify"].tag.match(rgx.yaml_tag_is_map)
+ && _yaml["classify"].tag.match(rgx_y.yaml_tag_is_map)
) {
if ("dewey" in _yaml["classify"]
&& _yaml["classify"]["dewey"].type.string
- && _yaml["classify"]["dewey"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["classify"]["dewey"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.classify_dewey = _yaml["classify"]["dewey"].get!string;
}
if ("loc" in _yaml["classify"]
&& _yaml["classify"]["loc"].type.string
- && _yaml["classify"]["loc"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["classify"]["loc"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.classify_loc = _yaml["classify"]["loc"].get!string;
}
if ("keywords" in _yaml["classify"]
&& _yaml["classify"]["keywords"].type.string
- && _yaml["classify"]["keywords"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["classify"]["keywords"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.classify_keywords = _yaml["classify"]["keywords"].get!string;
}
if ("topic_register" in _yaml["classify"]
&& _yaml["classify"]["topic_register"].type.string
- && _yaml["classify"]["topic_register"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["classify"]["topic_register"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.classify_topic_register = _yaml["classify"]["topic_register"].get!string;
if (_struct_composite.meta.classify_topic_register.length > 0) {
@@ -1017,47 +1020,47 @@ template contentYAMLtoSpineStruct() {
&& _yaml["date"].type.sequence
) {
if (_yaml["date"].type.mapping
- && _yaml["date"].tag.match(rgx.yaml_tag_is_map)
+ && _yaml["date"].tag.match(rgx_y.yaml_tag_is_map)
) {
if ("added_to_site" in _yaml["date"]
&& _yaml["date"]["added_to_site"].type.string
- && _yaml["date"]["added_to_site"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["date"]["added_to_site"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.date_added_to_site = _yaml["date"]["added_to_site"].get!string;
}
if ("available" in _yaml["date"]
&& _yaml["date"]["available"].type.string
- && _yaml["date"]["available"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["date"]["available"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.date_available = _yaml["date"]["available"].get!string;
}
if ("created" in _yaml["date"]
&& _yaml["date"]["created"].type.string
- && _yaml["date"]["created"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["date"]["created"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.date_created = _yaml["date"]["created"].get!string;
}
if ("issued" in _yaml["date"]
&& _yaml["date"]["issued"].type.string
- && _yaml["date"]["issued"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["date"]["issued"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.date_issued = _yaml["date"]["issued"].get!string;
}
if ("modified" in _yaml["date"]
&& _yaml["date"]["modified"].type.string
- && _yaml["date"]["modified"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["date"]["modified"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.date_modified = _yaml["date"]["modified"].get!string;
}
if ("published" in _yaml["date"]
&& _yaml["date"]["published"].type.string
- && _yaml["date"]["published"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["date"]["published"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.date_published = _yaml["date"]["published"].get!string;
}
if ("valid" in _yaml["date"]
&& _yaml["date"]["valid"].type.string
- && _yaml["date"]["valid"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["date"]["valid"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.date_valid = _yaml["date"]["valid"].get!string;
}
@@ -1073,23 +1076,23 @@ template contentYAMLtoSpineStruct() {
&& _yaml["notes"].type.sequence
) {
if (_yaml["notes"].type.mapping
- && _yaml["notes"].tag.match(rgx.yaml_tag_is_map)
+ && _yaml["notes"].tag.match(rgx_y.yaml_tag_is_map)
) {
if ("abstract" in _yaml["notes"]
&& _yaml["notes"]["abstract"].type.string
- && _yaml["notes"]["abstract"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["notes"]["abstract"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.notes_abstract = _yaml["notes"]["abstract"].get!string;
}
if ("description" in _yaml["notes"]
&& _yaml["notes"]["description"].type.string
- && _yaml["notes"]["description"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["notes"]["description"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.notes_description = _yaml["notes"]["description"].get!string;
}
if ("summary" in _yaml["notes"]
&& _yaml["notes"]["summary"].type.string
- && _yaml["notes"]["summary"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["notes"]["summary"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.notes_summary = _yaml["notes"]["summary"].get!string;
}
@@ -1099,29 +1102,29 @@ template contentYAMLtoSpineStruct() {
&& _yaml["original"].type.sequence
) {
if (_yaml["original"].type.mapping
- && _yaml["original"].tag.match(rgx.yaml_tag_is_map)
+ && _yaml["original"].tag.match(rgx_y.yaml_tag_is_map)
) {
if ("language" in _yaml["original"]
&& _yaml["original"]["language"].type.string
- && _yaml["original"]["language"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["original"]["language"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.original_language = _yaml["original"]["language"].get!string;
}
if ("language_char" in _yaml["original"]
&& _yaml["original"]["language_char"].type.string
- && _yaml["original"]["language_char"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["original"]["language_char"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.original_language_char = _yaml["original"]["language_char"].get!string;
}
if ("source" in _yaml["original"]
&& _yaml["original"]["source"].type.string
- && _yaml["original"]["source"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["original"]["source"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.original_source = _yaml["original"]["source"].get!string;
}
if ("title" in _yaml["original"]
&& _yaml["original"]["title"].type.string
- && _yaml["original"]["title"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["original"]["title"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.original_title = _yaml["original"]["title"].get!string;
}
@@ -1136,59 +1139,59 @@ template contentYAMLtoSpineStruct() {
&& _yaml["rights"].type.sequence
) {
if (_yaml["rights"].type.mapping
- && _yaml["rights"].tag.match(rgx.yaml_tag_is_map)
+ && _yaml["rights"].tag.match(rgx_y.yaml_tag_is_map)
) {
if ("copyright" in _yaml["rights"]
&& _yaml["rights"]["copyright"].type.string
- && _yaml["rights"]["copyright"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["rights"]["copyright"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.rights_copyright = check_input_markup(_yaml["rights"]["copyright"].get!string);
}
if ("copyright_text" in _yaml["rights"]
&& _yaml["rights"]["copyright_text"].type.string
- && _yaml["rights"]["copyright_text"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["rights"]["copyright_text"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.rights_copyright_text = _yaml["rights"]["copyright_text"].get!string;
}
if ("copyright_audio" in _yaml["rights"]
&& _yaml["rights"]["copyright_audio"].type.string
- && _yaml["rights"]["copyright_audio"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["rights"]["copyright_audio"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.rights_copyright_audio = _yaml["rights"]["copyright_audio"].get!string;
}
if ("copyright_cover" in _yaml["rights"]
&& _yaml["rights"]["copyright_cover"].type.string
- && _yaml["rights"]["copyright_cover"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["rights"]["copyright_cover"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.rights_copyright_cover = _yaml["rights"]["copyright_cover"].get!string;
}
if ("copyright_illustrations" in _yaml["rights"]
&& _yaml["rights"]["copyright_illustrations"].type.string
- && _yaml["rights"]["copyright_illustrations"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["rights"]["copyright_illustrations"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.rights_copyright_illustrations = _yaml["rights"]["copyright_illustrations"].get!string;
}
if ("copyright_photographs" in _yaml["rights"]
&& _yaml["rights"]["copyright_photographs"].type.string
- && _yaml["rights"]["copyright_photographs"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["rights"]["copyright_photographs"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.rights_copyright_photographs = _yaml["rights"]["copyright_photographs"].get!string;
}
if ("copyright_translation" in _yaml["rights"]
&& _yaml["rights"]["copyright_translation"].type.string
- && _yaml["rights"]["copyright_translation"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["rights"]["copyright_translation"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.rights_copyright_translation = _yaml["rights"]["copyright_translation"].get!string;
}
if ("copyright_video" in _yaml["rights"]
&& _yaml["rights"]["copyright_video"].type.string
- && _yaml["rights"]["copyright_video"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["rights"]["copyright_video"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.rights_copyright_video = _yaml["rights"]["copyright_video"].get!string;
}
if ("license" in _yaml["rights"]
&& _yaml["rights"]["license"].type.string
- && _yaml["rights"]["license"].tag.match(rgx.yaml_tag_is_str)
+ && _yaml["rights"]["license"].tag.match(rgx_y.yaml_tag_is_str)
) {
_struct_composite.meta.rights_license = check_input_markup(_yaml["rights"]["license"].get!string);
}
@@ -1245,10 +1248,13 @@ template docHeaderMakeAndMetaTupYamlExtractAndConvertToStruct() {
import
doc_reform.meta.conf_make_meta_structs,
doc_reform.meta.conf_make_meta_json,
+ doc_reform.meta.rgx_yaml,
doc_reform.meta.rgx;
mixin spineRgxIn;
mixin contentJSONtoSpineStruct;
static auto rgx = RgxI();
+ mixin spineRgxYamlTags;
+ static auto rgx_y = RgxYaml();
@system auto docHeaderMakeAndMetaTupYamlExtractAndConvertToStruct(CCm,Src,M,O,Cfg)(
Src header_src,
CCm _make_and_meta_struct,
diff --git a/src/doc_reform/meta/metadoc.d b/src/doc_reform/meta/metadoc.d
index 16cc6e7..abaa874 100644
--- a/src/doc_reform/meta/metadoc.d
+++ b/src/doc_reform/meta/metadoc.d
@@ -1,3 +1,53 @@
+/+
+- Name: Spine, Doc Reform
+ - Description: documents, structuring, processing, publishing, search
+ - static content generator
+
+ - Author: Ralph Amissah
+ [ralph.amissah@gmail.com]
+
+ - Copyright: (C) 2015 - 2022 Ralph Amissah, All Rights
+ Reserved.
+
+ - License: AGPL 3 or later:
+
+ Spine (SiSU), a framework for document structuring, publishing and
+ search
+
+ Copyright (C) Ralph Amissah
+
+ This program is free software: you can redistribute it and/or modify it
+ under the terms of the GNU AFERO General Public License as published by the
+ Free Software Foundation, either version 3 of the License, or (at your
+ option) any later version.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ more details.
+
+ You should have received a copy of the GNU General Public License along with
+ this program. If not, see [https://www.gnu.org/licenses/].
+
+ If you have Internet connection, the latest version of the AGPL should be
+ available at these locations:
+ [https://www.fsf.org/licensing/licenses/agpl.html]
+ [https://www.gnu.org/licenses/agpl.html]
+
+ - Spine (by Doc Reform, related to SiSU) uses standard:
+ - docReform markup syntax
+ - standard SiSU markup syntax with modified headers and minor modifications
+ - docReform object numbering
+ - standard SiSU object citation numbering & system
+
+ - Homepages:
+ [https://www.doc_reform.org]
+ [https://www.sisudoc.org]
+
+ - Git
+ [https://git.sisudoc.org/projects/?p=software/spine.git;a=summary]
+
++/
module doc_reform.meta.metadoc;
template spineAbstraction() {
import
@@ -8,18 +58,15 @@ template spineAbstraction() {
doc_reform.meta.conf_make_meta_structs,
doc_reform.meta.conf_make_meta_json,
doc_reform.meta.defaults,
- doc_reform.meta.rgx,
doc_reform.io_in.paths_source,
doc_reform.io_in.read_config_files,
doc_reform.io_in.read_source_files,
doc_reform.io_out.hub;
- mixin spineRgxIn;
mixin spineBiblio;
mixin outputHub;
enum headBody { header, body_content, insert_file_list, image_list }
enum makeMeta { make, meta }
enum docAbst { doc_abstract_obj, doc_has }
- static auto rgx = RgxI();
@system auto spineAbstraction(E,P,O,Cfg,M,S)(
E _env,
P program_info,
diff --git a/src/doc_reform/meta/metadoc_from_src.d b/src/doc_reform/meta/metadoc_from_src.d
index 9a0940f..0c23101 100644
--- a/src/doc_reform/meta/metadoc_from_src.d
+++ b/src/doc_reform/meta/metadoc_from_src.d
@@ -65,6 +65,7 @@ template docAbstraction() {
import
doc_reform.meta,
doc_reform.meta.defaults,
+ doc_reform.meta.rgx,
doc_reform.meta.metadoc_object_setter,
doc_reform.meta.rgx;
/+ ↓ abstraction mixins +/
@@ -356,10 +357,10 @@ template docAbstraction() {
static auto rgx = RgxI();
static auto mkup = InlineMarkup();
line = replaceAll!(m => mkup.quote_o ~ m[1] ~ mkup.quote_c)(line, rgx.within_quotes);
- line = replaceAll!(m => mkup.mono ~ mkup.ff_o ~ m["text"] ~ mkup.ff_c ~ mkup.mono)(line, rgx.inline_mark_mono);
- line = replaceAll!(m => mkup.cite ~ mkup.ff_o ~ m["text"] ~ mkup.ff_c ~ mkup.cite)(line, rgx.inline_mark_cite);
+ line = replaceAll!(m => "⑆" ~ mkup.mono ~ mkup.ff_o ~ m["text"] ~ mkup.ff_c ~ mkup.mono)(line, rgx.inline_mark_mono);
+ line = replaceAll!(m => "⑆" ~ mkup.cite ~ mkup.ff_o ~ m["text"] ~ mkup.ff_c ~ mkup.cite)(line, rgx.inline_mark_cite);
foreach (regx; [rgx.inline_mark_emphasis, rgx.inline_mark_bold, rgx.inline_mark_underscore, rgx.inline_mark_italics, rgx.inline_mark_superscript, rgx.inline_mark_subscript, rgx.inline_mark_strike, rgx.inline_mark_insert]) {
- line = replaceAll!(m => m["mark"] ~ mkup.ff_o ~ m["text"] ~ mkup.ff_c ~ m["mark"])(line, regx);
+ line = replaceAll!(m => "⑆" ~ m["mark"] ~ mkup.ff_o ~ m["text"] ~ mkup.ff_c ~ m["mark"])(line, regx);
}
return line;
}
@@ -4261,17 +4262,17 @@ template docAbstraction() {
if (textline.match(rgx.inline_faces_line)) {
textline = textline
.replaceFirst(rgx.inline_emphasis_line,
- format(q"┃%s%s%s%s%s%s┃",
- mkup.emph, mkup.ff_o, "$1", mkup.ff_c, mkup.emph, "$2"))
+ format(q"┃%s%s%s%s%s%s%s┃",
+ "⑆", mkup.emph, mkup.ff_o, "$1", mkup.ff_c, mkup.emph, "$2"))
.replaceFirst(rgx.inline_bold_line,
- format(q"┃%s%s%s%s%s%s┃",
- mkup.bold, mkup.ff_o, "$1", mkup.ff_c, mkup.bold, "$2"))
+ format(q"┃%s%s%s%s%s%s%s┃",
+ "⑆", mkup.bold, mkup.ff_o, "$1", mkup.ff_c, mkup.bold, "$2"))
.replaceFirst(rgx.inline_underscore_line,
- format(q"┃%s%s%s%s%s%s┃",
- mkup.underscore, mkup.ff_o, "$1", mkup.ff_c, mkup.underscore, "$2"))
+ format(q"┃%s%s%s%s%s%s%s┃",
+ "⑆", mkup.underscore, mkup.ff_o, "$1", mkup.ff_c, mkup.underscore, "$2"))
.replaceFirst(rgx.inline_italics_line,
- format(q"┃%s%s%s%s%s%s┃",
- mkup.italic, mkup.ff_o, "$1", mkup.ff_c, mkup.italic, "$2"));
+ format(q"┃%s%s%s%s%s%s%s┃",
+ "⑆", mkup.italic, mkup.ff_o, "$1", mkup.ff_c, mkup.italic, "$2"));
}
return textline;
}
@@ -5435,7 +5436,7 @@ template docAbstraction() {
bookindex_unordered_hashes.byKey.array
.sort!("toUpper(a) < toUpper(b)", SwapStrategy.stable).release;
foreach (mainkey; mainkeys) {
- write("_0_1 !┨", mainkey, "┣! ");
+ write("_0_1 ⑆!┨", mainkey, "┣! ");
foreach (ref_; bookindex_unordered_hashes[mainkey]["_a"]) {
auto go = ref_.replaceAll(rgx.book_index_go, "$1");
write(" {", ref_, "}#", go, ", ");
@@ -5542,7 +5543,7 @@ template docAbstraction() {
string[dchar] transTable = [' ' : "_"];
foreach (mainkey; mainkeys) {
bi_tmp_tags = [""];
- bi_tmp = mkup.bold ~ mkup.ff_o ~ mainkey ~ mkup.ff_c ~ mkup.bold ~ " ";
+ bi_tmp = "⑆" ~ mkup.bold ~ mkup.ff_o ~ mainkey ~ mkup.ff_c ~ mkup.bold ~ " ";
buffer.clear();
bi_tmp_tags ~= translate(mainkey, transTable);
auto bkidx_lnk(string locs) {
diff --git a/src/doc_reform/meta/package.d b/src/doc_reform/meta/package.d
index 3b6cdcd..4d52077 100644
--- a/src/doc_reform/meta/package.d
+++ b/src/doc_reform/meta/package.d
@@ -50,8 +50,7 @@
+/
module doc_reform.meta;
public import
- doc_reform.meta.defaults,
- doc_reform.meta.rgx;
+ doc_reform.meta.defaults;
/+ std +/
public import
std.array,
diff --git a/src/doc_reform/meta/rgx.d b/src/doc_reform/meta/rgx.d
index 8ecb829..1d40491 100644
--- a/src/doc_reform/meta/rgx.d
+++ b/src/doc_reform/meta/rgx.d
@@ -57,10 +57,6 @@ static template spineRgxIn() {
/+ misc +/
static flag_action = ctRegex!(`^(--[a-z][a-z0-9-]+)$`);
static within_quotes = ctRegex!(`"(.+?)"`, "m");
- static yaml_tag_is_str = ctRegex!(`:str$`);
- static yaml_tag_is_int = ctRegex!(`:int$`);
- static yaml_tag_is_map = ctRegex!(`:map$`);
- static yaml_tag_is_seq = ctRegex!(`:seq$`);
static make_heading_delimiter = ctRegex!(`[;][ ]*`);
static arr_delimiter = ctRegex!(`[ ]*[;][ ]*`);
static name_delimiter = ctRegex!(`^([^,]+)[ ]*,[ ]+(.+?)$`);
@@ -195,9 +191,6 @@ static template spineRgxIn() {
static topic_register_main_term_plus_rest_split = ctRegex!(`\s*:\s*`);
static topic_register_sub_terms_split = ctRegex!(`\s*\|\s*`);
static topic_register_multiple_sub_terms_split = ctRegex!(`␣([^|␣]+(?:\|[^|␣]+)+)`);
- /+ language codes +/
- auto language_code_and_filename =
- ctRegex!("(?:^|[/])(am|bg|bn|br|ca|cs|cy|da|de|el|en|eo|es|et|eu|fi|fr|ga|gl|he|hi|hr|hy|ia|is|it|ja|ko|la|lo|lt|lv|ml|mr|nl|no|nn|oc|pl|pt|pt_BR|ro|ru|sa|se|sk|sl|sq|sr|sv|ta|te|th|tk|tr|uk|ur|vi|zh)/[A-Za-z0-9._-].+?[.](?:sst|ssm)$");
static newline = ctRegex!("\n", "mg");
static space = ctRegex!(`[ ]`, "mg");
static spaces_keep = ctRegex!(`(?P<keep_spaces>^[ ]+|[ ]{2,})`, "mg"); // code, verse, block
@@ -210,8 +203,7 @@ static template spineRgxIn() {
static src_pth_contents = ctRegex!(`^(?P<path>[/]?(?:[a-zA-Z0-9._-]+/)*)(?P<filename>[a-zA-Z0-9][a-zA-Z0-9._-]*)/pod[.]manifest$`);
static src_pth_zip = ctRegex!(`^(?P<path>[/]?(?:[a-zA-Z0-9._-]+/)*)(?P<filename>[a-zA-Z0-9._-]+[.]zip)$`);
static src_pth_types = ctRegex!(`^(?P<path>[/]?[a-zA-Z0-9._-]+/)*(?P<gotfile>(?P<filename>[a-zA-Z0-9._-]+[.]ss[tm])|(?P<filelist>[a-zA-Z0-9._-]+/pod[.]manifest)|(?P<filezip>[a-zA-Z0-9._-]+[.]zip))$`);
- static src_fn =
- ctRegex!(`^([/]?(?:[a-zA-Z0-9._-]+/)*)(?P<fn_src>(?P<fn_base>[a-zA-Z0-9._-]+)[.](?P<fn_src_suffix>ss[tm]))$`);
+ static src_fn = ctRegex!(`^([/]?(?:[a-zA-Z0-9._-]+/)*)(?P<fn_src>(?P<fn_base>[a-zA-Z0-9._-]+)[.](?P<fn_src_suffix>ss[tm]))$`);
static src_fn_master = ctRegex!(`^(?P<path>/?(?:[a-zA-Z0-9._-]+/)*)(?P<filename>[a-zA-Z0-9._-]+[.]ssm)$`);
static src_fn_find_inserts = ctRegex!(`^(?P<path>/?(?:[a-zA-Z0-9._-]+/)*)(?P<filename>[a-zA-Z0-9._-]+[.]ss[im])$`);
static insert_src_fn_ssi_or_sst = ctRegex!(`^<<\s*(?P<path>[a-zA-Z0-9._-]+/)*(?P<filename>[a-zA-Z0-9._-]+[.]ss[ti])$`);
diff --git a/src/doc_reform/meta/rgx_files.d b/src/doc_reform/meta/rgx_files.d
new file mode 100644
index 0000000..f86c416
--- /dev/null
+++ b/src/doc_reform/meta/rgx_files.d
@@ -0,0 +1,72 @@
+/+
+- Name: Spine, Doc Reform [a part of]
+ - Description: documents, structuring, processing, publishing, search
+ - static content generator
+
+ - Author: Ralph Amissah
+ [ralph.amissah@gmail.com]
+
+ - Copyright: (C) 2015 - 2022 Ralph Amissah, All Rights
+ Reserved.
+
+ - License: AGPL 3 or later:
+
+ Spine (SiSU), a framework for document structuring, publishing and
+ search
+
+ Copyright (C) Ralph Amissah
+
+ This program is free software: you can redistribute it and/or modify it
+ under the terms of the GNU AFERO General Public License as published by the
+ Free Software Foundation, either version 3 of the License, or (at your
+ option) any later version.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ more details.
+
+ You should have received a copy of the GNU General Public License along with
+ this program. If not, see [https://www.gnu.org/licenses/].
+
+ If you have Internet connection, the latest version of the AGPL should be
+ available at these locations:
+ [https://www.fsf.org/licensing/licenses/agpl.html]
+ [https://www.gnu.org/licenses/agpl.html]
+
+ - Spine (by Doc Reform, related to SiSU) uses standard:
+ - docReform markup syntax
+ - standard SiSU markup syntax with modified headers and minor modifications
+ - docReform object numbering
+ - standard SiSU object citation numbering & system
+
+ - Homepages:
+ [https://www.doc_reform.org]
+ [https://www.sisudoc.org]
+
+ - Git
+ [https://git.sisudoc.org/projects/?p=software/spine.git;a=summary]
+
++/
+/++
+ regex: regular expressions used in sisu document parser
++/
+module doc_reform.meta.rgx_files;
+static template spineRgxFiles() {
+ static struct RgxFiles {
+ static src_pth_sst_or_ssm = ctRegex!(`^(?P<path>[/]?(?:[a-zA-Z0-9._-]+/)*)(?P<filename>[a-zA-Z0-9._-]+[.](?P<extension>ss[tm]))$`);
+ static src_pth_pod_sst_or_ssm = ctRegex!(`^(?P<podpath>[/]?(?:[a-zA-Z0-9._-]+/)*)media/text/[a-z]{2}/(?P<filename>[a-zA-Z0-9][a-zA-Z0-9._-]*?[.]ss[tm])$`);
+ static src_pth_contents = ctRegex!(`^(?P<path>[/]?(?:[a-zA-Z0-9._-]+/)*)(?P<filename>[a-zA-Z0-9][a-zA-Z0-9._-]*)/pod[.]manifest$`);
+ static src_pth_zip = ctRegex!(`^(?P<path>[/]?(?:[a-zA-Z0-9._-]+/)*)(?P<filename>[a-zA-Z0-9._-]+[.]zip)$`);
+ static src_pth_types = ctRegex!(`^(?P<path>[/]?[a-zA-Z0-9._-]+/)*(?P<gotfile>(?P<filename>[a-zA-Z0-9._-]+[.]ss[tm])|(?P<filelist>[a-zA-Z0-9._-]+/pod[.]manifest)|(?P<filezip>[a-zA-Z0-9._-]+[.]zip))$`);
+ static src_fn = ctRegex!(`^([/]?(?:[a-zA-Z0-9._-]+/)*)(?P<fn_src>(?P<fn_base>[a-zA-Z0-9._-]+)[.](?P<fn_src_suffix>ss[tm]))$`);
+ static src_fn_master = ctRegex!(`^(?P<path>/?(?:[a-zA-Z0-9._-]+/)*)(?P<filename>[a-zA-Z0-9._-]+[.]ssm)$`);
+ static src_fn_find_inserts = ctRegex!(`^(?P<path>/?(?:[a-zA-Z0-9._-]+/)*)(?P<filename>[a-zA-Z0-9._-]+[.]ss[im])$`);
+ static insert_src_fn_ssi_or_sst = ctRegex!(`^<<\s*(?P<path>[a-zA-Z0-9._-]+/)*(?P<filename>[a-zA-Z0-9._-]+[.]ss[ti])$`);
+ static src_base_parent_dir_name = ctRegex!(`[/](?P<dir>(?:[a-zA-Z0-9._-]+))(?:/media/text/[a-z]{2})$`); // formalizes dir structure
+ static src_formalised_file_path_parts = ctRegex!(`(?P<pth>(?:[/a-zA-Z0-9._-]+?)(?P<dir>[a-zA-Z0-9._-]+))(?:/media/text/[a-z]{2})$`); // formalizes dir structure
+ /+ language codes +/
+ auto language_code_and_filename =
+ ctRegex!("(?:^|[/])(am|bg|bn|br|ca|cs|cy|da|de|el|en|eo|es|et|eu|fi|fr|ga|gl|he|hi|hr|hy|ia|is|it|ja|ko|la|lo|lt|lv|ml|mr|nl|no|nn|oc|pl|pt|pt_BR|ro|ru|sa|se|sk|sl|sq|sr|sv|ta|te|th|tk|tr|uk|ur|vi|zh)/[A-Za-z0-9._-].+?[.](?:sst|ssm)$");
+ }
+}
diff --git a/src/doc_reform/meta/rgx_yaml_tags.d b/src/doc_reform/meta/rgx_yaml_tags.d
new file mode 100644
index 0000000..b2a15c1
--- /dev/null
+++ b/src/doc_reform/meta/rgx_yaml_tags.d
@@ -0,0 +1,62 @@
+/+
+- Name: Spine, Doc Reform [a part of]
+ - Description: documents, structuring, processing, publishing, search
+ - static content generator
+
+ - Author: Ralph Amissah
+ [ralph.amissah@gmail.com]
+
+ - Copyright: (C) 2015 - 2022 Ralph Amissah, All Rights
+ Reserved.
+
+ - License: AGPL 3 or later:
+
+ Spine (SiSU), a framework for document structuring, publishing and
+ search
+
+ Copyright (C) Ralph Amissah
+
+ This program is free software: you can redistribute it and/or modify it
+ under the terms of the GNU AFERO General Public License as published by the
+ Free Software Foundation, either version 3 of the License, or (at your
+ option) any later version.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ more details.
+
+ You should have received a copy of the GNU General Public License along with
+ this program. If not, see [https://www.gnu.org/licenses/].
+
+ If you have Internet connection, the latest version of the AGPL should be
+ available at these locations:
+ [https://www.fsf.org/licensing/licenses/agpl.html]
+ [https://www.gnu.org/licenses/agpl.html]
+
+ - Spine (by Doc Reform, related to SiSU) uses standard:
+ - docReform markup syntax
+ - standard SiSU markup syntax with modified headers and minor modifications
+ - docReform object numbering
+ - standard SiSU object citation numbering & system
+
+ - Homepages:
+ [https://www.doc_reform.org]
+ [https://www.sisudoc.org]
+
+ - Git
+ [https://git.sisudoc.org/projects/?p=software/spine.git;a=summary]
+
++/
+/++
+ regex: regular expressions used in sisu document parser
++/
+module doc_reform.meta.rgx_yaml;
+static template spineRgxYamlTags() {
+ static struct RgxYaml {
+ static yaml_tag_is_str = ctRegex!(`:str$`);
+ static yaml_tag_is_int = ctRegex!(`:int$`);
+ static yaml_tag_is_map = ctRegex!(`:map$`);
+ static yaml_tag_is_seq = ctRegex!(`:seq$`);
+ }
+}
diff --git a/src/doc_reform/spine.d b/src/doc_reform/spine.d
index cd780c6..4fca299 100755
--- a/src/doc_reform/spine.d
+++ b/src/doc_reform/spine.d
@@ -75,6 +75,8 @@ import
doc_reform.meta.defaults,
doc_reform.meta.doc_debugs,
doc_reform.meta.rgx,
+ doc_reform.meta.rgx_yaml,
+ doc_reform.meta.rgx_files,
doc_reform.io_in.paths_source,
doc_reform.io_in.read_config_files,
doc_reform.io_in.read_source_files,
@@ -86,6 +88,8 @@ string project_name = "spine";
string program_name = "spine";
@system void main(string[] args) {
mixin spineRgxIn;
+ mixin spineRgxYamlTags;
+ mixin spineRgxFiles;
mixin spineBiblio;
mixin outputHub;
auto hvst = spineCurateMetadata!();
@@ -93,6 +97,8 @@ string program_name = "spine";
string arg_unrecognized;
enum dAM { abstraction, matters }
static auto rgx = RgxI();
+ static auto rgx_y = RgxYaml();
+ static auto rgx_files = RgxFiles();
scope(success) {
writefln(
"~ run complete, ok ~ (%s-%s.%s.%s, %s D:%s, %s %s)",
@@ -858,7 +864,7 @@ string program_name = "spine";
} else if (_opt_action.require_processing_files) { /+ cli, assumed to be path to source files +/
auto _manifest_start = PodManifest!()(_opt_action, arg);
if ( /+ pod files +/
- !(arg.match(rgx.src_pth_sst_or_ssm))
+ !(arg.match(rgx_files.src_pth_sst_or_ssm))
&& _manifest_start.pod_manifest_file_with_path
&& _opt_action.abstraction
) {
@@ -886,10 +892,10 @@ string program_name = "spine";
}
if ("doc" in pod_manifest_yaml) {
if (pod_manifest_yaml["doc"].type.mapping
- && pod_manifest_yaml["doc"].tag.match(rgx.yaml_tag_is_map)
+ && pod_manifest_yaml["doc"].tag.match(rgx_y.yaml_tag_is_map)
) {
if ("path" in pod_manifest_yaml["doc"]) {
- if (pod_manifest_yaml["doc"]["path"].tag.match(rgx.yaml_tag_is_seq)) {
+ if (pod_manifest_yaml["doc"]["path"].tag.match(rgx_y.yaml_tag_is_seq)) {
foreach (string _path; pod_manifest_yaml["doc"]["path"]) {
markup_contents_location_ ~= _path ~ "\n";
pod_manifest_root_content_paths_to_markup_location_raw_ ~=
@@ -897,7 +903,7 @@ string program_name = "spine";
}
} else if (
pod_manifest_yaml["doc"]["path"].type.string
- && pod_manifest_yaml["doc"]["path"].tag.match(rgx.yaml_tag_is_str)
+ && pod_manifest_yaml["doc"]["path"].tag.match(rgx_y.yaml_tag_is_str)
) {
markup_contents_location_ = pod_manifest_yaml["doc"]["path"].get!string;
pod_manifest_root_content_paths_to_markup_location_raw_ =
@@ -905,17 +911,17 @@ string program_name = "spine";
}
}
if ("filename" in pod_manifest_yaml["doc"]) {
- if (pod_manifest_yaml["doc"]["filename"].tag.match(rgx.yaml_tag_is_seq)) {
+ if (pod_manifest_yaml["doc"]["filename"].tag.match(rgx_y.yaml_tag_is_seq)) {
foreach (string _filename; pod_manifest_yaml["doc"]["filename"]) {
if ("language" in pod_manifest_yaml["doc"]) {
- if (pod_manifest_yaml["doc"]["language"].tag.match(rgx.yaml_tag_is_seq)) {
+ if (pod_manifest_yaml["doc"]["language"].tag.match(rgx_y.yaml_tag_is_seq)) {
foreach (string _lang; pod_manifest_yaml["doc"]["language"]) {
markup_contents_location_ ~=
"media/text/"
~ _lang ~ "/"
~ _filename ~ "\n";
}
- } else if (pod_manifest_yaml["doc"]["language"].tag.match(rgx.yaml_tag_is_str)
+ } else if (pod_manifest_yaml["doc"]["language"].tag.match(rgx_y.yaml_tag_is_str)
) {
markup_contents_location_ =
"media/text/"
@@ -938,17 +944,17 @@ string program_name = "spine";
}
} else if (
pod_manifest_yaml["doc"]["filename"].type.string
- && pod_manifest_yaml["doc"]["filename"].tag.match(rgx.yaml_tag_is_str)
+ && pod_manifest_yaml["doc"]["filename"].tag.match(rgx_y.yaml_tag_is_str)
) {
if ("language" in pod_manifest_yaml["doc"]) {
- if (pod_manifest_yaml["doc"]["language"].tag.match(rgx.yaml_tag_is_seq)) {
+ if (pod_manifest_yaml["doc"]["language"].tag.match(rgx_y.yaml_tag_is_seq)) {
foreach (string _lang; pod_manifest_yaml["doc"]["language"]) {
markup_contents_location_ ~=
"media/text/"
~ _lang ~ "/"
~ pod_manifest_yaml["doc"]["filename"].get!string ~ "\n";
}
- } else if (pod_manifest_yaml["doc"]["language"].tag.match(rgx.yaml_tag_is_str)) {
+ } else if (pod_manifest_yaml["doc"]["language"].tag.match(rgx_y.yaml_tag_is_str)) {
markup_contents_location_ =
"media/text/"
~ pod_manifest_yaml["doc"]["language"].get!string
@@ -985,7 +991,7 @@ string program_name = "spine";
= (cast(char[]) markup_contents_location_).split;
auto tmp_dir_ = (sisudoc_txt_).dirName.array;
foreach (markup_contents_location; markup_contents_locations_arr) {
- assert(markup_contents_location.match(rgx.src_pth_sst_or_ssm),
+ assert(markup_contents_location.match(rgx_files.src_pth_sst_or_ssm),
"not a recognised file: «" ~
markup_contents_location ~ "»"
);
@@ -999,14 +1005,14 @@ string program_name = "spine";
_manifests ~= _manifested;
}
}
- } else if (arg.match(rgx.src_pth_sst_or_ssm)) { /+ markup txt files +/
+ } else if (arg.match(rgx_files.src_pth_sst_or_ssm)) { /+ markup txt files +/
if (exists(arg)==0) {
writeln("ERROR >> Processing Skipped! File not found: ", arg);
} else {
_manifested = PathMatters!()(_opt_action, _env, arg, arg);
_manifests ~= _manifested;
}
- } else if (arg.match(rgx.src_pth_zip)) {
+ } else if (arg.match(rgx_files.src_pth_zip)) {
// fns_src ~= arg; // gather input markup source file names for processing
} else { // anything remaining, unused
arg_unrecognized ~= " " ~ arg;
@@ -1042,7 +1048,7 @@ string program_name = "spine";
}
}
enforce(
- manifest.src.filename.match(rgx.src_pth_types),
+ manifest.src.filename.match(rgx_files.src_pth_types),
"not a sisu markup filename: «" ~
manifest.src.filename ~ "»"
);
@@ -1155,7 +1161,7 @@ string program_name = "spine";
}
}
enforce(
- manifest.src.filename.match(rgx.src_pth_types),
+ manifest.src.filename.match(rgx_files.src_pth_types),
"not a sisu markup filename: «" ~
manifest.src.filename ~ "»"
);