All you need for Markdown (keyboard shortcuts, table of contents, auto preview and more).
Table of Contents

(Typo: multiple words)

See full key binding list in the keyboard shortcuts section

Run command "Create Table of Contents" to insert a new table of contents.
The TOC is automatically updated on file save by default. To disable, please change the toc.updateOnSave option.
The indentation type (tab or spaces) of TOC can be configured per file. Find the setting in the right bottom corner of VS Code's status bar.
Note: Be sure to also check the list.indentationSize option.
To make TOC compatible with GitHub or GitLab, set option slugifyMode accordingly
Three ways to control which headings are present in the TOC:
Click to expand
Add `` at the end of a heading to ignore it in TOC\ (It can also be placed above a heading)
Use toc.levels setting.
You can also use the toc.omittedFromToc setting to omit some headings (and their subheadings) from TOC:
js
// 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:
=== or ---) can also be omitted, just put their # and ## versions in the setting, respectively.Easily add/update/remove section numbering




Note: By default, this extension tries to determine indentation size for different lists according to CommonMark Spec. If you prefer to use a fixed tab size, please change the list.indentationSize setting.
Commands Markdown: Print current document to HTML
and Markdown: Print documents to HTML (batch mode)
Compatible with other installed Markdown plugins (e.g. Markdown Footnotes) The exported HTML should look the same as inside VSCode.
Use comment `` to specify a title of the exported HTML.
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.

Note: The key binding is Ctrl + Shift + I on Linux. See Visual Studio Code Key Bindings.

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
search.exclude)
katex.macros)


-, *, +, 1. and 1))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.respectVscodeSearchExclude |
true |
Whether to consider search.exclude option when providing file path completions |
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.includeVscodeStylesheets |
true |
Whether to include VSCode's default styles |
markdown.extension.print.onFileSave |
false |
Print to HTML on file save |
markdown.extension.print.theme |
light |
Theme of the exported HTML |
markdown.extension.print.validateUrls |
true |
Enable/disable URL validation when printing |
markdown.extension.syntax.decorations |
true |
Add decorations to ~~strikethrough~~ and code span |
markdown.extension.syntax.decorationFileSizeLimit |
50000 | Don't render syntax decorations if a file is larger than this size (in byte/B) |
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, gitlab or gitea) |
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 |
$ claude mcp add vscode-markdown \
-- python -m otcore.mcp_server <graph>