Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>MD Writer StudioNew to Visual Studio Code? Get it now.
MD Writer Studio

MD Writer Studio

it-m-h

|
3 installs
| (0) | Free
Write Markdown as source text or directly in the live preview.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

MD Writer Studio

MD Writer Studio is a Markdown editor for VS Code. It offers two views: plain source text, or a live preview you type into directly. Right-clicking opens a menu for formatting and inserting content. It also includes an outline, themes, PlantUML diagrams, printing to PDF and HTML export.

The user interface is in English. If VS Code is set to German, menus, commands, settings and messages appear in German.

MD Writer Studio with live preview in VS Code

Live preview

The file always stays plain Markdown text. MD Writer Studio only hides the Markdown characters: **bold** appears as bold, # Title as a large heading, - [ ] as a checkbox. Wherever the cursor is, the characters become visible again and can be edited.

Because nothing is converted, the text stays exactly as it is, character for character. Tables are not reformatted, and _ does not turn into \_.

Press Ctrl+E or use the button at the top right of the title bar to switch between live preview and source.

Rendered elements:

  • Headings, bold, italic, ~~strikethrough~~, ==highlight== and inline code
  • Links and images with relative paths
  • Bullet lists, numbered lists and tasks with clickable checkboxes
  • Quotes and callouts such as > [!note], > [!tip], > [!warning], > [!danger], with a title (Note, Tip, Warning, Danger …)
  • Code blocks with syntax highlighting, horizontal rules and YAML front matter
  • Footnotes as a superscript number; the note text appears on hover
  • Page breaks as a dashed line, columns side by side
  • Formulas with KaTeX and PlantUML diagrams
  • Wiki links [[Page]] and a table of contents with [toc]

Links: Ctrl+click opens a link. Web addresses open in the browser, linked files open in VS Code. If the file does not exist, a message appears.

Tables

Tables are edited directly in the rendered view: click a cell and type.

  • Tab / Shift+Tab moves to the next / previous cell.
  • Enter moves down one row. In the last row, a new row is added.
  • Arrow keys move between cells, Escape leaves the table.
  • Ctrl+B, Ctrl+I and Ctrl+` format the text in the cell.

Right-clicking inside a table lets you insert a row above or below, insert a column to the left or right, delete a row or column, align a column left, center or right, and tidy up the whole table.

Writing and formatting

Right-click opens the context menu:

Menu Contents
Insert link, Insert footnote directly in the menu
Format Bold, italic, strikethrough, highlight, code, clear formatting
Paragraph Bulleted list, numbered list, task list, heading 1–6, normal text, quote, increase / decrease indent
Insert Image, table, callout, code block, inline formula, math block, table of contents, horizontal rule, footnote, page break, columns
Table only inside a table, see above
Edit Cut, copy, paste, paste as table, select all
View Show source / live preview, show / hide outline, print / save as PDF, export as HTML, choose theme, open in the VS Code text editor

Lists: Tab and Shift+Tab indent and outdent a list item. Sub-items move along and the numbering adjusts. Ctrl+L turns a line into a task, then into a completed task, and back into an open one.

Images: Insert → Image lets you pick a file, which is linked relative to the Markdown file. Images from the clipboard (e.g. screenshots) are saved as a file in the images folder next to the Markdown file, and the link is inserted. The folder is set with md-writer-studio.imageFolder.

Slash commands: Type / at the start of a line or after a space. A list of blocks opens: headings, lists, table, code block, formulas, PlantUML diagram, table of contents, image, footnote, page break, columns and callouts. Keep typing to filter (e.g. /tab), then press Enter. English names work in every language.

Completion: After ]( the list shows images and Markdown files in the workspace, after ](# the headings of the document, after [[ the pages for a wiki link.

Smart paste:

  • An address pasted over selected text becomes a link: [text](https://…).
  • Cells copied from Excel, LibreOffice or Google Sheets become a Markdown table, as do lines separated by tabs, semicolons or commas (CSV). With semicolons and commas this happens automatically only if the lines look like data; right-click → Paste as table converts them in any case.
  • Content from web pages, Word or Outlook becomes Markdown (headings, bold, lists, links, tables).
  • Ctrl+Shift+V pastes plain text without conversion. Nothing is converted inside code blocks.

Drag and drop: Images dragged from the desktop are copied into the image folder and embedded. Files dragged from the VS Code Explorer are linked relative to the document; VS Code requires holding Shift while dropping.

Find and replace with Ctrl+F, including match case, whole word and regular expressions.

Footnotes, page breaks and columns

Footnotes: Right-click → Insert footnote puts [^1] at the cursor position and adds [^1]: for the note text at the end of the document. The number is counted up automatically.

Page break: Ctrl+Enter or Insert → Page break inserts this line:

<div style="page-break-after: always;"></div>

When printing, a new page starts there. This is the common way to write page breaks in Markdown. Wherever the document is not printed, the line stays invisible. <!-- pagebreak --> is recognized as well.

Columns: Insert → Columns offers the layouts 50/50, 40/60, 60/40, 33/67, 67/33, 33/33/33 and 25/50/25. Markdown itself has no columns, so HTML is inserted with regular Markdown in between:

<div class="md-columns" style="display: flex; gap: 2em;">
<div class="md-column" style="flex: 40;">

Left column with **Markdown**

</div>
<div class="md-column" style="flex: 60;">

Right column

</div>
</div>

The blank lines matter: without them, the Markdown in between is not rendered. flex: 40 and flex: 60 split the width in a 40 : 60 ratio. In the live preview, the columns are shown side by side. Clicking into a column shows the columns one below the other for editing, labeled and color-coded. When the cursor leaves the columns, they are shown side by side again. When printing and in the HTML export, the columns are side by side as well. Applications without HTML support show them one below the other, but the content is fully preserved.

Formulas, wiki links and table of contents

Formulas are written in LaTeX and rendered with KaTeX: $E = mc^2$ in the text, or as a block:

$$
\sum_{i=1}^{n} i = \frac{n(n+1)}{2}
$$

Amounts like "costs $5 and $6" stay text: the opening $ must not be followed by a space, the closing one must not be preceded by a space or followed by a digit. Clicking a formula shows its source.

Wiki links as in Obsidian: [[Page]], [[Page|shown text]], [[Page#Heading]] and ![[image.png]] to embed an image. Ctrl+click looks for the page next to the document first, then anywhere in the workspace. If it does not exist, MD Writer Studio offers to create it. When printing and in the HTML export, wiki links become normal links to Page.md.

Table of contents: [toc] on its own line (as in Typora) shows all headings as a clickable list that updates itself. When printing and in the HTML export, it becomes a list of links to the headings.

Outline

On the left side of the editor, the outline shows all headings (H1–H6) as a tree.

  • Clicking a heading scrolls to it.
  • The arrow in front of a heading expands and collapses its sub-items; the two buttons at the top expand or collapse everything.
  • While scrolling, the section currently at the top is highlighted.
  • The list updates as you type. Headings in front matter, quotes, lists and code blocks are not listed.
  • Keyboard: arrow keys move between entries, right / left expands and collapses, Enter jumps to the heading, Escape returns to the text.

Show and hide: Ctrl+Shift+O, the button in the title bar, right-click → Hide outline or the × in the outline. This applies to all open files and is kept after a restart. With md-writer-studio.outline.show = false, the outline is hidden by default.

Narrow bar: The Narrow outline button turns the outline into a narrow bar with icons: H1 as an icon, lower headings as "h2" … "h6". Hovering shows the heading text, clicking jumps to it. Widen outline shows the texts again.

Width: Drag the right edge of the outline; double-click to reset it. Collapsed items stay collapsed as long as the file is open.

Page width, indentation and zoom

Page width: With readableLineLength, the text is centered and its width is limited. In windows narrower than 1200 px, it is at most pageMaxWidth wide (default 900 px); from 1200 px on, it takes up pageWidthPercent of the window (default 75 %).

Indentation: Body text and headings are indented in steps: text 60 px, H1 0 px, H2 15 px, H3 30 px, H4 35 px, H5 60 px, H6 75 px. The values are in the settings under "MD Writer Studio › Page Layout and Indentation". With md-writer-studio.indent.mode = design, the theme's indentation applies; with none, there is no indentation. The indentation also applies when printing.

Zoom: Ctrl + mouse wheel or the zoom bar at the bottom right (50–300 %, 100 % in the middle). Clicking the percentage resets it to 100 %. Font, indentation, page width and images scale along. The last zoom level is used again the next time you open a file.

Footer: Shows the number of words and characters; with a selection, "x of y words".

Printing and PDF

Ctrl+P, right-click → Print / Save as PDF …, the "…" menu at the top right, or right-click the file in the Explorer.

MD Writer Studio creates a print page in the current theme and opens it in the default browser. The print dialog opens automatically. To get a PDF, choose "Save as PDF" as the printer.

  • The print page includes formulas, PlantUML diagrams, tables, callouts, footnotes, page breaks, columns, the table of contents and indentation.
  • The sheet is always white, even with dark themes or themes with a tinted background.
  • Print pages are stored in the temp folder (md-writer-studio-print) and deleted after one day.

HTML export

Right-click → Export as HTML …, the "…" menu at the top right, or right-click the file in the Explorer.

By default, only the content is saved, without <html>, <head> and <body>, e.g. for pasting into a web page or a CMS. With md-writer-studio.exportHtml.fullDocument = true, you get a standalone page with a title and the CSS of the current theme. PlantUML diagrams are embedded as images; other images stay linked relative to the Markdown file.

Formulas: the complete page contains the KaTeX styles and fonts; the content-only export uses MathML, which browsers display without extra styles.

Themes

Change the look with the color palette button at the top right, right-click → Choose theme …, or the command MD Writer Studio: Choose Theme …. While browsing with the arrow keys, each theme is shown immediately; Enter applies it.

Included:

Theme Description
VS Code Colors of the active VS Code color theme
GitHub Looks like Markdown on github.com, light or dark to match VS Code
Cyber Green Black with neon green, by @it-m-h (github.com/it-m-h/CyberGreen, AGPL-3.0)

Custom themes are added in the settings (JSON):

"md-writer-studio.themes": [
  { "name": "Cyber Green (GitHub)", "source": "https://github.com/it-m-h/CyberGreen" },
  { "name": "School", "source": "C:/Themes/school.css", "type": "css" },
  { "name": "My Vault", "source": "D:/Vault/.obsidian/themes/Minimal/theme.css" }
]
  • source: local path (absolute or relative to the workspace), https address or GitHub repository. For a repository, theme.css in the root folder is loaded.
  • type: obsidian for Obsidian themes or css for your own CSS. If omitted, theme.css files and GitHub repositories are treated as Obsidian themes.
  • Obsidian themes in .obsidian/themes/*/theme.css in the open workspace appear in the list automatically.
  • Themes loaded from the web are cached and keep working offline.

Obsidian themes can mostly be used unchanged. MD Writer Studio provides the classes and variables these themes expect (theme-dark/theme-light, HyperMD-header-1, cm-header-1, HyperMD-codeblock, cm-keyword, --background-primary, --text-normal etc.). Themes that mainly style the interface outside the editor may only partly take effect.

Custom CSS: In a css theme, you can override the editor variables on body, e.g. --md-bg, --md-fg, --md-h1 … --md-h6, --md-link, --md-code-bg, --md-border, --md-accent, --md-table-head-bg.

PlantUML

Code blocks marked ```plantuml, puml or uml are shown as diagrams. Clicking a diagram opens its code, and the preview below it updates as you type.

By default, a PlantUML server renders the diagrams (md-writer-studio.plantuml.render = server). Nothing needs to be installed, but the diagram code is sent to the server (setting md-writer-studio.plantuml.server).

With md-writer-studio.plantuml.render = local, diagrams are rendered locally, so the content never leaves your computer. This requires:

  • Java (java on the PATH or md-writer-studio.plantuml.java)
  • plantuml.jar: taken automatically from the "PlantUML" extension (jebbs.plantuml) or set with md-writer-studio.plantuml.jar
  • Graphviz for some diagram types (dot on the PATH or md-writer-studio.plantuml.graphvizDot)

With off, PlantUML blocks are shown as code only.

Default editor for .md files

VS Code has its own Markdown preview, which may take over when you open .md files. On first start, MD Writer Studio therefore asks whether Markdown files should always open in it. To set this manually, add the following to the settings (JSON):

"workbench.editorAssociations": {
  "*.md": "md-writer-studio.editor"
}

Any file can still be opened in the regular text editor: with the Open in Text Editor button in the title bar, the right-click menu or Open With…. The other way round, right-click a Markdown file in the Explorer → Open with MD Writer Studio.

Keyboard shortcuts

Action Shortcut
Source ↔ live preview Ctrl+E
Slash commands / at the start of a line
Paste as plain text Ctrl+Shift+V
Bold / italic Ctrl+B / Ctrl+I
Strikethrough / highlight Ctrl+Shift+X / Ctrl+Shift+H
Inline code Ctrl+`
Insert link Ctrl+K
Toggle task Ctrl+L
Heading 1–6 / normal text Ctrl+1 … Ctrl+6 / Ctrl+0
Indent / outdent list item Tab / Shift+Tab
Page break Ctrl+Enter
Find and replace Ctrl+F
Undo / redo Ctrl+Z / Ctrl+Y
Show / hide outline Ctrl+Shift+O
Print / save as PDF Ctrl+P
Zoom Ctrl + mouse wheel

On macOS, use ⌘ instead of Ctrl. Saving, undo and redo are handled by VS Code, just like for any other file.

Settings

All settings are under "MD Writer Studio", in the groups General, Page Layout and Indentation, Theme and PlantUML.

Setting Default Description
md-writer-studio.defaultMode live View when opening a file: live or source
md-writer-studio.outline.show true Show the outline on the left side of the editor
md-writer-studio.showStatusBar true Show the footer with word count and zoom
md-writer-studio.imageFolder images Target folder for inserted images, relative to the file (empty = same folder)
md-writer-studio.exportHtml.fullDocument false Export HTML as a complete page with theme
md-writer-studio.readableLineLength true Limit and center the text width
md-writer-studio.pageMaxWidth 900 Maximum width in px for windows narrower than 1200 px
md-writer-studio.pageWidthPercent 75 Width in % for windows from 1200 px (0 = always pageMaxWidth)
md-writer-studio.indent.mode custom custom (values below), design (as in the theme) or none
md-writer-studio.indent.text 60 Indentation of text, lists, tables and code in px
md-writer-studio.indent.h1 … h6 0, 15, 30, 35, 60, 75 Indentation of headings in px
md-writer-studio.theme vscode Active theme: vscode, github, cyber-green or custom:<name>
md-writer-studio.themes [] Custom themes (see "Themes")
md-writer-studio.cursorColor #ffb000 Cursor color; empty = color of the color theme
md-writer-studio.plantuml.render server server, local or off
md-writer-studio.plantuml.server https://www.plantuml.com/plantuml Server for server mode
md-writer-studio.plantuml.jar empty Path to plantuml.jar (empty = automatic)
md-writer-studio.plantuml.java empty Path to Java (empty = PATH)
md-writer-studio.plantuml.graphvizDot empty Path to Graphviz dot

VS Code for the Web

MD Writer Studio also runs in the browser, e.g. on vscode.dev or github.dev. Editing, live preview, formulas, wiki links, completion, smart paste and the HTML export work as on the desktop. Not available in the browser:

  • Printing / Save as PDF (use Export as HTML instead)
  • Local PlantUML rendering with Java (md-writer-studio.plantuml.render = server works)
  • Custom themes from local paths such as ~/themes/x.css; themes from the workspace or from https addresses work

Known limitations

  • Inside rendered table cells, formulas are shown as source.
  • Completion of link targets and wiki links needs an open workspace folder.
  • The alignment of a table column is changed with the right-click menu, not directly in the delimiter row.
  • When editing a long PlantUML block, the preview is below the code and may need to be scrolled into view.

License

Copyright © 2026 it-m-h (https://www.it-m-h.ch/)

MD Writer Studio is free software under the GNU Affero General Public License, version 3 (AGPL-3.0-only). You may use, share and modify it. Anyone who distributes the extension or a modified version, or makes it available over a network, must make the source code available under the same license. The software is provided without any warranty. The full terms are in the LICENSE file shipped with the extension.

Third-party open-source components included in the extension and their licenses are listed in THIRD-PARTY-NOTICES.md.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft