diff options
| author | Ralph Amissah <ralph.amissah@gmail.com> | 2019-09-24 11:13:42 -0400 | 
|---|---|---|
| committer | Ralph Amissah <ralph.amissah@gmail.com> | 2019-10-17 19:07:20 -0400 | 
| commit | d43281245f1732941228d79663c8e8d3280a972c (patch) | |
| tree | 0d0c814b11130e87768791a793204cc3588d8941 /org/source_files_read.org | |
| parent | flag --show-summary (diff) | |
document headers & config: yaml introduced
- as toml alternative
- both toml & yaml (meta, conf, make) work
Diffstat (limited to 'org/source_files_read.org')
| -rw-r--r-- | org/source_files_read.org | 124 | 
1 files changed, 103 insertions, 21 deletions
diff --git a/org/source_files_read.org b/org/source_files_read.org index e7eb02a..02e31e0 100644 --- a/org/source_files_read.org +++ b/org/source_files_read.org @@ -42,19 +42,23 @@ module doc_reform.source.read_config_files;  <<meta_config_file_hub>>  #+END_SRC -*** 0. read config files (config_local_site & dr_document_make) toml +*** 0. read config files (config_local_site & dr_document_make) (yaml or toml)  **** 1. site configuration  #+name: meta_config_file_hub  #+BEGIN_SRC d  static template readConfigSite() { +  import +    doc_reform.meta.rgx;    <<imports_std>> +  mixin DocReformRgxInit;    final auto readConfigSite(M,E)(M _manifest, E _env) { +    static auto rgx = Rgx();      string config_file_str;      string conf_filename = "NONE";      auto _conf_file_details = ConfigFilePaths!()(_manifest, _env);      string[] possible_config_path_locations = _conf_file_details.possible_config_path_locations.config_local_site; -    foreach(conf_fn; [_conf_file_details.config_filename_site_toml]) { +    foreach(conf_fn; [_conf_file_details.config_filename_site]) {        foreach(pth; possible_config_path_locations) {          char[] conf_file = asNormalizedPath(chainPath(pth.to!string, conf_fn)).array;          conf_filename = conf_fn; @@ -81,7 +85,13 @@ static template readConfigSite() {          return conf_filename;        }        string filetype() { -        return conf_filename.extension.chompPrefix("."); +        string _ft = ""; +        if (content.match(rgx.yaml_config)) { +          _ft = "yaml"; +        } else if (content.match(rgx.toml_config)) { +          _ft = "toml"; +        } +        return _ft;        }        string content() {          return config_file_str; @@ -97,13 +107,17 @@ static template readConfigSite() {  #+name: meta_config_file_hub  #+BEGIN_SRC d  static template readConfigDoc() { +  import +    doc_reform.meta.rgx;    <<imports_std>> +  mixin DocReformRgxInit;    final auto readConfigDoc(M,E)(M _manifest, E _env) { +    static auto rgx = Rgx();      string config_file_str;      string conf_filename = "NONE";      auto _conf_file_details = ConfigFilePaths!()(_manifest, _env);      string[] possible_config_path_locations = _conf_file_details.possible_config_path_locations.dr_document_make; -    foreach(conf_fn; [_conf_file_details.config_filename_document_toml]) { +    foreach(conf_fn; [_conf_file_details.config_filename_document]) {        foreach(pth; possible_config_path_locations) {          auto conf_file = asNormalizedPath(chainPath(pth.to!string, conf_fn)).array;          conf_filename = conf_fn; @@ -129,12 +143,18 @@ static template readConfigDoc() {        string filename() {          return conf_filename;        } -      string filetype() { -        return conf_filename.extension.chompPrefix("."); -      } -      auto content() { +      string content() {          return config_file_str;        } +      string filetype() { +        string _ft = ""; +        if (content.match(rgx.yaml_config)) { +          _ft = "yaml"; +        } else if (content.match(rgx.toml_config)) { +          _ft = "toml"; +        } +        return _ft; +      }      }      return _ConfContent();    } @@ -147,11 +167,11 @@ static template readConfigDoc() {  #+name: meta_config_file_in  #+BEGIN_SRC d -static template configReadInSiteTOML() { +static template configReadInSiteSTR() {    <<imports_std>> -  final string configReadInSiteTOML(M,E)(M manifest, E env) { +  final string configReadInSiteSTR(M,E)(M manifest, E env) {      auto conf_file_details = ConfigFilePaths!()(manifest, env); -    string conf_toml = conf_file_details.config_filename_site_toml; +    string conf_toml = conf_file_details.config_filename_site;      string[] possible_config_path_locations = conf_file_details.possible_config_path_locations.config_local_site;      string config_file_str;      debug(io) { @@ -184,11 +204,11 @@ static template configReadInSiteTOML() {  #+name: meta_config_file_in  #+BEGIN_SRC d -static template configReadInDocTOML() { +static template configReadInDocSTR() {    <<imports_std>> -  final string configReadInDocTOML(M,E)(M manifest, E env) { +  final string configReadInDocSTR(M,E)(M manifest, E env) {      auto conf_file_details = ConfigFilePaths!()(manifest, env); -    string conf_toml = conf_file_details.config_filename_document_toml; +    string conf_toml = conf_file_details.config_filename_document;      string[] possible_config_path_locations = conf_file_details.possible_config_path_locations.dr_document_make;      string config_file_str;      debug(io) { @@ -217,6 +237,54 @@ static template configReadInDocTOML() {  }  #+END_SRC +*** 2. YAML config files get + +#+name: meta_config_file_yaml +#+BEGIN_SRC d +static template configYAML() { +  import dyaml; // +  <<imports_std>> +  YAMLDocument configYAML(string configuration, string conf_yaml_filename) { +    Node _yaml_conf; +    try { +      _yaml_conf = Loader.fromString(configuration).load() +    } catch(ErrnoException e) { +      stderr.writeln("Yaml problem with content for ", conf_yaml_filename); +      stderr.writeln(e.msg); +    } +    return _yaml_conf; +  } +} +#+END_SRC + +*** 3. YAML config (config_local_site & dr_document_make) :file:config:hub: + +#+name: meta_config_file_hub +#+BEGIN_SRC d +static template configReadSiteYAML() { +  <<imports_std>> +  import dyaml; +  final YAMLDocument configReadSiteYAML(M,E)(M _manifest, E _env) { +    string _configuration = configReadInSiteYAML!()(_manifest, _env); +    auto _conf_file_details = ConfigFilePaths!()(_manifest, _env); +    string _conf_yaml = _conf_file_details.config_filename_site; +    YAMLDocument _yaml_conf = configYAML!()(_configuration, _conf_yaml); +    return _yaml_conf; +  } +} +static template configReadDocYAML() { +  <<imports_std>> +  import yaml; +  final YAMLDocument configReadDocYAML(M,E)(M _manifest, E _env) { +    string _configuration = configReadInDocYAML!()(_manifest, _env); +    auto _conf_file_details = ConfigFilePaths!()(_manifest, _env); +    string _conf_yaml = _conf_file_details.config_filename_document; +    YAMLDocument _yaml_conf = configYAML!()(_configuration, _conf_yaml); +    return _yaml_conf; +  } +} +#+END_SRC +  *** 2. TOML config files get  #+name: meta_config_file_toml @@ -245,9 +313,9 @@ static template configReadSiteTOML() {    <<imports_std>>    import toml;    final TOMLDocument configReadSiteTOML(M,E)(M _manifest, E _env) { -    string _configuration = configReadInSiteTOML!()(_manifest, _env); +    string _configuration = configReadInSiteSTR!()(_manifest, _env);      auto _conf_file_details = ConfigFilePaths!()(_manifest, _env); -    string _conf_toml = _conf_file_details.config_filename_site_toml; +    string _conf_toml = _conf_file_details.config_filename_site;      TOMLDocument _toml_conf = configTOML!()(_configuration, _conf_toml);      return _toml_conf;    } @@ -256,9 +324,9 @@ static template configReadDocTOML() {    <<imports_std>>    import toml;    final TOMLDocument configReadDocTOML(M,E)(M _manifest, E _env) { -    string _configuration = configReadInDocTOML!()(_manifest, _env); +    string _configuration = configReadInDocSTR!()(_manifest, _env);      auto _conf_file_details = ConfigFilePaths!()(_manifest, _env); -    string _conf_toml = _conf_file_details.config_filename_document_toml; +    string _conf_toml = _conf_file_details.config_filename_document;      TOMLDocument _toml_conf = configTOML!()(_configuration, _conf_toml);      return _toml_conf;    } @@ -326,13 +394,20 @@ static template DocReformRawMarkupContent() {          static assert(!isTypeTuple!(tu));          images_list = tu[2].dup;        } +      string header_type = ""; +      if (header_raw.match(rgx.yaml_config)) { +        header_type = "yaml"; +      } else if (header_raw.match(rgx.toml_config)) { +        header_type = "toml"; +      }        t = tuple(          header_raw,          sourcefile_body_content, +        header_type,          insert_file_list,          images_list        ); -      static assert(t.length==4); +      static assert(t.length==5);        return t;      }    } @@ -470,13 +545,20 @@ auto markupSourceReadIn(in string fn_src) {  auto markupSourceHeaderContentRawLineTupleArray(in string source_txt_str) {    string[] file_insert_list = [];    string[] images_list = []; -  auto hc = header0Content1(source_txt_str); -  auto header = hc[0]; +  char[][] hc = header0Content1(source_txt_str); +  char[] header = hc[0];    char[] source_txt = hc[1];    auto source_line_arr = markupSourceLineArray(source_txt); +  string header_type = ""; +  if (header.match(rgx.yaml_config)) { +    header_type = "yaml"; +  } else if (header.match(rgx.toml_config)) { +    header_type = "toml"; +  }    auto t = tuple(      header,      source_line_arr, +    header_type,      file_insert_list,      images_list    );  | 
