From 3ee2ed36bd81f7f097aebf946983a732d6d27665 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Fri, 28 Sep 2018 17:15:44 -0400 Subject: config webserv_url_doc_root, domain & path --- org/default_regex.org | 1 + org/meta_conf_make_meta.org | 16 ++++++++-------- src/doc_reform/meta/conf_make_meta_json.d | 11 +++++------ src/doc_reform/meta/conf_make_meta_structs.d | 5 +++-- src/doc_reform/meta/rgx.d | 1 + 5 files changed, 18 insertions(+), 16 deletions(-) diff --git a/org/default_regex.org b/org/default_regex.org index 6fbe87b..7f0c724 100644 --- a/org/default_regex.org +++ b/org/default_regex.org @@ -257,6 +257,7 @@ static note_ref = ctRegex!(`^\S+?noteref_( #+name: meta_rgx #+BEGIN_SRC d +static webserv_url_doc_root = ctRegex!(`(?P(?Phttps?:\/\/[^ /]+)\/(?P\S*))`, "mg"); static smid_inline_url_generic = ctRegex!(`(?:^|[}(\[ ])(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)[a-zA-Z0-9_#]`, "mg"); static smid_inline_url = ctRegex!(`((?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)[a-zA-Z0-9_]\S*)`, "mg"); static smid_inline_link_naked_url = ctRegex!(`(?P
^|[ ])(?P(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤)\S+?)(?P[.,;:?!'"]?(?:[ ]|$))`, "mg"); // issue with #link #32
diff --git a/org/meta_conf_make_meta.org b/org/meta_conf_make_meta.org
index fcae4bb..0a6074b 100644
--- a/org/meta_conf_make_meta.org
+++ b/org/meta_conf_make_meta.org
@@ -213,8 +213,9 @@ struct ConfCompositeMakeInit {
 #+name: meta_defaults_template_structs
 #+BEGIN_SRC d
 struct ConfCompositeSiteLocal {
-  string webserv_url_root;
-  string webserv_path;
+  string webserv_url_doc_root;
+  string webserv_url_domain;
+  string webserv_url_doc_path;
   string webserv_images;
   string webserv_cgi;
   string webserv_cgi_host;
@@ -651,12 +652,11 @@ if ("webserv" in _json.object) {
   if ("url_root" in _json.object["webserv"]
     && (_json.object["webserv"]["url_root"].type().to!string == "STRING")
   ) {
-    _struct_composite.conf.webserv_url_root = _json.object["webserv"]["url_root"].str;
-  }
-  if ("path" in _json.object["webserv"]
-    && (_json.object["webserv"]["path"].type().to!string == "STRING")
-  ) {
-    _struct_composite.conf.webserv_path = _json.object["webserv"]["path"].str;
+    _struct_composite.conf.webserv_url_doc_root = _json.object["webserv"]["url_root"].str;
+    if (auto m = _struct_composite.conf.webserv_url_doc_root.match(_rgx.webserv_url_doc_root)) {
+      _struct_composite.conf.webserv_url_domain = m.captures[2].to!string;
+      _struct_composite.conf.webserv_url_doc_path = m.captures[3].to!string;
+    }
   }
   if ("images" in _json.object["webserv"]
     && (_json.object["webserv"]["images"].type().to!string == "STRING")
diff --git a/src/doc_reform/meta/conf_make_meta_json.d b/src/doc_reform/meta/conf_make_meta_json.d
index 30aaedc..cf4c21a 100644
--- a/src/doc_reform/meta/conf_make_meta_json.d
+++ b/src/doc_reform/meta/conf_make_meta_json.d
@@ -211,12 +211,11 @@ static template contentJSONtoDocReformStruct() {
       if ("url_root" in _json.object["webserv"]
         && (_json.object["webserv"]["url_root"].type().to!string == "STRING")
       ) {
-        _struct_composite.conf.webserv_url_root = _json.object["webserv"]["url_root"].str;
-      }
-      if ("path" in _json.object["webserv"]
-        && (_json.object["webserv"]["path"].type().to!string == "STRING")
-      ) {
-        _struct_composite.conf.webserv_path = _json.object["webserv"]["path"].str;
+        _struct_composite.conf.webserv_url_doc_root = _json.object["webserv"]["url_root"].str;
+        if (auto m = _struct_composite.conf.webserv_url_doc_root.match(_rgx.webserv_url_doc_root)) {
+          _struct_composite.conf.webserv_url_domain = m.captures[2].to!string;
+          _struct_composite.conf.webserv_url_doc_path = m.captures[3].to!string;
+        }
       }
       if ("images" in _json.object["webserv"]
         && (_json.object["webserv"]["images"].type().to!string == "STRING")
diff --git a/src/doc_reform/meta/conf_make_meta_structs.d b/src/doc_reform/meta/conf_make_meta_structs.d
index a05acf7..7158f86 100644
--- a/src/doc_reform/meta/conf_make_meta_structs.d
+++ b/src/doc_reform/meta/conf_make_meta_structs.d
@@ -141,8 +141,9 @@ struct ConfCompositeMakeInit {
   string texpdf_font;
 }
 struct ConfCompositeSiteLocal {
-  string webserv_url_root;
-  string webserv_path;
+  string webserv_url_doc_root;
+  string webserv_url_domain;
+  string webserv_url_doc_path;
   string webserv_images;
   string webserv_cgi;
   string webserv_cgi_host;
diff --git a/src/doc_reform/meta/rgx.d b/src/doc_reform/meta/rgx.d
index 39f2479..4657384 100644
--- a/src/doc_reform/meta/rgx.d
+++ b/src/doc_reform/meta/rgx.d
@@ -145,6 +145,7 @@ static template DocReformRgxInit() {
     static inline_curly_delimiter_close_regular           = ctRegex!(`\s*\}~`, "m");
     static inline_text_and_note_curly                     = ctRegex!(`(?P.+?)(?:(?:[~])[{][*+ ]*)(?P.+?)(?:[}][~])`, "mg");
     static note_ref                                       = ctRegex!(`^\S+?noteref_([0-9]+)`, "mg");     // {^{73.}^}#noteref_73
+    static webserv_url_doc_root                           = ctRegex!(`(?P(?Phttps?:\/\/[^ /]+)\/(?P\S*))`, "mg");
     static smid_inline_url_generic                        = ctRegex!(`(?:^|[}(\[ ])(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)[a-zA-Z0-9_#]`, "mg");
     static smid_inline_url                                = ctRegex!(`((?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)[a-zA-Z0-9_]\S*)`, "mg");
     static smid_inline_link_naked_url                     = ctRegex!(`(?P
^|[ ])(?P(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤)\S+?)(?P[.,;:?!'"]?(?:[ ]|$))`, "mg"); // issue with #link #32
-- 
cgit v1.2.3