Important
VS Code 1.135 (released 2026-08-26) ships a built-in Markdown editor with Typora-style WYSIWYG editing, as a third editor mode alongside the text editor and the preview. See the 1.135 release notes and the official walkthrough video.
Since VS Code now provides this natively, Markless is deprecated and no longer maintained. It remains available on the Marketplace, but no further updates or fixes will be made.
To migrate: open a .md file, pick Markdown Editor from the editor-type dropdown in the toolbar, then choose Set default for .md to make it the default.
The built-in Markdown Editor is a separate webview implementation (vscode.markdown.editor), independent of both the text editor and the Markdown preview. As of VS Code 1.138 it does not support custom CSS β headings inherit --vscode-editor-foreground and render in a single color.
Neither customization path reaches it:
markdown.stylesβ only wired into the preview webview, never injected into the editor webvieweditor.tokenColorCustomizationsβ headings are not tokenized; only fenced code blocks receive theme token colors
Markless keeps working precisely because it decorates the native editor, so tokenColorCustomizations applies. If per-level heading colors or other theming matter to you, stay on Markless, or use Markdown Preview (markdown.styles works there) until upstream support lands.
Microsoft is revisiting CSS/JS injection for this editor. Tracking issues, all still open as of 2026-10-21:
| Issue | Ask | Status |
|---|---|---|
| #328116 | Apply custom CSS / stylesheets | open Β· assigned to @hediet |
| #332732 | Honor markdown.preview.fontSize |
open |
| #328026 | Configurable content width | open |
#328116 needs community upvotes to be moved into the backlog. If custom theming is your reason for using Markless, that is the issue to π.
Inspired by Typoradiff
Preview markdown inline and extend the capabilities through existing VS Code extensions.
Contents
(and gifs!)
$..$ for inline blocks and $$..$$ for multiline blocks.
Use mermaid as the language specifier in the code block.
The concealed elements near the cursor are auto-revealed.
To show all concealed elements, use the toggle button on the top-right. Alternatively, use the provided Ctrl+Shift+m shortcut. To reveal only the current line, toggle with Ctrl+Shift+space.
The extension intelligently parses only the visible text for large files and employs caching extensively. Entire rendering takes well under 100ms.
The implementation uses the native editor instead of Custom UI. All extensions should work as expected including Neo Vim.
The parser follows the Github Flavoured Markdown (thus Commonmark) spec. It prevents inconsistency with the formats exported with spec compliant renderers.
Look under Markless section to selectively turn off the eye candies.
Add the following in settings.json for better rendering.
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"scope": "markup.list",
"settings": {
"foreground": "#6c7500",
},
},
{
"scope": "markup.bold",
"settings": {
"fontStyle": "bold",
},
},
{
"scope": "markup.heading",
"settings": {
"fontStyle": "bold",
},
},
{
"scope": "markup.inline.raw",
"settings": {
"fontStyle": "bold",
"foreground": "#707070",
},
},
{
"scope": "string.other.link.title.markdown",
"settings": {
"fontStyle": "underline",
},
},
],
},Bracket pair colorizers interfere with the rendering. If you use one, install the patched version which excludes the markdown files.
- Keyboard Shortcuts, Tables and TOC
- Wikilinks, Backlinks, Tags
- Image paste
- Todo lists
- Snippets
- Linting
- Custom CSS
- Vim bindings
- One of yours
Set vscode settings Workbench βΊ Panel: Opens Maximized as always.
Then log.debug will log to console.
| Markless | Typora | |
|---|---|---|
| Vim bindings | β | |
| Extensible | β | |
| Open source | β | |
| UI Polish | β£ | β |
| Advanced CSS | β | |
| iFrame embeds* | β |
















