1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
-- mod-version:3
local core = require "core"
local config = require "core.config"
local command = require "core.command"
local common = require "core.common"
--[[
Date and time format placeholders
from https://www.lua.org/pil/22.1.html
%a abbreviated weekday name (e.g., Wed)
%A full weekday name (e.g., Wednesday)
%b abbreviated month name (e.g., Sep)
%B full month name (e.g., September)
%c date and time (e.g., 09/16/98 23:48:10)
%d day of the month (16) [01-31]
%H hour, using a 24-hour clock (23) [00-23]
%I hour, using a 12-hour clock (11) [01-12]
%M minute (48) [00-59]
%m month (09) [01-12]
%p either "am" or "pm" (pm)
%S second (10) [00-61]
%w weekday (3) [0-6 = Sunday-Saturday]
%x date (e.g., 09/16/98)
%X time (e.g., 23:48:10)
%Y full year (1998)
%y two-digit year (98) [00-99]
%% the character `%´
--]]
config.plugins.datetimestamps = common.merge({
format_datestamp = "%Y%m%d",
format_datetimestamp = "%Y%m%d_%H%M%S",
format_timestamp = "%H%M%S",
-- The config specification used by the settings gui
config_spec = {
name = "Date and Time Stamps",
{
label = "Date",
description = "Date specification defined with Lua date/time place holders.",
path = "format_datestamp",
type = "string",
default = "%Y%m%d"
},
{
label = "Time",
description = "Time specification defined with Lua date/time place holders.",
path = "format_timestamp",
type = "string",
default = "%H%M%S"
},
{
label = "Date and Time",
description = "Date and time specification defined with Lua date/time place holders.",
path = "format_datetimestamp",
type = "string",
default = "%Y%m%d_%H%M%S"
}
}
}, config.plugins.datetimestamps)
local function datestamp(dv)
local sOut = os.date(config.plugins.datetimestamps.format_datestamp)
dv.doc:text_input(sOut)
end
local function datetimestamp(dv)
local sOut = os.date(config.plugins.datetimestamps.format_datetimestamp)
dv.doc:text_input(sOut)
end
local function timestamp(dv)
local sOut = os.date(config.plugins.datetimestamps.format_timestamp)
dv.doc:text_input(sOut)
end
command.add("core.docview", {
["datetimestamps:insert-datestamp"] = datestamp,
["datetimestamps:insert-timestamp"] = timestamp,
["datetimestamps:insert-datetimestamp"] = datetimestamp,
["datetimestamps:insert-custom"] = function(dv)
core.command_view:enter("Date format eg: %H:%M:%S", {
submit = function(cmd)
dv.doc:text_input(os.date(cmd) or "")
end
})
end,
})
|