Markdown Navigator 2.0
Markdown language support for IntelliJ platform
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:
- 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
- formatting to change format with a key stroke
- navigation and find usages to find references without effort
- refactoring of all referencing elements: to keep it all in sync while evolving
- files ⟺ links
- headings ⟺ ref anchors
- footnotes ⟺ footnote refs
- references ⟺ ref links/ref images
- 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 project's needs and your preferences
- Copy Markdown as JIRA, YouTrack or HTML formatted text or export as HTML
- Split Editor
- Fast typing response in large files
- HTML text preview and export
- Soft Wrap on right margin
- Format with code style:
- Multi-byte support with mixed character width
- Table justification
- Wrap on typing auto format of element
- Renumbering of list items
- Bidirectional Source and Preview synchronization
- Scrolls preview to show source element at caret
- Moves caret to source line of element clicked in preview
- Also does completions, refactoring, validation, language injections, code folding
- Fully configurable by project with support for scopes
- Understands GitHub wiki nuances
Recent change notes
2.3.0 - Compatibility & Enhancement Release
- Add: annotation and quick fix when an empty list item needs a space after item marker.
- Add: annotation and quick fixes when possible list items are found in paragraphs and indented code when list indentation rules are set to CommonMark or GitHub because incorrect indentation.
- Fix: fenced code and indented code would loose indentation prefix when formatting document
- Fix: list items whose first element is a heading, indented code or fenced code now add a line break when parser compatibility set to other than CommonMark to allow GitHub to properly process these list items.
- Add: Code Style option for spaces after definition item marker, default 3 for greater compatibility with various markdown processors.
- Add: Code Style option to insert a blank line before a list item if it is not preceded by another list item, disabled by default and formatting a document will create maximum compatibility with markdown processors that limit list item interpretation when not preceded by a blank line. When disabled formatting a document may still add a blank line before a list if the current list processing type requires a blank line before a list.
- Add: Annotation and quick fix if first list item needs to have a blank line before it to be properly parsed as a list. List indentation type dependent and for CommonMark list item type and numeric sequence dependent.
- Fix: #349, Show version number on plugin configuration screen, moved version number. Now more prominently displayed at the top of the main panel next to update channel selection.
- Fix: #348, IDE error when switching to Default JavaFX Stylesheet, added a validation for browser/stylesheet combinations so that invalid restored editor state would be corrected.
- Fix: #347, Stops rendering on PHPStorm, added a validation for split editor setting and preview type so that if restored editor setting is not editor only and preview set to NONE then preview will be changed to PREVIEW.
- Fix: #352, Files without suffix are not resolved in links, also show them in completion. These files are assumed to be Text files
- Add: Parser extensions:
++inserted text++ results in underlined text
- Add: Actions to navigate table cells: next/prev table cell with and without selection to stop at beginning/end of cell and start/end of table row
- Fix: List syntax dependent list item action behavior.
- Fix: indent/un-indent for other than fixed 4 has to re-indent child items to the parent's new indent level. Otherwise parsing of the children will be off. Right now works only for fixed4
- Add: flexmark option to recognize empty list sub-items option to PARSER purpose.
- Fix: psi list item prefix reporting to match fixed4, github and CommonMark list processing settings.
- Add: List syntax dependent list format behavior.
- Fix: list indent for nested items should not indent to more than (listLevel)*4 + 3 in fixed 4 mode
- GitHub enforces styleSettings.LIST_ALIGN_CHILD_BLOCKS and has no maximum for content offset.
- CommonMark enforces styleSettings.LIST_ALIGN_CHILD_BLOCKS and has a maximum for content offset beyond the marker end of 4 characters before the content is treated as indented text.
- Fix: indent/un-indent empty task item adds extra blank line after it on every action, on first action caret at start of next line
StripTrailingSpacesSmartFilter to use the abstract class instead of an interface.
- Add: parser profile added to functions handling formatting and prefix generation. Now this can vary significantly from one parser family to another.
- Fix: when ENTER deletes a list item prefix inserted extra blank line
- Fix: Un-indent item action leaves leading indent if it was aligned to parent's left text edge.
- Fix: SimToc requires default settings option so that rendering will reflect project settings not defaults of flexmark-java SimToc extension.
- Fix: HRule would span the whole line even when it was not the first element on the line
- Remove: smart asterisk, underscore and tilde handlers and options.
- Fix: edge formatting cases when list item marker is immediately followed by a block element, then the elements are left on the same line and no extra blank lines are added:
- thematic break
- atx heading
- setext heading
- fenced code
- verbatim code
- block quote marker
- Fix: edge formatting cases when list item marker is immediately followed by a block element, then the element is put on its own line:
- Add: parser settings parameter to prefix related functions to use when prefix limits are defined by content indent not fixed indent
- Fix: Swing preview HTML table did not render correctly. Swing CSS used
thead which Swing browser does not support. Now generating different class for
tr tags depending on whether they are
- Add: format 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.
- Fix: task list item content indent based parsing was broken in flexmark-java.
- Fix: all inline toggling actions to remove markers if caret is between markers and no intervening text, as occurs when toggle action was just used to inserted markers.
- Add: all 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.
- Change: Added option to Main Settings
Inline code toggle like other text style actions change inline code action to work just like bold, italic and strike through, instead of continuously adding back ticks when at the end of word.
- Fix: references or links to
raw/master/*.png showed as unresolved when on wiki home because only image links would handle the optional wiki prefix from home page for image files.
- Fix: backspace at end of file after
# did nothing.
- Fix: Header marker equalization was broken.
- Fix: CSS when task list item was first level, bullet sub-item spacing was messed up
- Fix: when inserting list item above in a loose list, added a blank line right after the first line of the next item, even if the item has more than one line of text. Should not add blank line after the next item at all.
- Add: surround live templates for:
- fenced code,
- collapsed sections,
- @formatter:off / @formatter:on comments
- Add: Markdown context for Live Templates
- Fix: Table body and head should not use node text for breadcrumb. Row does that causing double breadcrumb text to appear.
- Add: definition lists implementation from flexmark-java
- Fix: format document did not preserve block quotes on fenced code
- Change: image links to
http://github.com/user/project/blob are now always flagged with a warning regardless of whether they are part of an image link or reference.
<html></html> wrapper tags to
NO_FILE_EOL to flexmark example options as built-in option
- Add: updated to flexmark-java 0.9.0, added subscript/superscript/ins extensions to parser options. Can be used with Jira, Copy HTML mime
- Add: Toc options for table of contents list generation:
- 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
- Change: for parsing purposes all bullets interrupt all paragraphs. Eliminate the possibility of wrap on typing merging a block of list items when one of them is edited to non-list item.
- Add: wrap on typing and document format respects the
- Change: refactor all the settings to use settable component list where possible.
- Fix: Copy HTML mime formatted text to use CSS settings only if the profile name is
COPY_HTML_MIME, otherwise use internal defaults.
- Fix: table column alignment was not taking accumulated span offset in the table row when getting alignment for the column from separator row.
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 in e-mails. To override the default styles and parser options for rendered HTML create a profile named
COPY_HTML_MIME and override CSS Text. Use html_mime_default.css as a starting template. All style settings must be contained in a single matching one line entry since they are set in each element and there is no stylesheet. The "css" text is parsed with a simple parser, one line comments stripped out and each line's style attributed to element selector, with style to be added to the element's style attribute. The "parent" selector is based on Markdown AST hierarchy and not actual HTML, so any HTML tags surrounding Markdown elements will have no effect. The classes are hardcoded into the attribute provider such as:
li.loose based on Markdown AST.
- Add: option to not load GIF images, later if possible to not animate them just display the first frame. Really messes up preview and scrolling. Even crashed PhpStorm needing a power down because it would not be killed. Same with IDEA but force quit worked.
- Fix: In profiles Stylesheet and HTML override project settings options were reversed in the code. Html controlled Stylesheet and Stylesheet controlled HTML.
- Fix: Copy Jira and YouTrack heading would not have text if
Anchor Links parser option was selected.
- Add: option to not load GIF images, later if possible to not animate them just display the first frame. Really messes up preview and scrolling. Even crashed PhpStorm needing a power down because it would not be killed.
- Add: formatter control tags support
- Add: Copy YouTrack formatted text, like Jira but with differences
- Fix: Copy Jira formatted text adding extra blank line in block quote
- Add: fenced/indented code trailing space trimming options.
- Add: flexmark-java flexmark example trailing space trimming options.
- Add: fenced code style option
Space before language info to put a space between opening marker and language info string
- Fix: disable backspace, enter and typed character handlers in multi-caret mode.
- Add: multi-invoke for inline code completion to select fully qualified names or just simple names. Make simple name the default. Very annoying to get full names in docs.
General usage instructions
Install and get GitHub-like markdown with HTML preview and HTML text tabs for markdown text files.