All you need for Markdown (keyboard shortcuts, table of contents, auto preview and more).
- Features
- Available Commands
- Keyboard Shortcuts
- Supported Settings
- FAQ
- Changelog
- Latest Development Build
- Contributing
- Related
See full key binding list in the keyboard shortcuts section
-
The TOC is automatically updated on file save. To disable please change the
toc.updateOnSave
option. -
The indentation type (tab or spaces) of TOC can be configured per file (find it in the right bottom corner)
Note: be sure to also check the
list.indentationSize
option -
To make TOC compatible with GitHub or GitLab, set option
slugifyMode
accordingly -
Use
<!-- omit in toc -->
to ignore a specific heading in TOC
(It can also be placed above a heading) -
You can also use the
omittedFromToc
setting to omit some headings (and their subheadings) from TOC:// In your settings.json "markdown.extension.toc.omittedFromToc": { // Use a path relative to your workspace. "README.md": [ "# Introduction", "## Also omitted", ], // Or an absolute path for standalone files. "/home/foo/Documents/todo-list.md": [ "## Shame list (I'll never do these)", ] }
Note: headings underlined with
===
or---
can also be omitted, just put their#
and##
versions in the setting, respectively. -
Easily add/update/remove section numbers
-
Command
Markdown: Print current document to HTML
-
Compatible with other installed Markdown plugins (e.g. Markdown Footnotes) The exported HTML should look the same as inside VSCode.
-
Plain links to
.md
files will be converted to.html
. -
It's recommended to print the exported HTML to PDF with browser (e.g. Chrome) if you want to share your documents with others.
Please use Markdown+Math for dedicated math support. Be sure to disable math.enabled
option of this extension.
Tip: also support the option completion.root
-
Images/Files (respects option
search.exclude
) -
Math functions (including option
katex.macros
) -
Reference links
-
Paste link on selected text
-
Override "Open Preview" keybinding with "Toggle Preview", which means you can close preview using the same keybinding (Ctrl + Shift + V or Ctrl + K V).
- Markdown All in One: Create Table of Contents
- Markdown All in One: Update Table of Contents
- Markdown All in One: Add/Update section numbers
- Markdown All in One: Remove section numbers
- Markdown All in One: Toggle code span
- Markdown All in One: Toggle code block
- Markdown All in One: Print current document to HTML
- Markdown All in One: Toggle math environment
- Markdown All in One: Toggle list
- It will cycle through list markers (
-
,*
,+
,1.
and1)
)
- It will cycle through list markers (
Table
Key | Command |
---|---|
Ctrl/Cmd + B | Toggle bold |
Ctrl/Cmd + I | Toggle italic |
Ctrl/Cmd + Shift + ] | Toggle heading (uplevel) |
Ctrl/Cmd + Shift + [ | Toggle heading (downlevel) |
Ctrl/Cmd + M | Toggle math environment |
Alt + C | Check/Uncheck task list item |
Ctrl/Cmd + Shift + V | Toggle preview |
Ctrl/Cmd + K V | Toggle preview to side |
Table
Name | Default | Description |
---|---|---|
markdown.extension.completion.root |
Root folder when providing file path completions (It takes effect when the path starts with / ) |
|
markdown.extension.italic.indicator |
* |
Use * or _ to wrap italic text |
markdown.extension.katex.macros |
{} |
KaTeX macros e.g. { "\\name": "expansion", ... } |
markdown.extension.list.indentationSize |
adaptive |
Use different indentation size for ordered and unordered list |
markdown.extension.orderedList.autoRenumber |
true |
Auto fix list markers as you edits |
markdown.extension.orderedList.marker |
ordered |
Or one : always use 1. as ordered list marker |
markdown.extension.preview.autoShowPreviewToSide |
false |
Automatically show preview when opening a Markdown file. |
markdown.extension.print.absoluteImgPath |
true |
Convert image path to absolute path |
markdown.extension.print.imgToBase64 |
false |
Convert images to base64 when printing to HTML |
markdown.extension.print.onFileSave |
false |
Print to HTML on file save |
markdown.extension.print.validateUrls |
true |
Enable/disable URL validation when printing |
markdown.extension.print.theme |
light |
Theme of the exported HTML |
markdown.extension.syntax.decorations |
true |
Add decorations to strikethrough and code spans |
markdown.extension.syntax.plainTheme |
false |
A distraction-free theme |
markdown.extension.tableFormatter.enabled |
true |
Enable GFM table formatter |
markdown.extension.toc.downcaseLink |
true |
Force the TOC links to be lowercase |
markdown.extension.toc.slugifyMode |
github |
Slugify mode for TOC link generation (vscode , github or gitlab ) |
markdown.extension.toc.omittedFromToc |
{} |
Lists of headings to omit by project file (e.g. { "README.md": ["# Introduction"] } ) |
markdown.extension.toc.levels |
1..6 |
Control the heading levels to show in the table of contents. |
markdown.extension.toc.orderedList |
false |
Use ordered list in the table of contents. |
markdown.extension.toc.plaintext |
false |
Just plain text. |
markdown.extension.toc.unorderedList.marker |
- |
Use - , * or + in the table of contents (for unordered list) |
markdown.extension.toc.updateOnSave |
true |
Automatically update the table of contents on save. |
-
Error "command 'markdown.extension.onXXXKey' not found"
In most cases, it is because VSCode needs a few seconds to load this extension when you open a Markdown file for the first time. (You will see a message "Activating Extensions..." on the status bar.)
If you still see this "command not found" error after waiting for a long time, please try to restart VSCode (or reinstall this extension if needed). Otherwise feel free to open a new issue on GitHub.
See CHANGELOG for more information.
Download it here, please click the latest passing event to download artifacts.
To install, execute Extensions: Install from VSIX...
in the Command Palette (ctrl + shift + p
)
- File bugs, feature requests in GitHub Issues.
- Leave a review on Visual Studio Marketplace.
- Buy me a coffee ☕ (via PayPal, Alipay or WeChat).
Special thanks to all the contributors.
Thank VSCode Power User Course for sharing many VSCode tips with me.