diff options
Diffstat (limited to 'org')
| -rw-r--r-- | org/default_misc.org | 1 | ||||
| -rw-r--r-- | org/default_regex.org | 3 | ||||
| -rw-r--r-- | org/meta_abstraction.org | 67 | ||||
| -rw-r--r-- | org/meta_conf_make_meta.org | 123 | ||||
| -rw-r--r-- | org/output_hub.org | 2 | ||||
| -rw-r--r-- | org/output_sisupod.org | 59 | ||||
| -rw-r--r-- | org/output_xmls.org | 62 | ||||
| -rw-r--r-- | org/sdp.org | 2 | 
8 files changed, 212 insertions, 107 deletions
| diff --git a/org/default_misc.org b/org/default_misc.org index da1d0ae..a2a6a72 100644 --- a/org/default_misc.org +++ b/org/default_misc.org @@ -214,6 +214,7 @@ import  #+name: defaults_template_markup  #+BEGIN_SRC d  template InternalMarkup() { +  import std.array;    static struct InlineMarkup {      auto en_a_o = "【";      auto en_a_c = "】";      auto en_b_o = "〖";      auto en_b_c = "〗"; diff --git a/org/default_regex.org b/org/default_regex.org index 8edf0c1..59bd11e 100644 --- a/org/default_regex.org +++ b/org/default_regex.org @@ -127,7 +127,7 @@ static native_subhead_classify                        = ctRegex!(`^(?:topic_regi  static native_subhead_identifier                      = ctRegex!(`^(?:oclc|pg|isbn)$`, "m");  static native_subhead_notes                           = ctRegex!(`^(?:abstract|description)$`, "m");  static native_subhead_publisher                       = ctRegex!(`^(?:name)$`, "m"); -static native_subhead_make                            = ctRegex!(`^(?:cover_image|home_button_image|home_button_text|footer|headings|num_top|num_depth|breaks|substitute|bold|italics|emphasis|texpdf_font|css)$`, "m"); +static native_subhead_make                            = ctRegex!(`^(?:cover_image|home_button_image|home_button_text|footer|headings|num_top|auto_num_depth|breaks|substitute|bold|italics|emphasis|texpdf_font|css)$`, "m");  #+END_SRC  ** heading & paragraph operators                        :paragraph:operator: @@ -442,6 +442,7 @@ static src_formalised_file_path_parts                 = ctRegex!(`(?P<pth>(?:[/a  #+BEGIN_SRC d  /+ inline markup footnotes endnotes +/  static inline_notes_al                                = ctRegex!(`【(?:[*+]\s+|\s*)(.+?)】`, "mg"); +static inline_notes_al_special                        = ctRegex!(`【(?:[*+]\s+)(.+?)】`, "mg"); // TODO remove match when special footnotes are implemented  static inline_notes_al_gen                            = ctRegex!(`【.+?】`, "m");  static inline_notes_al_gen_text                       = ctRegex!(`【(?P<text>.+?)】`, "m");  static inline_notes_al_gen_ref                        = ctRegex!(`【(?P<ref>[*+]\s+)\s*(?P<text>.+?)】`, "mg"); diff --git a/org/meta_abstraction.org b/org/meta_abstraction.org index b8ab4e6..0e379c7 100644 --- a/org/meta_abstraction.org +++ b/org/meta_abstraction.org @@ -4704,7 +4704,7 @@ pure struct OCNemitter {  static struct ObjInlineMarkupMunge {    string[string] obj_txt;    int n_foot, n_foot_reg, n_foot_sp_asterisk, n_foot_sp_plus; -  string asterisks_; +  string asterisks_, plus_;    string obj_txt_out, tail, note;    static auto rgx = Rgx();    static auto mkup = InlineMarkup(); @@ -4728,6 +4728,7 @@ static struct ObjInlineMarkupMunge {      static auto mng = InlineMarkup();      obj_txt_in = obj_txt_in.replaceAll(rgx.inline_mono, (mng.mono ~ "{$1}" ~ mng.mono));      /+ url matched +/ +    obj_txt_in = obj_txt_in.replaceAll(rgx.inline_notes_al_special, ""); // TODO reinstate when special footnotes are implemented      if (obj_txt_in.match(rgx.inline_url_generic)) {        /+ link: naked url: http://url +/        if (obj_txt_in.match(rgx.inline_link_naked_url)) { @@ -4745,22 +4746,23 @@ static struct ObjInlineMarkupMunge {             { link which includes url as footnote }http://url~{ { http://url }http://url }~        +/        if (obj_txt_in.match(rgx.inline_link_endnote_url_helper)) { -        obj_txt_in = (obj_txt_in).replaceAll( -          rgx.inline_link_endnote_url_helper_punctuated, -          (mkup.lnk_o ~ "$1" ~ mkup.lnk_c -            ~ mkup.url_o ~ "$2" ~ mkup.url_c -            ~ "~{ " ~ mkup.lnk_o ~ " $2 " ~ mkup.lnk_c -            ~ mkup.url_o ~ "$2" ~ mkup.url_c -            ~  " }~$3") // ("{ $1 }$2~{ { $2 }$2 }~$3") -        ); -        obj_txt_in = (obj_txt_in).replaceAll( -          rgx.inline_link_endnote_url_helper, -          (mkup.lnk_o ~ "$1" ~ mkup.lnk_c -            ~ mkup.url_o ~ "$2" ~ mkup.url_c -            ~ "~{ " ~ mkup.lnk_o ~ " $2 " ~ mkup.lnk_c -            ~ mkup.url_o ~ "$2" ~ mkup.url_c -            ~  " }~") // ("{ $1 }$2~{ { $2 }$2 }~") -        ); +        obj_txt_in = (obj_txt_in) +          .replaceAll( +            rgx.inline_link_endnote_url_helper_punctuated, +            (mkup.lnk_o ~ "$1" ~ mkup.lnk_c +              ~ mkup.url_o ~ "$2" ~ mkup.url_c +              ~ "~{ " ~ mkup.lnk_o ~ " $2 " ~ mkup.lnk_c +              ~ mkup.url_o ~ "$2" ~ mkup.url_c +              ~  " }~$3") // ("{ $1 }$2~{ { $2 }$2 }~$3") +          ) +          .replaceAll( +            rgx.inline_link_endnote_url_helper, +            (mkup.lnk_o ~ "$1" ~ mkup.lnk_c +              ~ mkup.url_o ~ "$2" ~ mkup.url_c +              ~ "~{ " ~ mkup.lnk_o ~ " $2 " ~ mkup.lnk_c +              ~ mkup.url_o ~ "$2" ~ mkup.url_c +              ~  " }~") // ("{ $1 }$2~{ { $2 }$2 }~") +          );        }        /+ link with regular markup:           { linked text or image }http://url @@ -4791,6 +4793,7 @@ static struct ObjInlineMarkupMunge {      /+ endnotes (regular) +/      bool flg_notes_reg  = false;      bool flg_notes_star = false; +    bool flg_notes_plus = false;      obj_txt_in = (obj_txt_in).replaceAll(        rgx.inline_notes_curly,        (mkup.en_a_o ~ " $1" ~ mkup.en_a_c) @@ -4817,6 +4820,15 @@ static struct ObjInlineMarkupMunge {                rgx.inline_al_delimiter_open_symbol_star,                (mkup.en_a_o ~ replicate(asterisks_, n_foot_sp_asterisk) ~ " ")              ) ~ "\n"; +          } else if (n.hit.to!string.match(rgx.inline_al_delimiter_open_symbol_plus)) { +            flg_notes_plus =  true; +            ++n_foot_sp_plus; +            plus_ = "*"; +            n_foot=n_foot_sp_plus; +            obj_txt_out ~= n.hit.to!string.replaceFirst( +              rgx.inline_al_delimiter_open_symbol_plus, +              (mkup.en_a_o ~ replicate(plus_, n_foot_sp_plus) ~ " ") +            ) ~ "\n";            } else if (n.hit.to!string.match(rgx.inline_al_delimiter_open_regular)) {              flg_notes_reg =  true;              ++n_foot_reg; @@ -4837,6 +4849,7 @@ static struct ObjInlineMarkupMunge {        obj_txt_out,        flg_notes_reg,        flg_notes_star, +      flg_notes_plus,      );      return t;    } @@ -4888,6 +4901,7 @@ static struct ObjInlineMarkupMunge {        obj_txt_out,        ftn[1],        ftn[2], +      ftn[3],        urls,      );      return t; @@ -5208,7 +5222,8 @@ static struct ObjInlineMarkup {        obj_txt["munge"]                  = x[0];        obj_notes_and_links["notes_reg"]  = x[1];        obj_notes_and_links["notes_star"] = x[2]; -      obj_notes_and_links["links"]      = x[3]; +      obj_notes_and_links["notes_plus"] = x[3]; +      obj_notes_and_links["links"]      = x[4];        break;      }      auto t = tuple( @@ -5443,7 +5458,7 @@ private:          heading_num[3] = 0;          heading_number_auto_composite = "";        } -      /+ num_depth minimum 0 +      /+ auto_num_depth minimum 0           (1.) default 2 (1.1.1) max 3 (1.1.1.1) implement +/        if (          conf_make_meta.make.auto_num_top_lv @@ -5481,7 +5496,7 @@ private:        }        if (heading_num[3] > 0) {          heading_number_auto_composite -          = (conf_make_meta.make.num_depth.to!uint == 3) +          = (conf_make_meta.make.auto_num_depth.to!uint == 3)            ? ( heading_num[0].to!string ~ "."                ~ heading_num[1].to!string ~ "."                ~ heading_num[2].to!string ~ "." @@ -5490,8 +5505,8 @@ private:            : "";        } else if (heading_num[2] > 0) {          heading_number_auto_composite -          = ((conf_make_meta.make.num_depth.to!uint >= 2) -          && (conf_make_meta.make.num_depth.to!uint <= 3)) +          = ((conf_make_meta.make.auto_num_depth.to!uint >= 2) +          && (conf_make_meta.make.auto_num_depth.to!uint <= 3))            ?  ( heading_num[0].to!string ~ "."                 ~ heading_num[1].to!string ~ "."                 ~ heading_num[2].to!string @@ -5499,16 +5514,16 @@ private:            : "";        } else if (heading_num[1] > 0) {          heading_number_auto_composite -          = ((conf_make_meta.make.num_depth.to!uint >= 1) -          && (conf_make_meta.make.num_depth.to!uint <= 3)) +          = ((conf_make_meta.make.auto_num_depth.to!uint >= 1) +          && (conf_make_meta.make.auto_num_depth.to!uint <= 3))            ? ( heading_num[0].to!string ~ "."                 ~ heading_num[1].to!string               )            : "";        } else if (heading_num[0] > 0) {          heading_number_auto_composite -          = ((conf_make_meta.make.num_depth.to!uint >= 0) -          && (conf_make_meta.make.num_depth.to!uint <= 3)) +          = ((conf_make_meta.make.auto_num_depth.to!uint >= 0) +          && (conf_make_meta.make.auto_num_depth.to!uint <= 3))            ?  (heading_num[0].to!string)            : "";        } else { diff --git a/org/meta_conf_make_meta.org b/org/meta_conf_make_meta.org index e784a87..9f6fbf7 100644 --- a/org/meta_conf_make_meta.org +++ b/org/meta_conf_make_meta.org @@ -46,6 +46,13 @@ import sdp.meta.conf_make_meta_structs;  #+BEGIN_SRC d :tangle ../src/sdp/meta/conf_make_meta_structs.d  module sdp.meta.conf_make_meta_structs; +<<meta_defaults_template_structs>> +#+END_SRC + +** initialize, imports etc. + +#+name: meta_defaults_template_structs +#+BEGIN_SRC d  import    std.exception,    std.json, @@ -56,27 +63,51 @@ import    std.typecons,    std.utf,    std.conv : to; -<<meta_defaults_template_structs>> +import +  sdp.meta.defaults, +  sdp.meta.rgx; +mixin SiSUrgxInit; +static auto _rgx = Rgx(); +mixin InternalMarkup; +auto _mkup = InlineMarkup();  #+END_SRC  ** struct Generic ConfComposite  #+name: meta_defaults_template_structs  #+BEGIN_SRC d +auto url_markup(string line) { +  auto line_ = (line) +    .replaceAll( +      _rgx.inline_link_markup_regular, +      ("$1" +        ~ _mkup.lnk_o ~ "$2" ~ _mkup.lnk_c +        ~  _mkup.url_o ~ "$3" ~  _mkup.url_c +        ~ "$4")            // ("$1{ $2 }$3$4") +      ) +    .replaceAll( +        _rgx.inline_link_naked_url, +        ("$1" +          ~ _mkup.lnk_o ~ "$2" ~ _mkup.lnk_c +          ~  _mkup.url_o ~ "$2" ~  _mkup.url_c +          ~ "$3")            // ("$1{ $2 }$2$3") +      ); +  return line_; +}  struct ConfCompositeMakeStr {    string bold;    string breaks;    string cover_image;    string css;    string emphasis; -  string footer; +  string[] footer;    string[] headings; -  string home_button_image; -  string home_button_text; +  string[] home_button_image; +  string[] home_button_text;    string italics;    string auto_num_top_at_level;    int auto_num_top_lv               = 9; -  int num_depth                     = 2; +  int auto_num_depth                = 2;    string[][] substitute;    string texpdf_font;  } @@ -104,17 +135,27 @@ struct confCompositeMakeBuild {      }      return _out;    } -  auto footer(string _mk) { -    return _mk; +  auto footer(string[] _mk) { +    string line_; +    string[] _mk2; +    foreach (line; _mk) { +      _mk2 ~= url_markup(line); +    } +    return _mk2;    }    auto headings(string[] _mk) {      return _mk;    } -  auto home_button_image(string _mk) { +  auto home_button_image(string[] _mk) {      return _mk;    } -  auto home_button_text(string _mk) { -    return _mk; +  auto home_button_text(string[] _mk) { +    string line_; +    string[] _mk2; +    foreach (line; _mk) { +      _mk2 ~= url_markup(line); +    } +    return _mk2;    }    auto italics(string _mk) {      string[] _out; @@ -129,7 +170,7 @@ struct confCompositeMakeBuild {    auto auto_num_top_lv(int _mk) {      return _mk;    } -  auto num_depth(int _mk) { +  auto auto_num_depth(int _mk) {      return _mk;    }    auto substitute(string[][] _mk) { @@ -152,14 +193,14 @@ struct ConfCompositeMakeInit {    string cover_image;    string css;    string[] emphasis; -  string footer; +  string[] footer;    string[] headings; -  string home_button_image; -  string home_button_text; +  string[] home_button_image; +  string[] home_button_text;    string[] italics;    string auto_num_top_at_level;    int auto_num_top_lv               = 9; -  int num_depth                     = 2; +  int auto_num_depth                = 2;    string[][] substitute;    string texpdf_font;  } @@ -333,7 +374,7 @@ static auto ptr_head_sub_make      "home_button_image",      "home_button_text",      "footer", "headings", -    "auto_num_top_at_level", "auto_num_top_lv", "num_depth", +    "auto_num_top_at_level", "auto_num_top_lv", "auto_num_depth",      "breaks",      "substitute",      "bold", @@ -457,7 +498,17 @@ if ("make" in _json.object) {    if ("footer" in _json.object["make"]      && (_json.object["make"]["footer"].type().to!string == "STRING")    ) { -    _struct_composite.make_str.footer = _json.object["make"]["footer"].str; +   char[][] __match_footer_array +      = (cast(char[]) _json.object["make"]["footer"].str) +        .split(_rgx.make_heading_delimiter); +    _struct_composite.make_str.footer = __match_footer_array.to!(string[]); +  } else if ("footer" in _json.object["make"] +    && _json.object["make"]["footer"].type().to!string == "ARRAY") { +    string[] _match_footer_array; +    foreach (_match_heading; _json.object["make"]["footer"].arrayNoRef) { +      _match_footer_array ~= _match_heading.str; +    } +    _struct_composite.make_str.footer = _match_footer_array;    }    if ("headings" in _json.object["make"]      && (_json.object["make"]["headings"].type().to!string == "STRING") @@ -477,12 +528,32 @@ if ("make" in _json.object) {    if ("home_button_image" in _json.object["make"]      && (_json.object["make"]["home_button_image"].type().to!string == "STRING")    ) { -    _struct_composite.make_str.home_button_image = _json.object["make"]["home_button_image"].str; +   char[][] __match_home_button_image_array +      = (cast(char[]) _json.object["make"]["home_button_image"].str) +        .split(_rgx.make_heading_delimiter); +    _struct_composite.make_str.home_button_image = __match_home_button_image_array.to!(string[]); +  } else if ("home_button_image" in _json.object["make"] +    && _json.object["make"]["home_button_image"].type().to!string == "ARRAY") { +    string[] _match_home_button_image_array; +    foreach (_match_heading; _json.object["make"]["home_button_image"].arrayNoRef) { +      _match_home_button_image_array ~= _match_heading.str; +    } +    _struct_composite.make_str.home_button_image = _match_home_button_image_array;    }    if ("home_button_text" in _json.object["make"]      && (_json.object["make"]["home_button_text"].type().to!string == "STRING")    ) { -    _struct_composite.make_str.home_button_text = _json.object["make"]["home_button_text"].str; +   char[][] __match_home_button_text_array +      = (cast(char[]) _json.object["make"]["home_button_text"].str) +        .split(_rgx.make_heading_delimiter); +    _struct_composite.make_str.home_button_text = __match_home_button_text_array.to!(string[]); +  } else if ("home_button_text" in _json.object["make"] +    && _json.object["make"]["home_button_text"].type().to!string == "ARRAY") { +    string[] _match_home_button_text_array; +    foreach (_match_heading; _json.object["make"]["home_button_text"].arrayNoRef) { +      _match_home_button_text_array ~= _match_heading.str; +    } +    _struct_composite.make_str.home_button_text = _match_home_button_text_array;    }    if ("italics" in _json.object["make"]      && (_json.object["make"]["italics"].type().to!string == "STRING") @@ -521,14 +592,14 @@ if ("make" in _json.object) {        break;      }    } -  if ("num_depth" in _json.object["make"] -    && (_json.object["make"]["num_depth"].type().to!string == "INTEGER") +  if ("auto_num_depth" in _json.object["make"] +    && (_json.object["make"]["auto_num_depth"].type().to!string == "INTEGER")    ) { -    _struct_composite.make_str.num_depth = _json.object["make"]["num_depth"].integer.to!int; -  } else if ("num_depth" in _json.object["make"] -    && (_json.object["make"]["num_depth"].type().to!string == "STRING") +    _struct_composite.make_str.auto_num_depth = _json.object["make"]["auto_num_depth"].integer.to!int; +  } else if ("auto_num_depth" in _json.object["make"] +    && (_json.object["make"]["auto_num_depth"].type().to!string == "STRING")    ) { -    _struct_composite.make_str.num_depth = _json.object["make"]["num_depth"].str.to!int; +    _struct_composite.make_str.auto_num_depth = _json.object["make"]["auto_num_depth"].str.to!int;    }    if ("substitute" in _json.object["make"]) {      string[][] _sub; @@ -571,7 +642,7 @@ if ("make" in _json.object) {    _struct_composite.make.italics                        = _mk.italics(_struct_composite.make_str.italics);    _struct_composite.make.auto_num_top_at_level          = _mk.auto_num_top_at_level(_struct_composite.make_str.auto_num_top_at_level);    _struct_composite.make.auto_num_top_lv                = _mk.auto_num_top_lv(_struct_composite.make_str.auto_num_top_lv); -  _struct_composite.make.num_depth                      = _mk.num_depth(_struct_composite.make_str.num_depth); +  _struct_composite.make.auto_num_depth                 = _mk.auto_num_depth(_struct_composite.make_str.auto_num_depth);    _struct_composite.make.substitute                     = _mk.substitute(_struct_composite.make_str.substitute);    _struct_composite.make.texpdf_font                    = _mk.texpdf_font(_struct_composite.make_str.texpdf_font);  } diff --git a/org/output_hub.org b/org/output_hub.org index 3c44e7d..0221652 100644 --- a/org/output_hub.org +++ b/org/output_hub.org @@ -62,7 +62,7 @@ import sdp.output,  #+name: output_options  #+BEGIN_SRC d -if ((doc_matters.opt.action.verbose)) { +if (doc_matters.opt.action.verbose) {    writeln(doc_matters.xml.keys_seq.seg);  }  #+END_SRC diff --git a/org/output_sisupod.org b/org/output_sisupod.org index 7af3573..ef1a85f 100644 --- a/org/output_sisupod.org +++ b/org/output_sisupod.org @@ -152,36 +152,35 @@ auto fn_sisupod = pths_sisupod.sisupod_filename(doc_matters.src.filename).zpod;      }    }  } { /+ bundle sisu_document_make +/ -  foreach (extension; [".sdl", ".toml"]) { -    auto fn_src_in = ((doc_matters.src.is_pod) -      ? doc_matters.src.conf_dir_path -      : pth_sisudoc_src.conf_root).to!string -      ~ "/" ~ "sisu_document_make" ~ extension; -    auto fn_src_out_sisupod_zip_base -      = pths_sisupod.conf_root(doc_matters.src.filename).zpod.to!string ~ "/" ~ "sisu_document_make"; -    auto fn_src_out_filesystem -      = pths_sisupod.conf_root(doc_matters.src.filename).filesystem_open_zpod.to!string -      ~ "/" ~ "sisu_document_make" ~ extension; // TODO -    if (exists(fn_src_in)) { -      debug(io) { -        writeln("WARNING (io debug) src out found: ", fn_src_in); -      } -      if (doc_matters.opt.action.source) { -        fn_src_in.copy(fn_src_out_filesystem); -      } -      if (doc_matters.opt.action.sisupod) { -        auto zip_arc_member_file = new ArchiveMember(); -        zip_arc_member_file.name = fn_src_out_sisupod_zip_base; -        auto zip_data = new OutBuffer(); -        zip_data.write((fn_src_in).readText); -        zip_arc_member_file.expandedData = zip_data.toBytes(); -        zip.addMember(zip_arc_member_file); -      } -    } else { -      if (doc_matters.opt.action.verbose -      || doc_matters.opt.action.debug_do) { -        writeln("WARNING (io) src out NOT found (document make): ", fn_src_in); -      } +  auto extension = ".toml"; +  auto fn_src_in = ((doc_matters.src.is_pod) +    ? doc_matters.src.conf_dir_path +    : pth_sisudoc_src.conf_root).to!string +    ~ "/" ~ "sisu_document_make" ~ extension; +  auto fn_src_out_sisupod_zip_base +    = pths_sisupod.conf_root(doc_matters.src.filename).zpod.to!string ~ "/" ~ "sisu_document_make"; +  auto fn_src_out_filesystem +    = pths_sisupod.conf_root(doc_matters.src.filename).filesystem_open_zpod.to!string +    ~ "/" ~ "sisu_document_make" ~ extension; // TODO +  if (exists(fn_src_in)) { +    debug(io) { +      writeln("WARNING (io debug) src out found: ", fn_src_in); +    } +    if (doc_matters.opt.action.source) { +      fn_src_in.copy(fn_src_out_filesystem); +    } +    if (doc_matters.opt.action.sisupod) { +      auto zip_arc_member_file = new ArchiveMember(); +      zip_arc_member_file.name = fn_src_out_sisupod_zip_base; +      auto zip_data = new OutBuffer(); +      zip_data.write((fn_src_in).readText); +      zip_arc_member_file.expandedData = zip_data.toBytes(); +      zip.addMember(zip_arc_member_file); +    } +  } else { +    if (doc_matters.opt.action.verbose +    || doc_matters.opt.action.debug_do) { +      writeln("WARNING (io) src out NOT found (document make): ", fn_src_in);      }    }  } { /+ TODO bundle primary file +/ diff --git a/org/output_xmls.org b/org/output_xmls.org index 4a0babb..9a34534 100644 --- a/org/output_xmls.org +++ b/org/output_xmls.org @@ -230,12 +230,31 @@ auto header_metadata(Dm)(  auto site_info_button(Dm)(    Dm doc_matters,  ) { -  string _location_1_url ="http://www.sisudoc.org"; -  string _location_1_lnk ="SiSU"; -  string _location_2_url ="http://www.sisudoc.org"; -  string _location_2_lnk ="www.sisudoc.org"; -  string _location_3_url ="http://www.sisudoc.org"; -  string _location_3_lnk ="sisu"; +  string[string][] _location = [ +    [ "url" : "", "lnk" : "" ], +    [ "url" : "", "lnk" : "" ], +    [ "url" : "", "lnk" : "" ] +  ]; +  if (doc_matters.conf_make_meta.make.home_button_text.length > 0) { +    foreach(int key, string line; doc_matters.conf_make_meta.make.home_button_text) { +      if (auto m = line.match(rgx.inline_link)) { +        if (key < 3) { +          _location[key] = [ "url" : m.captures[2], "lnk" : m.captures[1] ]; +        } else { +          writeln("WARNING markup error info button content too long (max length 3 used), length: ", +            doc_matters.conf_make_meta.make.home_button_text.length, +            " button: ", doc_matters.conf_make_meta.make.home_button_text); +        } +      } else { +        _location[key]["url"] = ""; +        _location[key]["lnk"] = line; +      } +    } +  } else { +    _location[0]["url"] = "http://www.sisudoc.org"; _location[0]["lnk"] = "SiSU"; +    _location[1]["url"] = "http://www.sisudoc.org"; _location[1]["lnk"] = "www.sisudoc.org"; +    _location[2]["url"] = "http://www.sisudoc.org"; _location[2]["lnk"] = "sisu"; +  }    string o;    o = format(q"¶<div class="flex-menu-option">        <p class="tiny_left"><a href="%s" target="_top"> @@ -248,12 +267,9 @@ auto site_info_button(Dm)(          %s        </a></p>      </div>¶", -  _location_1_url, -  _location_1_lnk, -  _location_2_url, -  _location_2_lnk, -  _location_3_url, -  _location_3_lnk, +  _location[0]["url"], _location[0]["lnk"], +  _location[1]["url"], _location[1]["lnk"], +  _location[2]["url"], _location[2]["lnk"],    );    return o;  } @@ -439,16 +455,16 @@ auto inline_links(O)(          rgx.inline_seg_link,          "$1");      } -    _txt = (_txt).replaceAll( -      rgx.inline_link_fn_suffix, -      ("$1" ~ _suffix)); -    _txt = (_txt).replaceAll( -      rgx.inline_link, -      ("<a href=\"$2\">$1</a>")); -    _txt = (_txt).replaceAll( -      rgx.mark_internal_site_lnk, -      "" -    ); +    _txt = (_txt) +      .replaceAll( +        rgx.inline_link_fn_suffix, +        ("$1" ~ _suffix)) +      .replaceAll( +        rgx.inline_link, +        ("<a href=\"$2\">$1</a>")) +      .replaceAll( +        rgx.mark_internal_site_lnk, +        "");    }    debug(markup_links) {      if (_txt.match(rgx.inline_link)) { @@ -483,6 +499,7 @@ auto inline_notes_scroll(O)(    string                    _txt,  ) {    if (obj.inline_notes_reg) { +    _txt = font_face(_txt);      _txt = (_txt).replaceAll(        rgx.inline_notes_delimiter_al_regular_number_note,        ("<a href=\"#note_$1\"><note id=\"noteref_$1\"> <sup>$1</sup> </note></a>") @@ -512,6 +529,7 @@ auto inline_notes_seg(O)(  ) {    string[] _endnotes;    if (obj.inline_notes_reg) { +    _txt = font_face(_txt);      /+ need markup for text, and separated footnote +/      foreach(m; _txt.matchAll(rgx.inline_notes_delimiter_al_regular_number_note)) {        _endnotes ~= format( diff --git a/org/sdp.org b/org/sdp.org index 463b03f..202bf9b 100644 --- a/org/sdp.org +++ b/org/sdp.org @@ -1321,7 +1321,7 @@ provide the result as a single set of make instructions for each document parsed  |                     | - home_button_text       | - home_button_text         | - home_button_text     |                             |  |                     | - italics                | - italics                  | - italics              |                             |  |                     | - num_top                | - num_top                  | - num_top              |                             | -|                     | - num_depth              | - num_depth                | - num_depth            |                             | +|                     | - auto_num_depth         | - auto_num_depth           | - auto_num_depth       |                             |  |                     | - substitute             | - substitute               | - substitute           |                             |  |                     | - texpdf_font            | - texpdf_font              | - texpdf_font          |                             |  |---------------------+--------------------------+----------------------------+------------------------+-----------------------------| | 
