diff options
Diffstat (limited to 'src/doc_reform')
-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; } |