Front-matter.vim
A simple plugin for writing the front-matter for a given SSG generator name.
- Add the frontmatter plugin to your preferred plugin manager's plugins list.
- Add a key-map that maps to
call Frontmatter(). - Write the SSG(static site generator) name for example
jekyll. - Visually select it and press escape.
- Press that key map and at the top, the front-matter will be generated with a few keys.
Example:
Vimscript
nnoremap <leader>fm :call Frontmatter()<cr>
Lua
vim.keymap.set("n", "<leader>fm", "<cmd>lua require('frontmatter').Frontmatter()<cr>")
Features:
- Supports SSGs like
- jekyll
- Markata
- Hugo
- Hexo
- Gatsby
- Automatically sets current date.
Customization
The Frontmatter function can take in two parameters -> (type_of_customization, {list of frontmatter} )
- Type of Customization ->
addorlist - List of Frontmatter -> A Lua table of strings representing the frontamtter keys
Add a custom keymap in your vimrc, init.vim or init.lua file.
-
Add to an already existing frontmatter
- Vim
nnoremap <leader>fm :lua require('frontmatter').Frontmatter("add", {'series', 'image_url'})<CR>
- Lua
vim.keymap.set('n', '<leader>fm', "<cmd>lua require('frontmatter').Frontmatter('add',{'series', 'image_url'})<cr>")
-
Create a new set of frontmatter
- Vim
nnoremap <leader>fm :lua require('frontmatter').Frontmatter("list", {'layout', 'status', 'series', 'series_description', 'image_url'})<CR>
- Lua
vim.keymap.set('n', '<leader>fm', "<cmd>lua require('frontmatter').Frontmatter('list',{'layout', 'status', 'series', 'image_url'})<cr>")