local ls = require("luasnip") -- some shorthands... local snip = ls.snippet local node = ls.snippet_node local text = ls.text_node local insert = ls.insert_node local func = ls.function_node local fmt = require("luasnip.extras.fmt").fmt local fmta = require("luasnip.extras.fmt").fmta ls.add_snippets(nil, { markdown = { snip( { trig = "link", namr = "markdown_link", dscr = "Create markdown link [txt](url)", }, fmt("[{txt}]({url})", { txt = insert(1), url = func(function(_, snip) return snip.env.TM_SELECTED_TEXT[1] or {} end, {}), }) ), }, }) ls.add_snippets(nil, { markdown = { snip( { trig = "fig", namr = "zola_figure", dscr = "Zola figure shortcode", }, fmta("{{ figure(src=\"\",\nthumb=\"_small\",\ncaption=\"\") }}", { src = insert(1), caption = insert(2), }) ), }, }) -- snippet gal "Hugo Gallery" -- {{< gallery hover-effect="none" caption-effect="none" >}} -- -- {{< figure link="img/$1.jpg" thumb="_small" -- caption="$2" -- caption-position="bottom">}} -- -- $3 -- {{< /gallery >}} -- $0 -- endsnippet -- -- snippet kbd "Keyboard" -- {{}>}}$0 -- endsnippet