From 73f8706880b753c9be8a27b0c28c59a3a45dfa86 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Fri, 9 Mar 2018 16:32:41 -0500 Subject: home button text, a redo --- src/sdp/output/rgx.d | 7 +++++++ src/sdp/output/xmls.d | 46 ++++++++++++---------------------------------- 2 files changed, 19 insertions(+), 34 deletions(-) (limited to 'src/sdp/output') diff --git a/src/sdp/output/rgx.d b/src/sdp/output/rgx.d index ee654f6..adadf9e 100644 --- a/src/sdp/output/rgx.d +++ b/src/sdp/output/rgx.d @@ -35,6 +35,13 @@ static template SiSUoutputRgxInit() { static src_base_parent_dir_name = ctRegex!(`[/](?P(?:[a-zA-Z0-9._-]+))(?:/media/text/[a-z]{2})$`); // formalizes dir structure static src_base_parent_path = ctRegex!(`(?P(?:[/a-zA-Z0-9._-]+))(?:/media/text/[a-z]{2})$`); // formalizes dir structure static src_formalised_file_path_parts = ctRegex!(`(?P(?:[/a-zA-Z0-9._-]+?)(?P[a-zA-Z0-9._-]+))(?:/media/text/[a-z]{2})$`); // formalizes dir structure + /+ line breaks +/ + static br_line = ctRegex!(`┘`, "mg"); + static br_nl = ctRegex!(`┙`, "mg"); + static br_paragraph = ctRegex!(`┚`, "mg"); + static br_page_line = ctRegex!(`┼`, "mg"); + static br_page = ctRegex!(`┿`, "mg"); + static br_page_new = ctRegex!(`╂`, "mg"); /+ 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 diff --git a/src/sdp/output/xmls.d b/src/sdp/output/xmls.d index dd2ec67..952c9cd 100644 --- a/src/sdp/output/xmls.d +++ b/src/sdp/output/xmls.d @@ -152,46 +152,24 @@ template outputXHTMLs() { auto site_info_button(Dm)( Dm doc_matters, ) { - string[string][] _location = [ - [ "url" : "", "lnk" : "" ], - [ "url" : "", "lnk" : "" ], - [ "url" : "", "lnk" : "" ] - ]; + string _locations; 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; - } - } + _locations = (doc_matters.conf_make_meta.make.home_button_text) + .replaceAll( + rgx.inline_link, + ("

$1

")) + .replaceAll( + rgx.br_line, "") + .replaceAll( + rgx.br_nl, ""); } 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"; + writeln("WARNING home button text expected"); } string o; o = format(q"¶¶", - _location[0]["url"], _location[0]["lnk"], - _location[1]["url"], _location[1]["lnk"], - _location[2]["url"], _location[2]["lnk"], + _locations, ); return o; } -- cgit v1.2.3