Write Markdown with code assist and intelligence in the comfort of your favourite editor.
Marksman is a Markdown editor designed to enhance your writing experience by integrating code assistance and intelligent features directly within your favorite editor. It offers real-time preview, GitHub integration for seamless collaboration, syntax highlighting for code blocks, and support for custom snippets.
Key Features:
Real-time preview of Markdown content as you type.
GitHub-style fenced code blocks with syntax highlighting.
Integration with GitHub repositories for easy sharing and collaboration.
Customizable keyboard shortcuts to streamline your workflow.
Support for extensions and plugins to expand functionality.
Audience & Benefit:
Ideal for technical writers, developers, content creators, and educators who need a seamless way to create and share documentation or educational materials. Marksman helps users maintain focus by combining the simplicity of Markdown with the power of code assistance, all within their preferred editor. It can be installed via winget for easy setup.
README
Marksman
Write Markdown with code assist and intelligence in the comfort of your favourite editor.
Marksman is a program that integrates with your editor to assist you in writing and maintaining your Markdown documents.
Using LSP protocol it provides completion, goto definition, find references, rename
refactoring, diagnostics, and more. In addition to regular Markdown, it also supports wiki-link-style references
that enable Zettelkasten-like1, 2 note taking. See more about Marksman's
features below.
Marksman works on MacOS, Linux, and Windows and is distributed as a self-contained binary for each OS.
The server provides assistance with:
Markdown inline links:
This is [inline link](/some-file.md#some-heading).
This is an internal [anchor link](#heading).
Markdown reference links:
See [reference].
[reference]: /url "Title"
Wiki-links:
Link to [[another-note]].
Link to [[another-notes#heading]].
Internal link to [[#a-heading]].
All types of links support completion, hover, goto definition/references. Additionally, Marksman provides diagnostics
for wiki-links to detect broken references and duplicate/ambiguous headings.
Check out this YouTube video
by Luke Pighetti on how to use Marksman with Helix.
Features
See the Features page to learn more about language features, configurations, and single- and multi-file modes.
FAQ
Cross-file references and completions don't work.
Either create an empty .marksman.toml in the root folder of your project or initialize a repository (e.g. git init). See this page to learn more about single- and mult-file modes.
I'm getting "marksman can’t be opened because Apple cannot check it for malicious software" on MacOS.
Run the following command to bypass it and let Mac know that it's fine: xattr -d com.apple.quarantine .
Footnotes
You may have heard about Roam Research. That is a commercial implementation of the
Zettelkasten method and another point of reference for what Marksman is about. However, unlike a proprietary Roam
Research, Marksman is free, open-source and integrated into your favourite editor (albeit for not not as feature rich as
Roam Research). ↩
There is an excellent VSCode extension called Markdown Memo. You definitely need
to check it out if you're primarily using VSCode as it has some features that are missing in Marksman and Marksman
VSCode extension. However, Markdown Memo is VSCode specific while Marksman is a generic language server, so
can be used with any editor that has LSP support: Emacs, Vim, Neovim, etc. ↩
Since Marksman is a regular Language Server most of the functionality works out of the box
with any LSP client. ↩