markdown-oxide: Robust, Minimalist, Unbundled PKM (Personal-Knowledge-Management System) for your favorite text-editor through the Language-Server-Protocol.
Here are some recommended links from our documentation website, https://oxide.md
- What is markdown-oxide?: An overview of our PKM features to help you determine if markdown-oxide is for you
- Markdown-oxide getting-started guide: A guide to setting up your text editor, configuring the PKM, and using the features.
- Features Reference: An organized list of all features
- Configuration Reference: Configuration information to reference
Get started with Markdown-oxide as fast as possible!
Set up the PKM for your text editor...
-
Give Neovim access to the binary.
-
Cargo Install (from source)
cargo install --locked --git https://github.com/Feel-ix-343/markdown-oxide.git markdown-oxide
-
Cargo binstall (from hosted binary)
cargo binstall --git 'https://github.com/feel-ix-343/markdown-oxide' markdown-oxide
-
AUR (from source)
paru -S markdown-oxide-git
yay -S markdown-oxide-git
- Mason.nvim (from hosted binary)
- Nix Unstable:
pkgs.markdown-oxide
-
-
Modify your Neovim Configuration ^nvimconfigsetup
-
Modify LSP Config (making sure to adjust capabilities as follows)
-- An example nvim-lspconfig capabilities setting local capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()) require("lspconfig").markdown_oxide.setup({ -- Ensure that dynamicRegistration is enabled! This allows the LS to take into account actions like the -- Create Unresolved File code action, resolving completions for unindexed code blocks, ... capabilities = vim.tbl_deep_extend( 'force', capabilities, { workspace = { didChangeWatchedFiles = { dynamicRegistration = true, }, }, } ), on_attach = on_attach -- configure your on attach config })
-
Modify your nvim-cmp configuration
Modify your nvim-cmp source settings for nvim-lsp (note: you must have nvim-lsp installed)
{ name = 'nvim_lsp', option = { markdown_oxide = { keyword_pattern = [[\(\k\| \|\/\|#\)\+]] } } },
-
(optional) Enable Code Lens (eg for UI reference count)
Modify your lsp
on_attach
function.local function check_codelens_support() local clients = vim.lsp.get_active_clients({ bufnr = 0 }) for _, c in ipairs(clients) do if c.server_capabilities.codeLensProvider then return true end end return false end vim.api.nvim_create_autocmd({ 'TextChanged', 'InsertLeave', 'CursorHold', 'LspAttach', 'BufEnter' }, { buffer = bufnr, callback = function () if check_codelens_support() then vim.lsp.codelens.refresh({bufnr = 0}) end end }) -- trigger codelens refresh vim.api.nvim_exec_autocmds('User', { pattern = 'LspAttached' })
-
(optional) Enable opening daily notes with natural langauge
Modify your lsp
on_attach
function to support opening daily notes with, for example,:Daily two days ago
or:Daily next monday
.-- setup Markdown Oxide daily note commands if client.name == "markdown_oxide" then vim.api.nvim_create_user_command( "Daily", function(args) local input = args.args vim.lsp.buf.execute_command({command="jump", arguments={input}}) end, {desc = 'Open daily note', nargs = "*"} ) end
-
- Ensure relevant plugins are installed:
Install the vscode extension (called Markdown Oxide
). As for how the extension uses the language server, there are two options
-
Recommended: the extension will download the server's binary and use that
-
The extension will use
markdown-oxide
from path. To install to your path, there are the following methods for VSCode:-
Cargo Install (from source)
cargo install --locked --git https://github.com/Feel-ix-343/markdown-oxide.git markdown-oxide
-
Cargo binstall[1] (from hosted binary)
cargo binstall --git 'https://github.com/feel-ix-343/markdown-oxide' markdown-oxide
-
AUR (from source)
paru -S markdown-oxide-git
yay -S markdown-oxide-git
- Nix Unstable:
pkgs.markdown-oxide
-
Markdown Oxide is available as an extension titled Markdown Oxide
. Similarly to VSCode, there are two methods for this extension to access the language server
-
Recommended: the extension will download the server's binary and use that
-
The extension will use
markdown-oxide
from path. To install to your path, there are the following methods for Zed:-
Cargo Install (from source)
cargo install --locked --git https://github.com/Feel-ix-343/markdown-oxide.git markdown-oxide
-
Cargo binstall[1] (from hosted binary)
cargo binstall --git 'https://github.com/feel-ix-343/markdown-oxide' markdown-oxide
-
AUR (from source)
paru -S markdown-oxide-git
yay -S markdown-oxide-git
- Nix Unstable:
pkgs.markdown-oxide
-
For Helix, all you must do is install the language server's binary to your path. The following installation methods are available:
-
Cargo Install (from source)
cargo install --locked --git https://github.com/Feel-ix-343/markdown-oxide.git markdown-oxide
-
Cargo binstall[1] (from hosted binary)
cargo binstall --git 'https://github.com/feel-ix-343/markdown-oxide' markdown-oxide
-
AUR (from source)
paru -S markdown-oxide-git
yay -S markdown-oxide-git
- Nix Unstable:
pkgs.markdown-oxide