summary refs log tree commit diff
path: root/.config/nvim/lua/plugins/markdown.lua
blob: efe7019ceef451318dd01d4b2fd4eed508ae0eef (plain) (blame)
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
88
89
90
91
92
93
94
return {
  {
    -- handy markdown commands
    'tadmccorkle/markdown.nvim',
    ft = { 'markdown' },
    opts = {
      mappings = false,
      on_attach = function(buf)
        local set = function(mode, lhs, rhs, desc)
          vim.keymap.set(mode, lhs, rhs, { buffer = buf, desc = 'Markdown: ' .. desc })
        end
        set('n', 'nio', '<cmd>MDListItemBelow<cr>', 'Insert list item below')
        set('n', 'niO', '<cmd>MDListItemAbove<cr>', 'Insert list item above')
        set({ 'n', 'v', 'x', 'i' }, '<m-x>', '<cmd>MDTaskToggle<cr>', 'Toggle task')
        set('x', '<m-l>', '<esc>gv<plug>(markdown_add_link_visual)', 'Make link')
      end,
    },
  },
  {
    -- pretty markdown
    'MeanderingProgrammer/markdown.nvim',
    name = 'render-markdown', -- needed if used together with markdown.nvim above
    main = 'render-markdown',
    dependencies = {
      'nvim-treesitter/nvim-treesitter',
      'echasnovski/mini.icons',
    },
    ft = { 'markdown' },
    opts = {
      completions = { blink = { enabled = true } },
      sign = { enabled = true },
      indent = { enabled = false },
      heading = {
        width = 'block',
        icons = {
          '▒ ',
          '▒▒ ',
          '▒▒▒ ',
          '▒▒▒▒ ',
          '▒▒▒▒▒ ',
          '▒▒▒▒▒▒ ',
        },
        signs = { 'ⅰ', 'ⅱ', 'ⅲ', 'ⅳ', 'ⅴ', 'ⅵ' },
        backgrounds = {},
        foregrounds = {},
      },
      bullet = {
        icons = { '* ', '-', '>' },
      },
      checkbox = {
        checked = { icon = '  󰄲 ' },
        unchecked = { icon = '  󰄱 ' },
        custom = {
          todo = { raw = '[-]', rendered = '  󰔟 ', highlight = 'RenderMarkdownTodo' },
        },
      },
      code = {
        width = 'block',
        border = 'thin',
        disable_background = true,
      },
      quote = {
        icon = '>',
      },
      link = {
        image = '󰥶',
        email = '󰁥',
        hyperlink = '',
        wiki = { icon = '󰭤 ' },
        custom = {
          pdf = { pattern = '%.pdf$', icon = '󰈦 ' },
        },
      },
    },
    init = vim.schedule_wrap(function()
      local hl = vim.api.nvim_set_hl
      hl(0, '@markup.bold', { link = 'markdownBold', force = true })
      hl(0, '@markup.italic', { link = 'markdownItalic', force = true })

      -- hl(0, 'RenderMarkdownH1', { fg = 'NvimLightCyan' })
      -- hl(0, 'RenderMarkdownH1Bg', { bg = 'NvimDarkCyan' })
      -- hl(0, 'RenderMarkdownH2', { fg = 'NvimLightMagenta' })
      -- hl(0, 'RenderMarkdownH2Bg', { bg = 'NvimDarkMagenta' })
      -- hl(0, 'RenderMarkdownH3', { fg = 'NvimLightYellow' })
      -- hl(0, 'RenderMarkdownH3Bg', { bg = 'NvimDarkYellow' })
      -- hl(0, 'RenderMarkdownH4', { fg = 'NvimLightBlue' })
      -- hl(0, 'RenderMarkdownH4Bg', { bg = 'NvimDarkBlue' })
      -- hl(0, 'RenderMarkdownH5', { fg = 'NvimLightRed' })
      -- hl(0, 'RenderMarkdownH5Bg', { bg = 'NvimDarkRed' })

      hl(0, 'RenderMarkdownBullet', { link = '@markup.list', force = true })
    end),
  },
}