diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/doc_reform/doc_reform.d | 20 | ||||
| -rw-r--r-- | src/doc_reform/meta/metadoc.d | 39 | 
2 files changed, 56 insertions, 3 deletions
| diff --git a/src/doc_reform/doc_reform.d b/src/doc_reform/doc_reform.d index f1d8d18..53ddbcf 100755 --- a/src/doc_reform/doc_reform.d +++ b/src/doc_reform/doc_reform.d @@ -4,6 +4,7 @@ import    doc_reform.conf.compile_time_info,    doc_reform.meta.metadoc;  import +  std.datetime,    std.getopt,    std.file,    std.path, @@ -396,6 +397,21 @@ void main(string[] args) {      }    }    auto _opt_action = OptActions(); +  auto program_info() { +    struct ProgramInfo { +      string name() { +        return program_name; +      } +      auto ver() { +        string ver_ = format( +          "%s.%s.%s", +          _ver.major, _ver.minor, _ver.patch, +        ); +        return ver_; +      } +    } +    return ProgramInfo(); +  }    auto _env = [      "pwd" :     environment["PWD"],      "home" :    environment["HOME"], @@ -518,7 +534,7 @@ void main(string[] args) {            ) {              writeln("--->\nstepX commence → (document abstraction)");            } -          auto t = DocReformAbstraction!()(_env, _opt_action, manifest); +          auto t = DocReformAbstraction!()(_env, program_info, _opt_action, manifest);            static assert(!isTypeTuple!(t));            static assert(t.length==2);            auto doc_abstraction = t[dAM.abstraction]; @@ -598,7 +614,7 @@ void main(string[] args) {            ) {              writeln("--->\nstepX commence → (document abstraction)");            } -          auto t = DocReformAbstraction!()(_env, _opt_action, manifest); +          auto t = DocReformAbstraction!()(_env, program_info, _opt_action, manifest);            static assert(!isTypeTuple!(t));            static assert(t.length==2);            auto doc_abstraction = t[dAM.abstraction]; diff --git a/src/doc_reform/meta/metadoc.d b/src/doc_reform/meta/metadoc.d index 4cb218e..a57159d 100644 --- a/src/doc_reform/meta/metadoc.d +++ b/src/doc_reform/meta/metadoc.d @@ -1,6 +1,7 @@  module doc_reform.meta.metadoc;  template DocReformAbstraction() {    import +    std.datetime,      std.getopt,      std.file,      std.path, @@ -28,8 +29,9 @@ template DocReformAbstraction() {    enum makeMeta { make, meta }    enum docAbst  { doc_abstraction, section_keys, segnames, segnames_0_4, tag_assoc, images }    static auto rgx = Rgx(); -  auto DocReformAbstraction(E,O,M)( +  auto DocReformAbstraction(E,P,O,M)(      E _env, +    P program_info,      O _opt_action,      M _manifest    ){ @@ -112,6 +114,41 @@ template DocReformAbstraction() {        writeln("step4 commence → (doc_matters)");      }      struct DocumentMatters { +      auto generator_program() { +        struct Prog_ { +          auto name() { +            return program_info.name; +          } +          auto ver() { +            return program_info.ver; +          } +          auto name_and_version() { +            return format( +              "%s-%s", +              program_info.name, +              program_info.ver, +            ); +          } +          auto url_home() { +            return "http://sisudoc.org"; +          } +          auto url_git() { +            return "https://git.sisudoc.org/software/sisu"; +          } +        } +        return Prog_(); +      } +      auto generated_time() { +        auto _st = Clock.currTime(UTC()); +        auto _time = _st.year.to!string +          ~ "-" ~ _st.month.to!int.to!string // prefer as month number +          ~ "-" ~ _st.day.to!string +          ~ " [" ~ _st.isoWeek.to!string ~ "/" ~ _st.dayOfWeek.to!int.to!string ~ "]" +          ~ " " ~ _st.hour.to!string +          ~ ":" ~ _st.minute.to!string +          ~ ":" ~ _st.second.to!string; +        return _time; +      }        auto conf_make_meta() { // TODO meld with all make instructions          return _make_and_meta_struct;        } | 
