ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

Markdown​Preview​Overlay

by flashmodel ST4 New

Show Markdown preview within original file tab

Details

Installs

  • Total 13
  • Win 6
  • Mac 6
  • Linux 1
Oct 2 Oct 1 Sep 30 Sep 29 Sep 28 Sep 27 Sep 26 Sep 25 Sep 24 Sep 23 Sep 22 Sep 21 Sep 20 Sep 19 Sep 18 Sep 17 Sep 16 Sep 15 Sep 14 Sep 13 Sep 12 Sep 11 Sep 10 Sep 9 Sep 8 Sep 7 Sep 6 Sep 5 Sep 4 Sep 3 Sep 2 Sep 1 Aug 31 Aug 30 Aug 29 Aug 28 Aug 27 Aug 26 Aug 25 Aug 24 Aug 23 Aug 22 Aug 21 Aug 20 Aug 19
Windows 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0
Mac 5 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Linux 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Readme

Source
raw.​githubusercontent.​com

MarkdownPreviewOverlay

MarkdownPreviewOverlay is an editor-native Markdown reading mode for Sublime Text. It leaves the original Markdown in the buffer, folds the source, and renders the document as a themed minihtml phantom in the same view.

MarkdownPreviewOverlay Demo

This extension is built on concept discussed in the forum topic: Provide markdown preview mode using folded source and phantom. Join the discussion and share your thoughts or feedback in that thread!

Features & Capabilities

Compared to traditional external browsers or split-pane previewers, MarkdownPreviewOverlay renders your Markdown preview directly inside the same editor view while keeping your plain-text workflow intact:

  • Zero Context-Switching: Read and edit in the exact same view—never leave Sublime Text or juggle external browser windows.
  • No Split-Pane Clutter: Maximizes your entire editor width without dividing the screen into cramped columns or causing premature line wrapping.
  • Exact Scroll & Cursor Preservation: Seamlessly preserves and restores your exact cursor positions, active selections, viewport scroll offset, and manual code folds when toggling modes.
  • Lightweight & Theme-Adaptive: Powered directly by Sublime Text’s built-in minihtml engine (mdpopups) with zero background servers, minimal memory overhead, and automatic color scheme alignment.
  • Full Complex Markdown Support: Seamlessly renders complex Markdown constructs, featuring a custom table engine that auto-adapts to your viewport width, along with syntax-highlighted code blocks, blockquotes, and nested lists tailored for miniHTML.

Note: Rendering is delegated directly to the mdpopups Package Control dependency without bundling a separate Markdown parser.

Usage

MarkdownPreviewOverlay provides seamless ways to enter, navigate, and exit preview mode without leaving your active editor view.

1. Interactive Phantom Buttons

The package injects lightweight, non-intrusive interactive controls directly into the buffer for saved files (enabled by default, can be hidden via "show_preview_button": false in settings):

  • Preview Mode: Click the **▣ Preview** button at the top of the file (displayed as a right-aligned annotation badge, or a compact inline ▣ icon if the line is long) to fold the source text and enter the preview overlay.
  • Edit Mode: Click the ✏️Edit source button in the top toolbar to exit preview mode. Your previous cursor selection, scroll position, original read-only status, and manual code folds are fully restored.

2. Command Palette

Press Command+Shift+P (macOS) or Ctrl+Shift+P (Windows/Linux) and search for Markdown Overlay (or type mdo):

Command Description
Markdown Overlay: Toggle Toggles seamlessly between Preview Mode and Edit Mode.
Markdown Overlay: Preview Mode Enters the rendered preview mode for the active Markdown document.
Markdown Overlay: Edit Mode Exits preview mode and returns to editing the source buffer.
Markdown Overlay: Refresh Forces a re-render of the preview layout (useful after resizing the window).

Note for Unsaved Buffers: To keep scratch view clean, the inline ▣ Preview button is only displayed for saved files on disk. For unsaved or untitled buffers, enter preview mode using the Command Palette or a keyboard shortcut.

Behavior & Document Lifecycle

  • Read-only Safety: Preview mode makes the buffer temporarily read-only to prevent accidental edits while viewing formatted text.
  • Buffer Integrity: Source folding uses standard Sublime Text region folding without modifying the buffer text or polluting the undo history.
  • Unsaved Buffers & Scratch Pads: The inline preview button is intentionally omitted on unsaved buffers or scratch pads to prevent visual clutter; use the Command Palette or a keyboard shortcut to preview them anytime.
  • Auto-Refresh: If the document is modified or saved, the preview updates automatically with debounced re-rendering.
  • Local Images Only: Only local image files are rendered; remote web images are not downloaded; resolving local relative image paths is enabled by default (disable via "resolve_image_paths": false).
  • Keyboard Navigation: In preview mode, native navigation keys (Up/Down arrows, PageUp/PageDown, Home/End, Cmd+Up/Down) automatically scroll the preview without requiring any custom keybindings.

Configuration

Access settings and key bindings via the menu: Preferences -> Package Settings -> MarkdownPreviewOverlay.

Settings

Settings can be customized via Preferences -> Package Settings -> MarkdownPreviewOverlay -> Settings (or directly in MarkdownPreviewOverlay.sublime-settings):

Setting Description
show_preview_button Display the interactive ▣ Preview button at the top of saved files in edit mode (default: true).
sync_preview_position Synchronize preview scroll position with the current Markdown source position (default: true).
hide_line_numbers Automatically hide line numbers and the gutter in preview mode (default: true).
show_status_indicator Display the active mode indicator in the status bar during preview mode (default: true).
table_max_width Maximum character width for rendered tables; null auto-fits the viewport width (default: null).
resolve_image_paths Rewrite local relative image paths to absolute file:// URIs for rendering (enabled by default: true). Set to false if prefer image paths to be untouched.
image_max_width Maximum display width in pixels for rendered images when resolve_image_paths is enabled (default: 900).
keyboard_scroll_lines Number of lines to scroll per arrow key press (Up/Down) in preview mode (default: 3.0).

Key Bindings

MarkdownPreviewOverlay does not register a shortcut to avoid collisions. Key bindings are provided as a keymap example.

To enable keyboard shortcuts, open Preferences -> Package Settings -> MarkdownPreviewOverlay -> Key Bindings (or copy from Example.sublime-keymap into your User keymap):

[
    {
        "keys": ["primary+alt+r"],
        "command": "markdown_preview_overlay_toggle",
        "context": [{ "key": "setting.is_widget", "operand": false }]
    }
]

primary+alt+r automatically maps to Cmd+Option+R on macOS and Ctrl+Alt+R on Windows/Linux in Sublime Text.

Development installation

Clone or link this directory as Packages/MarkdownPreviewOverlay, then run Package Control: Satisfy Dependencies. Package Control installs mdpopups according to dependencies.json.

Sublime Text build 4050 or newer is required. The package selects Sublime's Python 3.8 plugin host through .python-version.

License

This project is licensed under the Apache-2.0 License.