QOwnNotesQOwnNotes
Getting started
Installation
  • Ask question
  • Ask for feature
  • Report bug
  • Telegram Channel
  • Matrix/Element.io Room
  • Gitter Chat
  • IRC Channel
  • Mastodon
  • Twitter
  • Facebook
Donate
  • English
  • Deutsch
  • Italiano
  • Français
  • Español
  • فارسی
  • Nederlands
  • Magyar
  • العربية
  • Polski
  • 한국어
GitHub
Getting started
Installation
  • Ask question
  • Ask for feature
  • Report bug
  • Telegram Channel
  • Matrix/Element.io Room
  • Gitter Chat
  • IRC Channel
  • Mastodon
  • Twitter
  • Facebook
Donate
  • English
  • Deutsch
  • Italiano
  • Français
  • Español
  • فارسی
  • Nederlands
  • Magyar
  • العربية
  • Polski
  • 한국어
GitHub
  • Getting started

    • Overview
    • Concept
    • QOwnNotes Demo
    • Markdown Cheatsheet
    • Importing notes
    • Command line interface parameters
    • QOwnNotes Web Companion browser extension
    • Homepage suggestion API
    • Command-line Snippet Manager
    • QOwnNotes Web App
    • QOwnNotesAPI Nextcloud App
    • Note relations panel
    • Searching for notes
    • Shortcuts
    • Git versioning
  • Installation

    • Installation
    • Install on Ubuntu Linux, elementary OS and Linux Mint
    • Install on Microsoft Windows™
    • Install on macOS™
    • Install on Debian Linux
    • Install on openSUSE Linux
    • Install on Fedora Linux
    • Install as Snap
    • Install as Flatpak
    • Install as AppImage
    • Install via Nix
    • Install on Arch Linux
    • Install on Solus
    • Install on KaOS Linux
    • Install on CentOS Linux
    • Install on Raspberry Pi OS
    • Install on Gentoo Linux
    • Install on Funtoo Linux
    • Install on Void Linux
    • Install on Slackware Linux
    • Install on FreeBSD
    • Building QOwnNotes
  • Editor

    • Spellchecking
    • LanguageTool
    • Harper
    • Markdown LSP
    • AI support
    • Time formats
  • Scripting

    • QOwnNotes Scripting
    • Methods and objects QOwnNotes provides
    • Hooks
    • Exposed classes
  • Contributing

    • Getting involved
    • Code contributions
    • Code of Conduct
    • Maintainers
    • Translation
    • Donate
    • Sponsors
  • FAQ

    • How can I just show the preview panel without the note edit panel?
    • Where can I find what other people said about QOwnNotes?
    • Why metrics?
  • Blog

    • Overview
    • Layouts and layout presets
    • QOwnNotes Webpage Relaunch with VuePress 2, Vue.js 3, and Vuetify 3
    • Universal binary for macOS
    • Note relations panel
    • AI support was added to QOwnNotes
    • Source Archive switched from TuxFamily to GitHub Releases
    • Nextcloud Deck integration in QOwnNotes
    • QOwnNotes UI End2End Tests with the help of NixOS
    • Please test Qt6 version of QOwnNotes from a new PPA for Ubuntu Linux
    • Evernote import for huge files
    • Happy 1000th release of QOwnNotes
    • Polish website translation
    • Working with multiple notes
    • QOwnNotes command-line snippet manager
    • Nextcloud note versions
    • Manage orphaned image files and attachments
    • Linking of note headings
    • Tor Hidden Service Webpage
    • Use workspaces to manage different layouts of the user interface
    • Auto-complete text in note editor
    • Open links in the note editor
    • Solve simple equations in the note editor
    • Auto-format Markdown tables
    • QOwnNotes Mastodon page
    • Repository for Debian 11
    • Joplin import
    • Send photos from your mobile phone to QOwnNotes on the desktop
    • Four new languages added to the website
    • QOwnNotes Demo
    • Markdown explanation
    • Webpage translation
    • QOwnNotes for Ubuntu 21.04 Hirsute Hippo
    • QOwnNotes for Fedora 33
    • Release and blog posting automation
    • Legacy update service up again
    • RSS Feeds are back in place
    • Time Flies Podcast episode with interview about QOwnNotes
    • Bookmark management with QOwnNotes and Web Companion browser extension
    • Firefox extension on Firefox Add-ons page
    • Chrome extension in Chrome Web Store
    • QOwnNotes Web Companion Chrome extension
    • 500th release of QOwnNotes
    • QOwnNotes Telegram Group
    • Vim mode
    • QOwnNotes for openSUSE Leap 15, SUSE Linux Enterprise 15 and SUSE Linux Enterprise 12 SP3
    • QOwnNotes featured on LINUX Unplugged podcast and by Ubuntu
    • Interview for ownCloud
    • QOwnNotes for Fedora 27
    • QOwnNotes reviewed in German magazine c't
    • QOwnNotesAPI in the ownCloud Marketplace
    • QOwnNotes as AppImage
    • QOwnNotes for Debian 9.0, Fedora 26 and openSUSE Leap 42.3
    • Script repository and script settings variables
    • Fedora 25 release and new documentation page
    • Solus package for QOwnNotes
    • Automatic updates in Windows and macOS
    • Note encryption with keybase.io or directly with PGP
    • Evernote import
    • Portable mode
    • QOwnNotes on webupd8.org
    • QOwnNotes featured on the Linux Voice Podcast
    • QOwnNotes snap
    • QOwnNotes review in British magazine Linux Format
    • QOwnNotes Slackware Linux Repository
    • QOwnNotes review
    • QOwnNotes IRC
    • QOwnNotes now has scripting support
    • QOwnNotes is the Desktop App Pick on the Linux Action Show
    • QOwnNotes got featured in Linux Voice 25
    • QOwnNotes Gentoo Linux Overlay
    • Translate QOwnNotes on Crowdin
    • QOwnNotes 1.0 out now in 6 languages and with Freedesktop theme icons support
    • QOwnNotes software repository for Debian Linux
    • QOwnNotes package on the Arch User Repository
    • QOwnNotes software repository for Arch Linux
    • Webpage redesign
    • Qt widget QMarkdownTextEdit now a separate project for developer's pleasure
    • New release version RSS feed
    • New Linux software repositories and todo list support
    • QOwnNotes on Linux Unplugged
    • Build and release systems for QOwnNotes for Linux, macOS and Windows!
    • Links to other notes or files are now possible in QOwnNotes
  • Changelog

    • QOwnNotes Changelog

Markdown LSP

QOwnNotes supports integration with a Markdown Language Server Protocol (LSP) server for enhanced editing features such as diagnostics (linting), completions, code actions, and document formatting directly in the note editor.

Features

  • Colored underlines for detected Markdown issues and rule violations
  • Context-menu code actions for diagnostics (e.g. quick fixes suggested by the server)
  • Ignore rule action in the context menu to suppress specific diagnostic rules permanently
  • Completions popup for note links and other server-provided suggestions (e.g. wiki-link completions with Marksman)
  • Format Document and Format Selection actions via the context menu
  • Incremental document sync for efficient communication with the server
  • Verbose logging mode for debugging server communication

Supported Language Servers

Two Markdown LSP servers are known and supported out of the box:

ServerCommandNotes
MarksmanmarksmanDefault; provides wiki-link completions and cross-note navigation
Rumdlrumdl serverMarkdown linting rules (similar to markdownlint)

Any LSP-compatible Markdown server that communicates over stdio should also work by configuring the command manually.

Setup

Open Settings and navigate to Editor -> Markdown LSP.

  • Turn on Enable Markdown language server (LSP)
  • Set the Command field to the executable name or full path of your LSP server
    • The default is marksman
    • Use Auto-detect to automatically search your PATH for marksman or rumdl and fill in the command field
  • Optionally provide Arguments to pass to the server process
    • For rumdl the required argument is server
  • Enable Show all LSP server log output in debug log for verbose diagnostic output
  • Use Test Connection to verify that QOwnNotes can start the server and complete the LSP initialization handshake against your current note folder
  • Use Reset ignored rules to clear all previously ignored diagnostic rule IDs

How It Works

  • When you open a note, QOwnNotes sends a textDocument/didOpen notification to the server
  • While you type, changes are forwarded via textDocument/didChange using incremental sync when the server supports it, or full-document sync otherwise
  • Diagnostics pushed by the server via textDocument/publishDiagnostics are rendered as colored underlines in the Markdown editor
  • Right-clicking on an underlined region shows available code actions and the option to ignore the rule for that diagnostic
  • Completions are shown as a popup when the server provides completion items
  • Document formatting is sent as textDocument/formatting or textDocument/rangeFormatting

Installing a Markdown LSP Server

Marksman

Marksman provides wiki-link completions, cross-note navigation, and diagnostics for Markdown projects. It works especially well with QOwnNotes' wiki-style note links.

  • Linux/macOS: Download from GitHub Releases or install via your package manager (e.g. brew install marksman on macOS, nix-env -iA nixpkgs.marksman on NixOS)
  • Windows: Download the .exe from the GitHub Releases page and place it somewhere in your PATH

After installing, use Auto-detect in the settings to locate it automatically.

Rumdl

Rumdl is a fast Markdown linter that enforces configurable style rules and can run as an LSP server.

Install via Cargo (Rust):

cargo install rumdl

Install via pip:

pip install rumdl

Download a pre-built binary:

Pre-built binaries for Linux, macOS, and Windows are available on the Rumdl GitHub Releases page.

After installing, set the Command to rumdl and the Arguments to server.

Notes

  • The LSP client communicates with the server over stdio (standard input/output)
  • The server process is started with the current note folder as the workspace root
  • Ignored rules are stored persistently and can be cleared with Reset ignored rules
  • If the server cannot be started, QOwnNotes shows a warning in the status area

Related

  • Spellchecking
  • LanguageTool
  • Harper
  • Concept
Help us improve this page!
Prev
Harper
Next
AI support