35 lines
766 B
Lua
35 lines
766 B
Lua
local ls = require("luasnip")
|
|
local s = ls.snippet
|
|
local t = ls.text_node
|
|
local i = ls.insert_node
|
|
local f = ls.function_node
|
|
local extras = require("luasnip.extras")
|
|
local rep = extras.rep
|
|
|
|
local timestamp = function()
|
|
return tostring(os.time())
|
|
end
|
|
|
|
local get_date = function()
|
|
return os.date("%H:%M:%S %d.%m.%Y")
|
|
end
|
|
|
|
local get_name = function()
|
|
return "Nikolai Papin"
|
|
end
|
|
|
|
return {
|
|
s("frontmatter", {
|
|
t("---"),
|
|
t({ "", "title: \"" }), i(1), t("\""),
|
|
t({ "", "date: " }), f(get_date, {}),
|
|
t({ "", "author: \"" }), f(get_name, {}), t("\""),
|
|
t({ "", "id: " }), f(timestamp, {}),
|
|
t({ "", "---", "", "# " }),
|
|
rep(1), -- Reuses the first insert node
|
|
t({ "", ""}),
|
|
t({ "", ""}),
|
|
i(3) -- Final cursor position
|
|
})
|
|
}
|