aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sdp/meta/metadoc_from_src.d
diff options
context:
space:
mode:
Diffstat (limited to 'src/sdp/meta/metadoc_from_src.d')
-rw-r--r--src/sdp/meta/metadoc_from_src.d42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/sdp/meta/metadoc_from_src.d b/src/sdp/meta/metadoc_from_src.d
index d0ee599..97e5f78 100644
--- a/src/sdp/meta/metadoc_from_src.d
+++ b/src/sdp/meta/metadoc_from_src.d
@@ -602,17 +602,20 @@ template SiSUdocAbstraction() {
continue;
} else if (obj_type_status["quote"] == TriState.on) {
/+ within block object: quote +/
+ line = _doc_header_and_make_substitutions_(line, conf_make_meta);
_quote_block_(line, an_object, obj_type_status);
continue;
/+ within block object: group +/
} else if (obj_type_status["group"] == TriState.on) {
/+ within block object: group +/
+ line = _doc_header_and_make_substitutions_(line, conf_make_meta);
line = (line)
.replaceAll(rgx.para_delimiter, mkup.br_paragraph ~ "$1");
_group_block_(line, an_object, obj_type_status);
continue;
} else if (obj_type_status["block"] == TriState.on) {
/+ within block object: block +/
+ line = _doc_header_and_make_substitutions_(line, conf_make_meta);
if (auto m = line.match(rgx.spaces_line_start)) {
line = (line)
.replaceAll(rgx.spaces_line_start, (m.captures[1]).translate([ ' ' : mkup.nbsp ]));
@@ -646,6 +649,7 @@ template SiSUdocAbstraction() {
processing.remove("verse");
obj_cite_number_poem["start"] = obj_cite_digits.on.to!string;
}
+ line = _doc_header_and_make_substitutions_(line, conf_make_meta);
_start_block_(line, obj_type_status, obj_cite_number_poem);
continue;
} else if (!line.empty) {
@@ -727,6 +731,7 @@ template SiSUdocAbstraction() {
} else if (line_occur["para"] == State.off) {
/+ para match +/
an_object_key="body_nugget";
+ line = _doc_header_and_make_substitutions_(line, conf_make_meta);
_para_match_(line, an_object, an_object_key, indent, bullet, obj_type_status, line_occur);
}
} else if (line_occur["heading"] > State.off) {
@@ -741,6 +746,7 @@ template SiSUdocAbstraction() {
debug(para) {
writeln(an_object_key, "-> ", line);
}
+ line = _doc_header_and_make_substitutions_(line, conf_make_meta);
an_object[an_object_key] ~= " " ~ line;
++line_occur["para"];
}
@@ -1918,6 +1924,42 @@ template SiSUdocAbstraction() {
}
return obj_type_status;
}
+ auto _doc_header_and_make_substitutions_(L,CMM)(
+ L line,
+ CMM conf_make_meta,
+ ) {
+ debug(asserts) {
+ static assert(is(typeof(line) == char[]));
+ }
+ if (!(
+ conf_make_meta.make.bold_rgxmatch == "=NULL"
+ || conf_make_meta.make.bold_rgxmatch.empty
+ )) {
+ line = line.replaceAll(
+ regex(conf_make_meta.make.bold_rgxmatch),
+ conf_make_meta.make.bold_substitute_sisu_markup
+ );
+ }
+ if (!(
+ conf_make_meta.make.emphasis_rgxmatch == "=NULL"
+ || conf_make_meta.make.emphasis_rgxmatch.empty
+ )) {
+ line = line.replaceAll(
+ regex(conf_make_meta.make.emphasis_rgxmatch),
+ conf_make_meta.make.emphasis_substitute_sisu_markup
+ );
+ }
+ if (!(
+ conf_make_meta.make.italics_rgxmatch == "=NULL"
+ || conf_make_meta.make.italics_rgxmatch.empty
+ )) {
+ line = line.replaceAll(
+ regex(conf_make_meta.make.italics_rgxmatch),
+ conf_make_meta.make.italics_substitute_sisu_markup
+ );
+ }
+ return line;
+ }
void _start_block_(L,T,N)(
L line,
return ref T obj_type_status,