Fully customizable to adjust to your preferences and project needs
Two tier model
Previewing, syntax highlighting, basic editing functionality with link completions with split
editor preview is available in the basic open source edition. Intended for mostly previewing
and editing of markdown documents without full document format.
Advanced features used for creating and maintaining markdown documents: refactoring, find
usages, validation and auto formatting are available with the Enhanced license available from
the JetBrains Marketplace.
Release Road Map
Version 3.0.xxx.108 - 2020.x Compatibility Release
Fix: profile settings could be deleted if markdown code style settings changed and applied
if profiles pane was opened before changing markdown code style.
Fix: changing profiles and applying would cause export on settings change to be triggered
for every changed profile, instead of once for all changes.
Fix: wrap on typing caret jumping to end of next line if typing replaces selection.
Version 2.9.10
Table Sort action
Table Transpose action
Version 2.9.9
2019.3 Compatibility Release for IDE versions 2019.3 and later
Enhanced features unlocked for Community and Educational IDE products
Optimized Performance gains of up to 40x
Copy Table as JSON action to convert markdown table to JSON structure
Adjust Links on Paste and Confirm on Paste options for selective link URL adjustments
Space in link URLs parser option
Copy Reference of heading and paste to get link with anchor ref
Copy Selection Reference in any file and paste to get line selection link
Exception Report tracking with notification of fixes
Task Item Priority based on bullet of item:
+ [ ] high priority
* [ ] normal priority
- [ ] low priority
Gutter Icons configuration
Show Scope and Profile matches for file.
Rendering Profile Settings toolbar button
Paste Image:
Improved destination directory selection
Highlights adjust to scale and cropping changes
Checkered transparent background option
Convert to/from HTML entities intentions
Admonition Type Completions
Common TOC Errors inspections
Right Margin override in scoped rendering profile
Optionally alias latex and math languages to use TeXiFy IDEA plugin for GitLab
math elements
Version 2.9.0/2.9.7
Split plugin versions: 2.9.0 for pre 2019.2 IDEs and 2.9.5 for 2019.2 and later
Configuration Search in all configuration panes
Exception Report tracking with notification of fixes
Java 11 JRE Support
Version 2.8.4
Java 11 JRE Support
Improved Preview and Typing response
Cut/Copy/Paste Improved to handle Macros, Enumerated References and Link adjustments.
Copy/Paste between IDE instances with all references and links properly included and
adjusted.
Plain Text Completions to insert references defined in file and in project scope. See:
Plain Text Suggestion Scope
Inspection Option to ignore markdown text in fenced code
New Inspections
mismatch of link to heading text for anchor refs to headings
unicode LINE SEPARATOR in file
when a list item needs more indentation to be a sub-item
Annotator Settings to customize enabled annotations
Annotator Errors to show underline for file in project tree
New Intentions to wrap auto-link looking text in <>
New HTML Paste Options convert links to: references, text, HTML or explicit links
New Structure View Option Show Headings & Tasks
Show Members in project view to show headings
Format Document option to remove unused reference element definitions.
In-place Rename of headings, references and other elements
Dropped Links insert options: Link, Ref Link & Reference, Reference Only
Syntax Highlighter Attributes for GitLab extension elements
Comment directive to Ignore invalid link or anchor for annotation
PlantUML fenced code rendering via PlantUML library or gravizo.com
Multi-Line Image URL language injections
GitHub Issue completions insert link to issue
Show HTML page as Documentation for GitHub issues and optionally for URLs
Improved Directory/Package Refactoring for all IDEs
Improved: toolbar actions dealing with block quotes, list items, heading level up/down to
handle conversion to/from plain text.
New: heading style conversion during document format
New: Convert fenced code to indented code intention
New: Copy Exported as HTML Mime Content Action to copy HTML export text as HTML mime content
New: Image Paste highlight option to annotate an area of the image.
New: Copy markdown without soft line breaks copies document or selection to the clipboard
eliminating soft line breaks. Useful when copying wrapped markdown to GitHub comments.
New: All copy markdown actions: CopyHtmlMimeFormattedAction, CopyJiraFormattedAction,
CopyNoSoftLineBreaksAction and CopyYouTrackFormattedAction, now include all reference
defining elements which were referenced from the copied part. All links and other elements
resolve without needing to include their reference definitions in the selection.
New: option for full highlight attributes, enabled takes 3700 attributes out of the pool,
while disabled less than 300.
Source Updated to 3.0.201.91
The update is more like a replacement of the source than an evolution of
it. The directory structure has changed significantly, and a lot of Java
has been converted to Kotlin.
The pegdownMarkdown parser used by the plugin in its original incarnation was changed to
flexmark-java and pegdown dependencies have been removed as of version 2.2.0.
source element based AST with detailed break down of each element for syntax highlighting
complete source position tracking for all elements and their lexical parts
optimized for efficient parsing with many parser extensions installed
unified core and extension options API to simplify parser/renderer configuration
options to tweak core parser rules
In the process of making the needed modifications to the original commonmark-java parser,
performance was impacted by about 25-35%. This still makes the new parser 7x-10x faster than
intellij-markdown parser used by Markdown Support and 25x-50x faster than pegdown. As an
added benefit, the new parser does not suffer from pegdown's idiosyncrasies of exponential parse
times or pathological input cases that cause infinite loops in the parser's state machine.
On the coding end, the new parser is a joy to maintain and enhance. The parser architecture,
inherited from commonmark-java, is easy to debug and test. Markdown element parsers have
little or no interdependencies with other element parsers making it easy to fine tune parser
behaviour on a per element basis and add parser configuration options to emulate other markdown
processors. All this is in contrast to pegdown's one big PEG grammar implementation with
everything potentially inter-dependent.
Background
It all started with a desire to see Markdown files in PhpStorm IDE as they would look on GitHub.
I was already using nicoulaj/idea-markdown plugin but found its preview was more like
Craig's List than GitHub. It did not appear to have been recently updated, so I decided to
fork it and modify its style sheet. How hard could that be?
I found out quickly that there was more to it than meets the eye. Rendering is done by Swing not
a browser, the parser is HTML 3.1, with many features not implemented. Additionally, the Table
extension did not work in pegdown version used by the plugin.
I upgraded the plugin to use the latest pegdown, parboiled. Fixed a few bugs. I was already
in the code so I might as well add a few more features like user editable style sheet, fix a few
more bugs, add updates to preview so that I could split the editor pane and edit in one while
seeing the preview in the other.
Now almost four years later, the plugin is brimming with features to make Markdown editing and
creation a breeze. It was more work than I imagined but more satisfying that I had hoped.
It has been a fun trip down the rabbit hole of IntelliJ IDEA plugin development which started
with a simple desire for a Markdown preview that looked like GitHub's.
请发表评论