neovim/my_snippets/markdown.lua

57 lines
1016 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
-- Function to get the datetime
-- with daylight saving time
-- according to the locale
local get_date = function()
return os.date("%Y-%m-%dT%H:%M:%S%z")
end
-- Function to get an id based on the datetime
local get_id = function()
return os.date("%Y%m%d%H%M%S")
end
return {
s(
{
trig = "datetime",
dscr = "Insert datetime with locale daylight saving"
},
{
f(get_date, {})
}
),
s(
{
trig = "id",
dscr = "Insert an id based on the datetime"
},
{
f(get_id, {})
}
),
s(
{
trig = "yaml",
dscr = "Insert a YAML frontmatter for markdown"
},
{
t { "---", "title: " },
i(1, "title"),
t{ "", "date: " },
f(get_date, {}),
t{ "", "id: " },
f(get_id, {}),
t{ "","tags: [" },
i(2, "tags"),
t{ "]", "---", "" },
i(0),
}
)
}