diff options
Diffstat (limited to 'org/default_paths.org')
| -rw-r--r-- | org/default_paths.org | 66 | 
1 files changed, 61 insertions, 5 deletions
diff --git a/org/default_paths.org b/org/default_paths.org index ff14d50..cc78c46 100644 --- a/org/default_paths.org +++ b/org/default_paths.org @@ -46,7 +46,7 @@ template PodManifest() {    mixin SiSUrgxInit;    static auto rgx = Rgx();    auto PodManifest(P)( -    P   _pth = "", +    P   _pth    ) {      struct ManifestFile_ {        auto pod_manifest_filename() { @@ -68,8 +68,8 @@ template PodManifest() {              _manifest_path = m.captures["podpath"];            }          } else  { -          writeln("WARNING, issue with manifest_path: ", _pth); -          _manifest_path = _pth; // _manifest_path = null; +          writeln("WARNING, issue with manifest_path: ", _pth); // remove? +          _manifest_path = null; // _manifest_path = "";          }          return _manifest_path;        } @@ -118,7 +118,7 @@ template PathMatters() {    auto PathMatters(O,E,P,F)(      O   _opt_actions,      E   _env, -    P   _pth                   = "", +    P   _pth,      F   _fns                   = "",      char[][] _manifest_fn_list = [[]],    ) { @@ -168,6 +168,9 @@ template PathMatters() {            auto manifest_path() {              return _manifest.pod_manifest_path;            } +          auto pod_name() { // TODO decide what returned if src_is_pod == false +            return _manifest.pod_manifest_path.baseName; +          }            auto manifest_file_with_path() {              return _manifest.pod_manifest_file_with_path;            } @@ -243,7 +246,8 @@ template PathMatters() {                assert(_dir == m.captures["dir"]);              } else {                _dir = asNormalizedPath(path_and_fn.chainPath("../../../")).array; -              assert(_dir == absolute_path_to_src.match(rgx.src_base_parent_dir_name).captures["dir"]); +              assert(_dir == absolute_path_to_src +                .match(rgx.src_base_parent_dir_name).captures["dir"]);              }              if ((_opt_actions.debug_do)) {                writeln("--> (base_dir)  ", _dir); @@ -843,6 +847,14 @@ import sdp.meta.rgx;  #+END_SRC  ** shared out path, base directory                                     :out: +- output paths for content, minimize chance of filename/directory collisions +  in particular pods can contain markup that is published under a name that may +  be used elsewere +  - if the pod directory has a different name from the file append the pod +    directory name to the output file name: pod_directory.markup_filename e.g. +    sisu-manual.sisu_markup +  - if pod and file have same name, keep name (makes no sense to repeat pod +    name) NO sisu_markup.sisu_markup should be sisu_markup  #+name: template_paths_out  #+BEGIN_SRC d @@ -870,6 +882,50 @@ template SiSUoutPaths() {  }  #+END_SRC +** set + +#+name: template_paths_out +#+BEGIN_SRC d +template SiSUoutPathsFnPd() { +  /+ TODO stuff to work out here +/ +  auto SiSUoutPathsFnPd(Fn,Pn)( +    Fn  fn_src_pth, +    Pn  pod_name +    // Pn  pod_name = "", +  ) { +    struct _PathsStruct { +      string base_filename() { +        return fn_src_pth.baseName.stripExtension; +      } +      string base_pod_and_filename() { // TODO +        /+ +          - if pod, +            - pod_name +            - file_name +            - if pod_name == file_name +              - file_name +            - else if pod_name != file_name +              - pod_name.file_name +        +/ +        auto _fn_src = fn_src_pth.baseName.stripExtension; +        string _output_base_name; +        if (!(pod_name.empty)) { +          if (pod_name == _fn_src) { +            _output_base_name = _fn_src; +          } else { +            _output_base_name = pod_name ~ "." ~ _fn_src; +          } +        } else { +          _output_base_name = _fn_src; +        } +        return _output_base_name; +      } +    } +    return _PathsStruct(); +  } +} +#+END_SRC +  ** _html_                                                               :html:  #+name: template_paths_html  | 
