Skip to content

Enhanced Features

Vladimir Schneider edited this page May 1, 2020 · 48 revisions

Table of Contents


Toolbar

Split Layout Control

Screen Shot Toolbar

Button Action Notes
Editor Preview Show editor and preview
Preview Only Show preview only
Editor only Show editor only
Html Preview Show HTML preview
Html Modified Show HTML text used for browser
Html Unmodified Show plain HTML as generated by parser Plain HTML as converted from markdown by the parser
Print preview Print HTML preview only JavaFX WebView preview browser supported

Actions available but not in the toolbar. Can be mapped to shortcuts.

Non Toolbar Actions Action Notes
Cycle Editor Preview Cycle split layout
Toggle Editor Preview Toggle Editor Layout toggles preview on/off
Cycle Html Cycle preview content cycle through preview, modified and unmodified HTML preview types

Style and Editing

Screen Shot Toolbar

Button Action Notes
Editor Actions Wrap On Typing Toggle wrap on typing
Editor Actions Bold Toggle bold text
Editor Actions Italic Toggle italic text
Editor Actions Strike through Toggle strike through text
Editor Actions Underline Toggle underline/inserted text Underline parser extension must be enabled
Editor Actions Superscript Toggle superscript text Superscript parser extension must be enabled
Editor Actions Subscript Toggle subscript text Subscript parser extension must be enabled
Editor Actions Code Span Toggle code span
Icons Editor Actions Link Insert explicit link
Editor Actions Quote Remove Decrease quote level
Editor Actions Quote Add Increase quote level
Editor Actions Header Level Up Increase header level
Editor Actions Header Level Down Decrease header level
Editor Actions Header Toggle Type Toggle header type
Editor Actions List Unindent Un-Indent list item
Editor Actions List Indent Indent list item
Editor Actions List Tight Single space list Single space all items in a list. Caret placed on one of the list items
Editor Actions List Loose Double space list Double space all items in a list. Caret placed on one of the list items
Editor Actions List Bullet Items Bullet list Convert caret item or items in selection to bullet list items. If all are already bullet items then convert to plain text
Editor Actions List Ordered Items Numbered list Convert caret item or items in selection to numbered list items. If all are already numbered items then convert to plain text
Editor Actions List Task Items Task list Convert caret item or items in selection to task list items. If all are already task items then convert to plain text
Editor Actions List Toggle Item Done Toggle task item done Toggle done status of caret item or items in selection
Auto Format Table Toggle auto-format table Toggle format table as you type mode.
Editor Actions Insert Table Insert table Inserts a 1x3 table that you can edit to add more rows and columns.
Editor Actions Insert Table Row Insert table row Insert a row below the caret. Also done by ENTER
Delete Table Row Delete table row Delete the row with the caret. Also done by BACKSPACE on empty row
Delete Table Column Delete table column Delete the column with the column with caret. Also done by BACKSPACE on empty column
Editor Actions Move Table Column Left Move table column left Moves the column containing caret to the left
Editor Actions Move Table Column Right Move table column right Moves the column containing caret to the right
Editor Actions Reformat Element Reformat current element Wrap paragraph, format table or update table of contents element
Editor Actions Reformat Document Reformat current document Apply code style to current document
Editor Actions Copy Jira Copy JIRA formatted text Copy current selection or document as JIRA formatted text
Editor Actions Copy You Track Copy YouTrack formatted text Copy current selection or document as YouTrack formatted text
Editor Actions Copy HTML mime Copy HTML formatted text Copy current selection or document as HTML formatted text that can be pasted into applications that support the format. i.e. e-mail, word processing, etc.
Copy Table as JSON Convert Markdown table content to JSON Array of row Objects or Object of row objects indexed by key column property
Editor Actions Export Html Export Rendered Html Export rendered HTML as per rendering profile
Editor Actions Export PDF Export Markdown as PDF Export Markdown as PDF rendered HTML formatted text
Editor Actions Translate Document Translate Document Translate document Powered by Yandex.Translate

Live Templates

Element Mnemonic Expansion
Abbreviation .abbreviation *[]:
Fenced Code .codefence ``` ... ```
Collapsed Markdown .collapse &nbsp;<details><summary>...<summary>...
&nbsp;<details>
Emoji .emoji ::
Explicit link .link []()
Footnote .footnote [^]:
Footnote Ref .rfootnote [^]
Image .image ![]()
Ref image .rimage ![][]
Ref link .rlink [][]
Reference .reference []:
Table .table `
Task .task - [ ]
Table of Contents .toc [TOC]: #
Wiki link .wikilink [[]]

 

Collapsed Markdown live template must be enabled in Live Templates > Markdown

Collapsed Markdown creates a collapsible markdown snippet that will be correctly rendered on GitHub. This Live Template comes disabled by default and must be enabled before it will be available for completions.

Since the preview is updated as changes to the markdown document is made the <details> tags will be refreshed in the closed form after every update. To make it easier to work on a document with <detail> tags you should enable the Details tag opener script in Stylesheet Settings so that these tags will be opened after every update.

⚠️ Swing browser does not support this tag and will simply render the text contained in this section.

 

Surround Live Templates

Element Abbreviation Expansion
Fenced Code MM Surround selection with Markdown Fenced Code
Collapsed Markdown CM Surround selection with Markdown Collapsible section
Formatter off/on comments EM Surround selection with Markdown @formatter off/on comments

The formatter off/on wrapping can be used to manually control formatting of a section or sections of a document while allowing the rest of the document formatting to be automated.

Actions and Keymap

All actions defined by the Markdown Navigator plugin can be used to create custom key mapping under Keymap > Plug-ins > Markdown Navigator under Preferences (OS X)/settings (Win/UX).

Screenshot_Keymap.png

This includes all toolbar button actions and view toggling actions, which lets you customize your shortcuts to your most frequently used actions.

Working with Tables

Table Navigation

There are actions to navigate to next/previous cell/start/end. The Cell navigation will stop on Cell Start and Cell End. Actions "With Selection" will extend the selection, the others don't. All will stop at start/end of table row and wrap to next/previous row if it exists.

The Tab/Back-Tab keys can also be used to navigate table cells by enabling the Tab/Backtab Table navigation option in Languages & Frameworks > Markdown > Editor. Optionally selecting the cell content.

Auto-format table

With Auto-format table on typing enabled will result in the table formatting options being applied as you edit the table. This does delay the typing but does make it easier to see the results. When performing extensive edits to a table you can temporarily turn off this options on the toolbar.

Table Auto Format

If Add missing columns is enabled the typing before the leftmost pipe character will insert a column into the table before the first column. Typing after the rightmost pipe character will add a column after the last. If the table rows have un-even column numbers then reformatting a table via the Format element button will also add columns but will do so at a location based on the column that contains the caret. This way you can control where the missing columns are inserted. For full control you should use the Insert table column button.

Delete empty row/col on backspace will automatically delete a row or column when BACKSPACE is performed in an empty row/column. Row deletion has priority over column deletion.

Insert on ENTER will add an empty table row below the row that contains the caret.

Table Add Missing

Convert to JSON

Sometimes you just need a JSON configuration or data file which contains a list of records and is easier manipulated in a table form. This is easily done by creating a table in markdown with the column header text matching the JSON property names then using the Copy Table to JSON action to convert it.

Options allow selecting which columns to include, specifying a JSON property different from table column text, whether to include empty columns as null or "", whether to extract URL from image and link elements and re-arrange the order of properties.

|    name     |        email         |    phone    | location |      picture      |
|-------------|----------------------|-------------|----------|-------------------|
| John Smith  | jsmith@example.com   | +1234567891 | Earth    | ![](jsmith.png)   |
| Jane Doe    | jdoe@example.com     | +1234567892 | Moon     | ![](jdoe.png)     |
| Joe Sixpack | jsixpack@example.com | +1234567893 | Earth    | ![](jsixpack.png) |

JSON Array of row Objects

This will create a JSON array of objects built from rows of the table.

[
  {"name":"John Smith","picture":"jsmith.png","email":"jsmith@example.com","phone":"+1234567891"},
  {"name":"Jane Doe","picture":"jdoe.png","email":"jdoe@example.com","phone":"+1234567892"},
  {"name":"Joe Sixpack","picture":"jsixpack.png","email":"jsixpack@example.com","phone":"+1234567893"}
]

Screenshot_TableToJsonArray

JSON Object of row Objects

This will create a JSON object keyed by selected column of objects built from rows of the table.

{
  "John Smith":{"picture":"jsmith.png","email":"jsmith@example.com","phone":"+1234567891"},
  "Jane Doe":{"picture":"jdoe.png","email":"jdoe@example.com","phone":"+1234567892"},
  "Joe Sixpack":{"picture":"jsixpack.png","email":"jsixpack@example.com","phone":"+1234567893"}
}

Screenshot_TableToJsonObject

If the selected key column has duplicate values lines in JSON preview text will be highlighted to bring this to your attention.

Screenshot_TableToJsonObjectError

Copy/Paste

When pasting markdown text copied from a markdown file link and footnote references will automatically paste the references at the end of the file so that these references resolve in the destination file. The destination link address format will be changed to absolute URL format if the destination file link cannot be resolved in the original link format. This will work across projects and IDEs.

Adjust Links on paste Editor Settings enables link adjustment based on paste destination and Confirm on Paste option will allow deciding whether to adjust links when links are pasted.

You can also paste files which will convert them to links. In the case of image files these will be converted to image links.

Paste Image

Optionally, pasting an image (or an image file while holding the copy modifier key) into a markdown document will automatically convert it to a link. For images the link format can be Base64 Encoded which will insert a base64 encoded embedded image instead of saving it to a file.

Image Processing options (Image tab) include:

  • Crop
  • Scale
  • Round Corners
  • Border
  • Make a color transparent, with color range tolerance
  • Add Highlight

Add Highlight shape to draw attention to an area (Highlight tab) options:

  • Round Corners
  • Border
  • Inner fill with optional transparency
  • Outer fill with optional transparency

ImagePaste.gif

When Pasting On link element handling options allow selecting action based on which part of a link the image is pasted.

ℹ️ Selecting Use mouse selection only for highlight will allow defining the highlight dimensions by drag/selecting in the preview image regardless of whether Image or Highlight tab is selected. When this options is not selected, in Image tab, drag selection will select the cropping area and in Highlight tab will select the highlight dimensions.

Modifying an Image

An existing image link can be modified by using the Copy/Modify intention on an image link:

ScreenShot_CopyModify_ImageIntention.png

The same options for modifying an image are available as when pasting an image. If you leave the file name the same then the file content will be replaced. Changing the file file will save the modified image in a new file and change the link to point to the new file.

ℹ️ image links to non-local image files will be downloaded for modification and local storage.

Markdown Export and Conversion

Copy Markdown to HTML formatted text

Copy Markdown to HTML formatted text will copy the current selection or document if there is no selection, to the clipboard as HTML formatted mime content which can be pasted into any application that supports HTML formatted content such as e-mail or word processing application.

For details see Copy Markdown to HTML formatted Text

Export Markdown to PDF

Export Rendered Markdown to PDF will export the current document to PDF using the configured rendering profile.

This action is available in the toolbar and in the main menu under Tools > Markdown Navigator > Export Markdown

By default this action will use COPY_HTML_MIME rendering profile, if available. The rendering profile for this action can be customized by creating a Profile named COPY_HTML_MIME, Preview settings are not used. Parser, Stylesheet and HTML Generation will allow customization of what HTML is used for exporting to PDF.

Alternately, you can create a rendering profile and select it as the default for PDF Export in Languages & Frameworks > Markdown > Rendering. If customizing the PDF rendering profile you will need to take into consideration Open HTML To PDF limitations in parsing the resulting CSS attributes. Rendering Profiles Settings

Translate Document

Translates the document in one stroke. Powered by Yandex.Translate

Requires setup of translation settings in Debug Settings

Requires Yandex API key which is free of charge.

Will translate the document, preserving markdown formatting.

Markdown Extensions

Additional markdown parser extensions can be used if the target markdown processor supports the syntax or you will be using exported HTML for final documentation. In the latter case, all extensions can be used since your results only depend on Markdown Navigator markdown processing.

Screenshot_Parser_Settings.png

See Parser Settings for documentation of all available extension and options.

Some of the parser extensions are described below.

Admonition Extension

Based on Admonition Extension, Material for MkDocs adds syntax to create block-styled side content with minimal additional markup.

Syntax and details described in Admonition Extension

AdmonitionExample.png

Attributes Extension

Converts attributes {...} syntax set HTML attributes for immediately preceding sibling element during HTML rendering.

Syntax details defined in Attributes Extension

Enumerated References Extension

Enumerated references extension, in conjunction with the Attributes extension allows easy references with text and ordinal number to be created and automatically updated as the documentation evolves.

Syntax details defined in Enumerated References Extension

GitLab Flavoured Markdown

GitLab math (Katex) and GitLab charts (Mermaid) can be enabled without enabling all of GitLab Flavoured Markdown extensions. Both require JavaScript support which is only available in JavaFX WebView preview browser.

  • GitLab Flavoured Markdown: Adds GitLab Flavoured Markdown parsing and rendering functionality
    • Math inline using $``$ and fenced code blocks with info of math using Katex
    • Chart fenced code blocks with info of mermaid using Mermaid
    • Inserted text (underlined) via {+text+} or [+text+]
    • Deleted text (strike through) via {-text-} or [-text-]
    • Multiline block quotes using >>> at start of line to mark block start and <<< at start of line to mark block end. GFM: Multiline Blockquote
    • Video image link rendering GFM: Videos
  • GitLab math (Katex): enables math extension. If GitLab Flavoured Markdown is selected this is automatically enabled. Otherwise can be selected separately from GitLab extensions above.
  • GitLab charts (Mermaid): enables charts extension. if GitLab Flavoured Markdown is selected this is automatically enabled. Otherwise can be selected separately from GitLab extensions above.

HTML Generation settings allow selecting Math block and inline rendering using: Katex, codecogs PNG or codecogs SVG. Katex uses JavaScript and will render only in JavaFX preview browser. The other options use website for rendering the image but will work with Swing preview browser, HTML export with embedded images and PDF export.

Macros Extension

Macros extension allows creating a named block of any markdown elements which can then be inserted as an inline element anywhere inline elements can be used.

Not only can you use macros to remove duplicated text in a file but it is also the only way to insert block elements where only inline elements can be used, like adding list items, block quotes and tables to table cells.

Syntax details defined in Macros Extension

PlantUML Extension

This extension will render fenced code with puml and plantuml as PlantUML and Graphviz Dot diagrams respectively.

HTML Settings page

Table Of Contents Extension

Table of contents for your document can be generated for standard markdown parsers that do not support a table of contents element.

The lines after the [TOC]: # tag are updated to reflect the content of the document when you reformat document Editor Actions Reformat Document or reformat element editor actions reformat element. More details in Table of Contents Extension

Options for the table of contents element can be edited using the Edit Table of Contents style intention:

TOC_intention

which will bring up the TOC formatting options dialog with preview of text and rendering to allow easy experimentation with available options:

ScreenShot_Edit_TOC_Options.png

The table of contents at the top of this page is generated using the table of contents extension of the plugin.

Clone this wiki locally