diff options
Diffstat (limited to 'src/sdp')
| -rw-r--r-- | src/sdp/meta/conf_make_meta_json.d | 2 | ||||
| -rw-r--r-- | src/sdp/meta/conf_make_meta_structs.d | 33 | ||||
| -rw-r--r-- | src/sdp/meta/metadoc_from_src.d | 42 | ||||
| -rwxr-xr-x | src/sdp/sdp.d | 2 | 
4 files changed, 67 insertions, 12 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, diff --git a/src/sdp/sdp.d b/src/sdp/sdp.d index b54ea3c..2d0397d 100755 --- a/src/sdp/sdp.d +++ b/src/sdp/sdp.d @@ -376,7 +376,7 @@ void main(string[] args) {            manifest.src.filename ~ "»"          );          debug(steps) { -          writeln("stepX commence → (document abstraction)"); +          writeln("--->\nstepX commence → (document abstraction)");          }          auto t = SiSUabstraction!()(_env, _opt_action, manifest);          static assert(!isTypeTuple!(t)); | 
