aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sdp/meta
diff options
context:
space:
mode:
Diffstat (limited to 'src/sdp/meta')
-rw-r--r--src/sdp/meta/conf_make_meta_json.d2
-rw-r--r--src/sdp/meta/conf_make_meta_structs.d33
-rw-r--r--src/sdp/meta/metadoc_from_src.d42
3 files changed, 66 insertions, 11 deletions
diff --git a/src/sdp/meta/conf_make_meta_json.d b/src/sdp/meta/conf_make_meta_json.d
index 88e24da..0471dbf 100644
--- a/src/sdp/meta/conf_make_meta_json.d
+++ b/src/sdp/meta/conf_make_meta_json.d
@@ -75,7 +75,7 @@ static template contentJSONtoSiSUstruct() {
_struct_composite.make_str.num_depth = _json.object["num_depth"][""].str;
}
if ("substitute" in _json.object["make"]) {
- _struct_composite.make_str.substitute = _json.object["make"]["substitute"].str;
+ _struct_composite.make_str.substitute = _json.object["make"]["substitute"].arrayNoRef;
}
if ("texpdf_font" in _json.object["make"]) {
_struct_composite.make_str.texpdf_font = _json.object["make"]["texpdf_font"].str;
diff --git a/src/sdp/meta/conf_make_meta_structs.d b/src/sdp/meta/conf_make_meta_structs.d
index 211d2c0..3253b45 100644
--- a/src/sdp/meta/conf_make_meta_structs.d
+++ b/src/sdp/meta/conf_make_meta_structs.d
@@ -1,6 +1,7 @@
module sdp.meta.conf_make_meta_structs;
import
std.exception,
+ std.json,
std.regex,
std.stdio,
std.string,
@@ -21,7 +22,7 @@ struct ConfCompositeMakeStr {
string italics = "";
string num_top = "";
string num_depth = "";
- string substitute = "";
+ JSONValue substitute = JSONValue( ["", ""] );
string texpdf_font = "";
}
struct confCompositeMakeBuild {
@@ -32,7 +33,10 @@ struct confCompositeMakeBuild {
return (cast(char[]) (_rgxtxt));
}
auto bold_substitute_abstract() {
- return "<b>$1</b>";
+ return "*{$1}*";
+ }
+ auto bold_substitute_sisu_markup() {
+ return "*{$1}*";
}
auto bold_substitute_html() {
return "<b>$1</b>";
@@ -53,7 +57,10 @@ struct confCompositeMakeBuild {
return (cast(char[]) (_rgxtxt));
}
auto emphasis_substitute_abstract() {
- return "<em>$1</em>";
+ return "!{$1}!";
+ }
+ auto emphasis_substitute_sisu_markup() {
+ return "!{$1}!";
}
auto emphasis_substitute_html() {
return "<em>$1</em>";
@@ -77,7 +84,10 @@ struct confCompositeMakeBuild {
return (cast(char[]) (_rgxtxt));
}
auto italics_substitute_abstract() {
- return "<i>$1</i>";
+ return "/{$1}/";
+ }
+ auto italics_substitute_sisu_markup() {
+ return "/{$1}/";
}
auto italics_substitute_html() {
return "<i>$1</i>";
@@ -88,8 +98,8 @@ struct confCompositeMakeBuild {
auto num_depth(string _mk) {
return _mk;
}
- auto substitute(string _mk) { // TODO this is different from others
- return regex(_mk);
+ auto substitute(JSONValue _mk) {
+ return _mk;
}
auto texpdf_font(string _mk) {
return _mk;
@@ -97,24 +107,27 @@ struct confCompositeMakeBuild {
}
struct ConfCompositeMakeInit {
char[] bold_rgxmatch = `=NULL`.dup;
- auto bold_substitute_abstract = "<b>$1</b>";
+ auto bold_substitute_abstract = "*{$1}*";
+ auto bold_substitute_sisu_markup = "*{$1}*";
auto bold_substitute_html = "<b>$1</b>";
string breaks = "";
string cover_image = "";
string css = "";
char[] emphasis_rgxmatch = `=NULL`.dup;
- auto emphasis_substitute_abstract = "<em>$1</em>";
+ auto emphasis_substitute_abstract = "!{$1}!";
+ auto emphasis_substitute_sisu_markup = "!{$1}!";
auto emphasis_substitute_html = "<em>$1</em>";
string footer = "";
string headings = "";
string home_button_image = "";
string home_button_text = "";
char[] italics_rgxmatch = `=NULL`.dup;
- auto italics_substitute_abstract = "<i>$1</i>";
+ auto italics_substitute_abstract = "/{$1}/";
+ auto italics_substitute_sisu_markup = "/{$1}/";
auto italics_substitute_html = "<i>$1</i>";
string num_top = "";
string num_depth = "";
- auto substitute = regex(""); // TODO
+ auto substitute = JSONValue(["", ""]);
string texpdf_font = "";
}
struct ConfCompositeSiteLocal {
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,