Home

Awesome

🔌 Marp.nvim

A neovim plugin for Marp.

✨ Features

⚡️ Requirements

📦 Installation

Install the plugin with your preferred package manager:

Packer:

  use({
    "mpas/marp-nvim",
  }),

Lazy:

  {
    "mpas/marp-nvim",
  },

With a specific configuration:

  {
    "mpas/marp-nvim",
    config = function()
      require("marp").setup({
        port = 8080,
        wait_for_response_timeout = 30,
        wait_for_response_delay = 1,
      })
    end,
  },

⚙️ Configuration

The following defaults are provided:

{
  port = 8080, -- the port on which the Marp server should listen
  wait_for_response_timeout = 30, -- how long to wait for a response from the server before giving up
  wait_for_response_delay = 1, -- how long to wait between attempts to connect to the server
}

In the above example, the Marp server will be started on port 8080, and the plugin will wait for up to 30 seconds for a response from the server before giving up. It will try to connect to the server every second.

⌨️ Keybindings

This plugin does not set any keybindings by default. You can set them yourself like this:

vim.keymap.set("n", "<leader>MT", "<cmd>MarpToggle<cr>", { noremap = true, silent = true })
vim.keymap.set("n", "<leader>MS", "<cmd>MarpStatus<cr>", { noremap = true, silent = true })
...

The following commands are available:

🎨 Theming

Marp CLI can recognize custom themes that are in the themes/ directory in your project's root directory. For example, if you open neovim in the presentations directory, created a directory inside of presentations called themes and place the theme CSS files inside of this directory. They should be automatically loaded by Marp and applied to presentations with the theme specified.

💡Inspiration

This plugin is inspired by aca/marp.nvim!