Markdown Navigator

screen shot

The plugin for Markdown language support on IntelliJ IDEA, RubyMine, PhpStorm, WebStorm, PyCharm, AppCode, Android Studio, CLion and DataGrip.

Specials Buy License via PayPal Get Trial License Download

A Markdown plugin with GFM and a matching preview style.

Document with pleasure!

Work with Markdown files like you do with other languages in the IDE, by getting full support for:

  • Paste images into documents for fast screen capture links
  • Drag & Drop files and images for fast link insertion
  • Formatting to cleanup documents with a key stroke
  • Navigation and Find Usages to find references without effort
  • Copy Markdown as JIRA, YouTrack or HTML formatted text
  • Convert HTML to Markdown by pasting it into a Markdown document.
  • Export to HTML or PDF to share with others
  • Refactoring of all referencing elements:
    • files ⟺ links
    • headings ⟺ ref anchors
    • footnotes ⟺ footnote refs
    • references ⟺ ref links/ref images
  • Completions to reduce typing:
    • link address ⇐ files
    • ref anchors ⇐ headings
    • footnote refs ⇐ footnotes
    • ref links/ref images ⇐ references
    • link text ⇐ ref anchor/link address
  • Error and Warning annotations to help catch mistakes early
  • Intention actions for fast results with less effort
  • Wrap on Typing to keep it nicely formatted as you edit
  • GitHub style rendering that you are used to, out of the box
  • Fast typing response for distraction free editing
  • Fully customizable to adjust to your preferences and project needs

Plugin Feature Comparison

Feature Basic Enhanced
Works with builds 143.2370 or newer, product version IDEA 15.0.6 X X
Preview Tab so you can see what the rendered markdown will look like on GitHub. X X
Syntax highlighting X X
Table syntax highlighting stripes rows and columns X X
Support for Default and Darcula color schemes for preview tab X X
Warning and Error Annotations to help you validate wiki link errors X X
Link address completion for wiki links X X
Quick Fixes for detected wiki link errors X X
GFM Task list extension * [ ] open task item and * [x] completed task item X X
Line markers, Find usages, Go To Declaration for rapid navigation to wiki link targets X X
Markdown extensions configuration to customize markdown dialects X X
GitHub wiki support makes maintaining GitHub wiki pages easier. X X
GitHub compatible id generation for headers so you can validate your anchor references X X
Swing and JavaFX WebView based preview. X X
Supports JavaFX with JetBrains JRE on OS X X X
Supports Highlight JS in WebView preview X X
Multi-line Image URLs for embedding UML or LaTeX diagrams into markdown X X
Live Templates for common markdown elements X X
Split Editor with Preview or HTML Text modes to view both source and preview X X
Enhanced Version Benefits X
    Toolbar for fast access to frequent operations X
    Language Injections for fenced code, HTML, Jekyll front matter and multi-line URL content X
    Code completions, refactoring, annotations and quick fixes to let you work faster X
    Navigation support with Line markers, Find usages, Go To Declaration for rapid navigation X
    Inspections to help you validate links, anchor refs, footnote refs X
    Complete GitHub wiki support for all links makes maintaining GitHub wiki pages a breeze X
    Jekyll front matter recognition in markdown documents X
    Emoji text to icon conversion using Emoji Cheat Sheet or GitHub emoji URLs X
    Wrap on typing and table formatting with column alignment X
    Character display width used for wrapping and table formatting X
    Structure view for Abbreviations, Headers, Tables, Footnotes, References and Document X
    Document formatting with text wrapping, list renumbering, aranging of elements, etc. X
    Table of Contents generation for any markdown parser, with many style options X
    Copy/paste references and links between files will adjust the link address to the destination file X
    Paste Images from clipboard to create a link and save image file with optional image manipulation X
    Drag and Drop files from project tree into markdown documents to create links X
    Quickly find preview elements: element at caret highlight, search and selection display in preview X
As you type automation X
    Double of bold/emphasis markers and remove inserted ones if a space is typed X
    Wrap text blocks to margins and indentation X
    ATX headers to match trailing # marker X
    Setext headers to match marker length to text X
    Format tables to pad column width, column alignment and spanning columns X
    Auto insert empty table row on ENTER X
    Auto delete empty table row/column on BACKSPACE X
    Auto insert table column when typing before first column or after last column of table X
    Actions to insert: table, row or column; delete: row or column X
    Auto insert list item on ENTER X
    Auto delete empty list item on ENTER X
    Auto delete empty list item on BACKSPACE X
    Indent or un-indent list item toolbar buttons and actions X
Code Completions X
    Absolute link address completions using https:// and file:// formats X
    Explicit and Image links are GitHub wiki aware X
    GitHub Issue # Completions after issues/ link address and in text X
    GitHub special links: Issues, Pull requests, Graphs, and Pulse. X
    Link address completions for non-markdown files X
    Emoji text shortcuts completion X
    Java module, class, field and method completions in inline code elements X
Intention Actions X
    Change between relative and absolute https:// link addresses via intention action X
    Change between wiki links and explicit link X
    Intentions for links, wiki links, references and headers X
    Intention to format Setext Header marker to match marker length to text X
    Intention to swap Setext/Atx header format X
    Update table of contents quick fix intention X
    Intention to edit Table of Contents style options dialog with preview X
Refactoring X
    Automatic change from wiki link to explicit link when link target file is moved out of the wiki X
    File move refactoring of contained links. This completes the refactoring feature set X
    Refactoring for /, https:// and file:// absolute link addresses to project files X
    Refactoring of header text with update to referencing anchor link references X
    Anchor link reference refactoring with update to referenced header text X

Release Road Map

Next Release: Version 2.5.0

Bug and compatibility fixes you can find a full list in Version Notes.

  • Add: anchors of the form <a .... attr=anchorId ...>...</a> where attr is id or name to be treated as anchor ref targets. NOTE: the first name or id attribute will be treated as the “anchor target” the other as a reference to the anchor target. If both have the same string value then renaming one will rename the other.
  • Add: Attributes extension to parses HTML attributes of the form {attr=value}, {attr='value'}, {attr="value"}, {.class-name} or {#element-id}. flexmark-java: Attributes Extension
  • Add: Enumerated Reference extension which allows enumerated reference links and text. flexmark-java: Enumerated Reference

Version 2.4.0

Bug and compatibility fixes.

  • Navigate using links with GitHub Line Reference anchor refs
  • Copy Reference then Paste to get link with line reference
  • Encode/Decode Base64 Images Intention
  • Paste Images with Base64 Encoded embedded image links
  • Embed Images HTML generation option
  • Base64 embedded image display in Swing browser
  • Convert Markdown to HTML intention for fenced code elements
  • Code Folding option in settings for embedded image links

Version 2.3.8

Bug and compatibility fixes.

  • Add GitHub Line reference anchors in the form L# or L#-L# for line ranges. Now navigating to such an anchor in a project file will move the caret to the line and if second form is used select the lines.
  • Add clicking on task item box in preview toggles open/closed task status in source (JavaFX browser).
  • Add Apply all ‘…’ in file intentions where these make sense.
  • Add intention to convert between typographic symbols and markdown smarts/quotes extension text.
  • Add HTML block deep parsing parser option to allow better handling of raw text tag parsing when they are not the first tag on the first line of the block.
  • Add Launching external URLs inside the browser, now navigate to declaration opens url in browser, ftp or mail client depending on the link. Can also use line markers for navigation of these elements.
  • Add GitBook compatible include tags when GitBook compatibility mode is enabled in Parser options.
  • Add handling of optional quotes for jekyll include tags. Either single ' or double " quotes will be ignored if the file name is wrapped in them.
  • Add Insert table column on right actions and changed description of previous action to insert table column on left.
  • Add #411, Network drives links are not resolved correctly, URI links outside of project now error highlighted if the file does not exist
  • Add #433, Support external links for the Link Map (eg. JIRA link), Reference to Link Map to allow creating automatic reference URLs from Reference IDs
  • Fix HTML generation with line source line highlighting when inline styling spans source lines
  • Fix #459, PDF export does not resolve local ref anchors
  • Fix #456, Register r markdown code chunk prefix
  • Fix #453, Option to hide toolbar
  • Fix breadcrumb tooltip of task items would be missing the task item marker
  • Fix #447, Exported HTML has unexpected CSS and JS URLs
  • Fix #445, there should no be default language injection in bare code chunks
  • Fix #444, Markdown Navigator 2.3.7 breaks paste of github checkout url
  • Fix #441, false positive typo annotation in header, caused by using IdentifierSplitter instead of TextSplitter to handle elements that can have references.
  • Fix #442, Image Paste in Windows always pastes absolute file:// regardless of selection
  • Fix #440, Auto links should not appear in fenced code

Version 2.3.7

  • Fix erroneous escape sequence processing in fenced code block content causing parser exception in some circumstances.

Version 2.3.6

places:warning GitHub has changed its Markdown document parsing to CommonMark which mostly affects the parsing and results of lists. You may need to change list syntax in parser options to CommonMark from GitHub

  • Add Heading anchor ID display in editor
  • Add annotation to detect when list syntax is set to GitHub

Version 2.3.5

  • File Drop/Paste operation options based on caret location

  • Copy Modified Image to Clipboard in Copy/Paste Image Dialog to replace clipboard image contents with modified image, can use it to replace image on clipboard then Cancel dialog to not modify the Markdown document but still have the modified image on the clipboard.

  • Copy/Modify Image intention that will open the Image Copy/Paste Dialog for the image content of the image link element at caret position. Works with local files and URLs. Get the option to change directory, file name and modify the image.

  • Markdown application settings for:

    • Use clipboard text/html content when available disabled by default, enabling it will allow pasting text/html when available
    • Convert HTML content to Markdown enabled by default, disabling will paste text/html content without conversion to Markdown

  • Option highlight selection in preview, Show source selection in preview enabled by default. Wraps selection in <span> with selection-highlight class.

  • Option to highlight search results in preview, Show source search highlights in preview enabled by default. Wraps search highlights in <span> with search-highlight class.

  • Option to vertically align synchronized position in Preview Settings, selected by default in Preview settings.

Version 2.3.4

  • Add: link format option to Paste Images & Copy Images

    • Page Relative
    • Repo Relative (/...)
    • Absolute (http://)
    • Absolute (file://)
  • Add: File drag and drop into markdown document to create links, image files create image links the rest create inline links. Each file link will be added as a separately undoable command.

    If copy dragging files (Ctrl on Linux/Windows, ⌥ on OS X) then for image files the Copy Image dialog will open (like Paste Image dialog) that will allow you to modify the image and choose the location where to store the copy.

    For non-image files a link format dialog is displayed for the first file to allow selecting the link format.

Version 2.3.3

  • PDF export action, menu and toolbar item added

  • GitHub Collapse Markdown script, which converts headings in the document to collapsible sections in preview, with state persistence for initializing the open/close state of headings. Now collapsed heading are preserved between page refreshes and when opening markdown files.

Version 2.3.2

Bug fix release

Version 2.3.1

In addition to bug and 2017 EAP compatibility fixes which you can find in Version Notes, this release adds HTML to Markdown conversion capability allowing you to Copy HTML from the browser and get Markdown when you paste it in your Markdown document.

  • Conversion between HTML and Markdown

    • Automatic mime text/html conversion to markdown on paste in Markdown documents.
    • Markdown To Html intention action to convert some markdown elements to HTML in your document so they can be rendered on processors that do not support these Markdown extensions:
      • Tables
      • Image Links (Multi-line URL images for inserting UML, LaTex, etc)
      • Definitions List
    • Html to Markdown intention action to convert html in Markdown
  • Annotations and Quick Fixes:

    • for TOC with empty title string. GitHub does not accept this so an empty title needs at least one space in the title string of the TOC element.
    • for list items that need a blank line before them or empty items that need a space after them to be processed by target markdown processor.
  • Jekyll Support:

    • include Jekyll tag parsing and processing the include, if markdown will be parsed to HTML and rendered in the view, if not markdown will be included in the HTML
      • Markdown referenceable elements such as footnotes, references and headings from files included through Jekyll include tags are now recognized for: find usages, completions, navigation and refactoring.
    • enable parsing of jekyll macros in urls with spaces between braces when Jekyll Front matter parsing.
  • Escape/Unescape Special Characters when these wrap to start of line or unescape them when they are wrapped away from the start of line. This prevents accidental lists, heading and definition lists. Code style options:

    • Escape when wrapped to start of line
    • Unescape when wrapped away from start of line

Version 2.3.0

In addition to a long list of bug fixes you can find in Version Notes, this release is a rework of parser, actions and formatting to handle different Markdown processors’ idiosyncrasies when parsing lists and determining indentation of items:

  • Now list processing option can be set to one of the following:

places:warning Changing the list processing option can change the formatting of the document since element indentation will be interpreted differently.

  • Format element, document and list indent/un-indent actions respect the list processing configuration.

  • Actions to navigate and select table cells added with permutations of next/prev table cell/cell-start/cell-end with/without selection. Assign to shortcuts in Keymap > Plug-ins > Markdown Navigator

  • Code Style option to sort task items based on their done/not done status:

    • No Change: leave all as is
    • Incomplete first: put incomplete tasks first, followed by the rest
    • Has incomplete first: put incomplete tasks and list items that contain incomplete tasks first followed by the rest
    • Incomplete first, complete to non-task: put incomplete tasks first, followed by the rest and convert complete tasks to non-task items.
    • Has incomplete, complete to non-task: put incomplete tasks and list items that contain incomplete tasks first followed by the rest and convert complete tasks to non-task items.
  • Code Style options for Table of Contents to control generated TOC format and new style keywords in the [TOC] element:

    • hierarchy: as before hierarchical list of headings in document order
    • flat: flat list of headings in document order
    • reversed: flat reversed list of headings in reverse document order
    • increasing: flat, alphabetically increasing by heading text
    • decreasing: flat, alphabetically decreasing by heading text
  • Inline toggling actions take punctuation characters that they will not wrap by default if caret is on them or the current word to wrap ends on them. Default punctuation symbols in settings: .,;:!?. If the caret is right after one of them then default behavior is to wrap the word immediately before the punctuation characters in the corresponding style.

  • @formatter:off / @formatter:on, or configured Code Style: Formatter Control Markers, in comments can be used to disable auto-formatting and wrap on typing for sections of a document

  • Copy Markdown as HTML formatted text action that will copy document or selection to the clipboard in HTML mime format that will paste as formatted HTML into applications that recognize this format. Useful for pasting rendered markdown into e-mails or word processor applications. To override the default styles and parser options create a profile named COPY_HTML_MIME and override Parser and/or Stylesheet CSS Text. See: Copy Markdown to HTML formatted text

  • Option in Main Settings Inline code toggle like other text style actions to change inline code action to work like other style toggle actions: bold, italic and strike through, instead of continuously adding back ticks when at the end of word. Enabled by default. To get previous behavior disable this option.

  • Add: Parser extensions and options for:

    • Ins: ++inserted text++ results in underlined text
    • Subscript: ~subscript~
    • Superscript: ^superscript^

Version 2.2.0

The goal of zero latency typing in 1000+ line files with preview showing is now a reality. This release is a rewrite of JavaFX WebView integration code with changes to the style sheet to eliminate all typing response typing delays.

It is now possible, should you need it, to edit a 500k file with 11,000+ lines with an easily tolerable typing delay.

In addition to a long list of bug fixes you can find in Version Notes, this release was a major tie up of user feature requests:

  • Basic version now with split editor and HTML text preview
  • Live template for collapsible details
    under mnemonic .collapsed must first be enabled in LiveTemplates > Markdown. To keep all detail tags open after preview update, add JavaFX WebView script Details tag opener so the content can be seen while editing  
  • Option to hide disabled toolbar buttons makes better use of screen real-estate
  • Display line numbers in fenced code by enabling Prism.js script in Stylesheet settings
  • All markdown settings affecting rendering are now per project with support for scoped rendering profiles allowing different settings down to file level granularity to be defined for a project
  • Multi-line URL image links are back since upgrade to flexmark-java parser
  • Collapsible headers script adapted from GitHub-userscripts by Rob Garrison. Enable GitHub Collapse Markdown in Stylesheet settings
  • HTML Export with optional auto-export on document save or project open, with Tools menu Markdown Navigator items and all the fixings for the generated HTML which can be different from ones used for rendering the document in preview
  • Link pre and post processing replacements to allow refactoring, completion, validation and navigation for links decorated with non-github parameters, like Jekyll’s macros. See: Modifying Link Processing
  • Jekyll front matter pre and post processing replacements to allow refactoring, completion, validation and navigation for key values that contain file references. See: Modifying Link Processing
  • Swing browser options now support embedding stylesheet contents into the HTML
  • Swing browser now supports displaying HTML documents Show Split Editor for HTML documents
  • Soft Wrap at right margin option with:
    • option to disable wrap on typing when soft wrap is enabled
    • option for document format when soft wrap is enabled:
      • disable format
      • leave enabled
      • infinite margins. This will effectively remove all soft breaks when formatting the document.
  • Link text completion for GitHub issue titles now do issue title lookup
  • Copy Jira Formatted text action improved to add blank lines for loosely spaced lists and after the last list item of the outer-most list and the next element; and now adds :lang= for fenced code that specifies the language
  • Move caret to line of element clicked in preview
  • Scroll and optionally Highlight element in preview at source caret position
  • Print HTML preview for JavaFx
  • Markdown syntax and context aware trailing space trimming when enabled

Future Development

  • http: and https: external link validation and annotations if these get a 404 response code.

Specials Buy License via PayPal Get Trial License Download

For Bug Reports, Issues, Questions and Feature requests: GitHub Issues. Plugin documentation: GitHub Wiki