Mornox Tools

Markdown Editor & Preview

Write Markdown with a live preview. Supports GitHub Flavored Markdown, tables, and code blocks.

A Markdown editor and preview environment is a specialized software interface that allows users to write plain text using simple formatting symbols while simultaneously generating a live, visually styled document. This dual-pane paradigm fundamentally separates the act of writing content from the mechanics of visual design, solving the historic friction between raw text editing and complex, heavy word processors. By mastering this environment, you will learn how modern digital publishing, software documentation, and note-taking operate at a fundamental level, empowering you to write faster and publish universally compatible content.

What It Is and Why It Matters

A Markdown editor and preview system is a text-editing interface designed specifically to process and render Markdown, a lightweight markup language. In its most standard configuration, this environment consists of two distinct visual panes. The left pane contains raw, unformatted text interspersed with simple typographic symbols—such as asterisks for emphasis or hash marks for headers. The right pane displays the "preview," which is the fully rendered, visually styled final product that interprets those symbols into formatted text. When a user types **bold text** in the editor pane, the preview pane instantly displays bold text in a heavier font weight. This immediate feedback loop is the defining characteristic of a Markdown editor and preview tool.

Understanding why this matters requires looking at the historical friction in digital writing. Traditional word processors, like Microsoft Word or Google Docs, use a "What You See Is What You Get" (WYSIWYG) approach. While intuitive, WYSIWYG editors hide complex, proprietary formatting code behind the scenes. This hidden code often breaks, causes formatting inconsistencies, and locks the user's content into a specific software ecosystem. A 50-page document created in a proprietary word processor might become entirely unreadable if opened in a different program ten years later. Markdown editors solve this by ensuring the source document remains 100 percent plain text. Plain text is the universal language of computing; it can be read by any device, operating system, or text editor created in the last fifty years.

Furthermore, Markdown editors drastically increase typing speed and workflow efficiency. Because the formatting is applied using standard keyboard characters, writers never have to lift their hands from the keyboard to click a bold button or navigate a complex ribbon menu. A developer writing a technical manual can format code blocks, create nested lists, and insert hyperlinks at the exact speed of their typing. This seamless integration of content creation and formatting makes Markdown editors the absolute standard for software developers, technical writers, and modern digital publishers. The preview pane ensures that while the writer enjoys the speed of plain text, they never have to guess what the final published document will look like.

History and Origin

The concept of Markdown, and the editors built to support it, originated from a collaboration between technology writer John Gruber and internet activist Aaron Swartz. On March 19, 2004, Gruber officially released Markdown version 1.0.1 as a simple Perl script named Markdown.pl. At the time, web writers were forced to write raw HTML tags (like <strong> or <em>) to format text for the internet. This process was tedious and made the raw text incredibly difficult to read. Gruber's primary design goal was readability: a Markdown-formatted document should be publishable as-is, as plain text, without looking like it has been marked up with tags or formatting instructions. Swartz contributed heavily to the syntax design, drawing inspiration from existing conventions used in plain-text emails, such as using asterisks to denote emphasis.

In the years immediately following 2004, Markdown was primarily used by niche blogging communities and tech-savvy writers. However, the ecosystem lacked dedicated editors with live preview capabilities. Users would write their Markdown in a standard text editor, run the Perl script via the command line, and then open the resulting HTML file in a web browser to see the output. This disjointed workflow severely limited its adoption among non-technical users. The landscape shifted dramatically in the late 2000s and early 2010s with the rise of GitHub, a massive code-hosting platform. GitHub adopted Markdown as the default language for its README files and issue trackers, exposing millions of software developers to the language.

To support this massive user base, developers began building dedicated Markdown editors featuring real-time preview panes. Early web-based tools like Dillinger and desktop applications like Mou pioneered the split-pane interface that is now the industry standard. As Markdown's popularity exploded, the original 2004 specification began to show its limitations, leading to fragmented interpretations. In 2014, John MacFarlane, a philosophy professor and programmer, spearheaded the CommonMark initiative to create a highly specified, standard, and unambiguous specification for Markdown. Today, modern Markdown editors and previewers are built upon these robust, standardized parsing engines, capable of rendering thousands of words in milliseconds and powering everything from simple note-taking apps to massive enterprise documentation platforms.

How It Works — Step by Step

To understand how a Markdown editor and preview system functions, you must understand the underlying computational pipeline that transforms plain text into a visual document. This process is known as parsing and rendering. When you type a character into the editor pane, the software does not simply copy that character to the preview pane. Instead, it triggers a complex sequence of operations that execute in a fraction of a second. The exact speed depends on the engine, but modern parsers like markdown-it can process a 100,000-word document in less than 50 milliseconds. The process relies on a lexical analyzer, a syntax tree, and an HTML compiler.

Step 1: Lexical Analysis (Tokenization)

The moment you stop typing, the editor's parsing engine reads the raw text string. Let us assume you typed # Hello World. The parser's first job is lexical analysis, which involves scanning the text character by character and breaking it down into discrete chunks called "tokens." The parser identifies the # character at the beginning of the line, followed by a space. According to Markdown rules, this specific sequence represents a Level 1 Heading. The parser creates an opening token for a heading, a text token containing the string "Hello World", and a closing token for the heading.

Step 2: Abstract Syntax Tree (AST) Generation

Once the text is converted into a flat list of tokens, the engine builds an Abstract Syntax Tree (AST). An AST is a hierarchical, tree-like data structure that represents the logical relationship between the different parts of the document. For our # Hello World example, the AST would have a root node representing the entire document. Branching off that root node would be a "Heading" node with a property of level: 1. Nested inside that Heading node would be a "Text" node containing the value "Hello World". This tree structure is crucial because it allows the software to understand complex, nested formatting, such as a bold word inside an italicized sentence inside a bulleted list.

Step 3: Compilation to HTML

With the AST fully constructed, the engine passes the tree to an HTML compiler. The compiler traverses the tree from top to bottom. When it encounters the "Heading level 1" node, it outputs an opening <h1> HTML tag. It then processes the child "Text" node, outputting the raw string "Hello World". Finally, it outputs the closing </h1> HTML tag. The final compiled string in the computer's memory is <h1>Hello World</h1>.

Step 4: DOM Rendering and CSS Styling

The final step occurs in the preview pane, which is essentially a miniature web browser embedded within the application. The editor injects the compiled HTML string into the Document Object Model (DOM) of the preview pane. The embedded browser then applies a Cascading Style Sheet (CSS) to that HTML. The CSS dictates exactly how an <h1> element should look—perhaps assigning it a font size of 32 pixels, a font family of Helvetica, and a bold weight. The screen updates, and the user sees the beautifully formatted heading, completing the live preview cycle.

Key Concepts and Terminology

To navigate the world of Markdown editors effectively, you must build a robust vocabulary of the underlying concepts and terminology. Without understanding these terms, users often struggle to troubleshoot formatting errors or choose the right tool for their specific writing workflow.

Markup Language: A system for annotating a document in a way that is syntactically distinguishable from the text. Unlike programming languages (which execute logic and commands), markup languages simply describe how text should be structured or displayed. HTML and XML are heavy markup languages, while Markdown is a "lightweight" markup language due to its unobtrusive syntax.

Syntax: The specific set of rules and characters used to define formatting in Markdown. For example, the syntax for a hyperlink is [Link Text](URL). If a user deviates from this exact syntax—perhaps by using curly braces instead of square brackets—the parser will fail to recognize it, and the text will not render correctly in the preview.

Parser: The underlying software component within the editor that reads the Markdown syntax and translates it into HTML. Different editors use different parsers (such as marked.js, markdown-it, or remark), which is why the same Markdown document might occasionally look slightly different or support different features depending on the editor you are using.

Frontmatter: A block of metadata placed at the very top of a Markdown file, typically enclosed by three dashed lines (---). Frontmatter usually employs YAML (YAML Ain't Markup Language) syntax and contains information about the document that isn't necessarily displayed in the text itself, such as the title, author, date, or tags. Static site generators heavily rely on frontmatter to organize and route content.

Sanitization: A critical security process that occurs between the parsing and rendering steps. Because Markdown allows users to write raw HTML alongside Markdown syntax, a malicious user could embed dangerous JavaScript code (like <script>alert('Hacked!');</script>). Sanitization engines strip out or neutralize these dangerous tags before they reach the preview pane, preventing Cross-Site Scripting (XSS) attacks.

WYSIWYM (What You See Is What You Mean): A paradigm contrasting with WYSIWYG. Markdown is considered WYSIWYM because the writer focuses on the structural meaning of the text (e.g., "this is a top-level heading", "this is a list") rather than its exact visual representation (e.g., "this text is 24pt Arial"). The preview pane handles the visual representation based on a predetermined stylesheet.

Types, Variations, and Methods

While the fundamental goal of rendering plain text remains consistent, the software architecture of Markdown editors has evolved into several distinct types and variations. Choosing the right type depends entirely on the user's technical comfort level, their specific use case, and their workflow preferences.

The most traditional and widespread variation is the Split-Pane Editor. This is the classic setup featuring the raw text on the left and the rendered preview on the right. Applications like Visual Studio Code, Dillinger, and MacDown utilize this method. The primary advantage of the split-pane approach is absolute control; the user always sees the exact, raw syntax they are generating. The trade-off is screen real estate, as splitting the screen halves the available space for writing. This method is heavily favored by software developers and technical writers who need precise control over complex formatting, such as nested code blocks or math equations.

A newer, highly popular variation is the Inline or WYSIWYG-Hybrid Editor. Applications like Typora and Obsidian (in its Live Preview mode) champion this approach. In an inline editor, there is only one pane. As the user types the Markdown syntax, the software immediately hides the syntax characters and replaces them with the rendered visual formatting the moment the user presses the spacebar or moves the cursor away. For example, typing **bold** instantly transforms the text into bold and hides the asterisks. If the user clicks back into the word, the asterisks reappear for editing. This provides the speed of Markdown typing with the clean, single-pane aesthetic of a traditional word processor, making it highly appealing to novelists, journalists, and non-technical users.

Finally, there are Block-Based Editors that utilize Markdown as a command interface rather than a pure document format. Tools like Notion and Roam Research fall into this category. In these systems, the document is not a single contiguous text file, but a database of individual "blocks" (paragraphs, lists, images). Users can type Markdown syntax (like - for a bullet point) to instantly convert the current block into a list item. However, unlike traditional editors, you cannot easily view the entire document's raw Markdown source code. These tools use Markdown syntax purely for input speed, but abandon the plain-text portability that defined John Gruber’s original vision.

Real-World Examples and Applications

The utility of Markdown editors extends far beyond simple text formatting; they form the backbone of massive digital infrastructures and professional workflows. By examining concrete, real-world applications, the true power of the Markdown preview paradigm becomes evident.

Consider a software engineering team hosting a project on GitHub, a platform containing over 100 million repositories. Every single repository requires a README.md file to explain what the code does, how to install it, and how to use it. A developer, let us call her Sarah, uses a split-pane Markdown editor within Visual Studio Code to write this documentation. She needs to include a 15-line snippet of Python code to demonstrate installation. Using the editor, she wraps the code in triple backticks and specifies the language: ```python. Instantly, her preview pane renders the code block with full syntax highlighting—coloring keywords blue, strings green, and comments gray. This visual confirmation ensures the documentation is perfectly legible for the 5,000 monthly visitors who will read her repository page.

Another massive application is the creation of static websites and blogs using Static Site Generators (SSGs) like Jekyll, Hugo, or Gatsby. A freelance technology blogger might maintain a website with 500 articles. Instead of using a heavy, database-driven Content Management System like WordPress, the blogger writes each article as a single Markdown file in a desktop editor like Obsidian. The file begins with YAML frontmatter specifying the publication date (date: 2023-10-25) and category (category: hardware). The blogger writes the content using standard Markdown. When they save the file, the SSG processes the Markdown, applies a global HTML template, and generates an ultra-fast, highly secure static webpage. The live preview in their editor guarantees that the tables, images, and headers will align perfectly with their website's CSS stylesheet.

Markdown editors are also revolutionizing the Personal Knowledge Management (PKM) space. A medical researcher might use a tool like Logseq or Obsidian to manage 10,000 individual notes on various pharmaceutical trials. Because the notes are written in pure Markdown, they are incredibly lightweight, occupying perhaps only 50 megabytes of hard drive space total. The researcher can use specialized Markdown syntax, such as double brackets [[Drug Interaction]], to create bidirectional links between notes. The editor's preview pane not only renders the standard text but visually transforms these brackets into clickable hyperlinks, allowing the researcher to navigate a massive, interconnected web of plain-text data entirely offline.

Common Mistakes and Misconceptions

Despite its intentional simplicity, beginners frequently stumble over specific mechanical rules of Markdown, leading to frustration when the preview pane does not match their expectations. Understanding these common mistakes is crucial for mastering the editor environment.

The single most ubiquitous mistake involves line breaks and paragraph spacing. In a standard word processor, pressing the Enter or Return key once creates a new line of text. In standard Markdown, pressing Enter once does absolutely nothing to the rendered output. The parser treats a single line break as a simple space. To create a new paragraph, the user must press Enter twice, leaving a completely blank line between the blocks of text. If a user specifically wants a "soft break" (a new line without the full spacing of a new paragraph), they must type exactly two spaces at the end of the line before pressing Enter. Beginners frequently ignore this rule, resulting in a preview pane where multiple paragraphs are inexplicably mashed together into a single, massive block of text.

Another major misconception is the belief that Markdown is a single, universally identical standard. In reality, Markdown is highly fragmented. Because the original 2004 specification was somewhat ambiguous regarding edge cases, different developers built parsers that interpreted the rules differently. This led to "flavors" of Markdown. A user might write a complex data table using GitHub Flavored Markdown (GFM) syntax in an editor that only supports strict CommonMark. The user will be bewildered when their preview pane displays raw, broken pipe characters (|) instead of a cleanly formatted grid. Users must always verify which "flavor" or parsing engine their specific editor utilizes.

Finally, beginners often misunderstand the relationship between Markdown and HTML. Markdown was never designed to replace HTML entirely; it was designed to abstract away the most common formatting tasks. Many users waste hours trying to figure out the "Markdown code" to center text, change font colors, or resize an image to exactly 300 pixels wide. The misconception is that Markdown has native syntax for these tasks. It does not. Markdown is strictly for structural semantics (headings, lists, emphasis). When a user needs complex visual styling like text alignment or image resizing, the correct approach is to simply write standard HTML tags directly inside the Markdown editor (e.g., <img src="photo.jpg" width="300">). A robust Markdown parser will seamlessly interpret the raw HTML and render it correctly in the preview pane.

Best Practices and Expert Strategies

Professional technical writers and developers do not merely type Markdown; they adhere to strict best practices to ensure their documents are accessible, maintainable, and syntactically flawless. Adopting an expert's mental model elevates your use of a Markdown editor from simple note-taking to enterprise-grade publishing.

The most critical best practice is Semantic Structuring. Experts treat Markdown headings (#, ##, ###) not as ways to change font sizes, but as a rigid structural outline of the document. A document should always begin with exactly one Level 1 Heading (#), representing the title. Subsequent sections should use Level 2 Headings (##), and subsections should use Level 3 (###). You must never skip a heading level (e.g., jumping directly from an H1 to an H3 just because you prefer the smaller font size of the H3). Skipping levels destroys the document's accessibility tree, making it incredibly difficult for visually impaired users relying on screen readers to navigate the text. The preview pane might look fine, but the underlying HTML structure is broken.

Professionals also heavily utilize Markdown Linting. Just as programmers use tools to check their code for errors, writers use "linters" (like markdownlint) integrated into their editors. A linter runs silently in the background and flags stylistic inconsistencies. For example, a linter can be configured to enforce an 80-character line length, ensure all lists use asterisks instead of hyphens, and warn the user if they leave trailing whitespace. If a writer accidentally types #Heading without a space after the hash mark, the linter will highlight it as an error, preventing a situation where the heading fails to render in the preview pane.

Another expert strategy is Standardizing on GitHub Flavored Markdown (GFM) whenever possible. While CommonMark is the theoretical baseline, GFM has become the de facto industry standard for technical documentation. GFM introduces critical extensions that the original Markdown lacked, most notably tables, task lists (- [x]), and strikethrough (~~text~~). By configuring your editor's parser to default to GFM, you guarantee that the content you write will render identically whether you publish it to GitHub, Reddit, Stack Overflow, or a modern static site generator.

Edge Cases, Limitations, and Pitfalls

While Markdown is a brilliant tool for 95 percent of writing tasks, it possesses hard limitations and edge cases where the paradigm completely breaks down. Recognizing these pitfalls prevents users from wasting time trying to force the tool to do something it was never designed to do.

The most notorious limitation of Markdown is Table Management. Standard Markdown has no native support for tables, and while GFM adds table syntax, it is incredibly brittle. A simple 3x3 table is manageable, but attempting to create a complex table—such as one with merged cells (rowspans or colspans), multi-line text within a single cell, or nested bulleted lists inside a table cell—is essentially impossible using pure Markdown syntax. The source text becomes an unreadable mess of pipe characters (|) and dashes, entirely defeating the purpose of Markdown's readability. When professionals encounter this edge case, they abandon Markdown syntax and write raw HTML <table> tags, or they link to an external spreadsheet.

Another significant pitfall involves Nested Block Elements. Markdown allows you to nest elements, such as putting a blockquote inside a bulleted list, or a code block inside a numbered list. However, the syntax relies heavily on exact spatial indentation (usually exactly 4 spaces or 1 tab). If a user indents a nested code block with 3 spaces instead of 4, the parser will fail to recognize it as a code block and will render it as standard text in the preview pane. This strict reliance on invisible whitespace characters makes deep nesting highly error-prone, especially when collaborating across different operating systems that handle tab characters differently.

Security Vulnerabilities represent a critical, often-overlooked pitfall in web-based Markdown editors. Because Markdown inherently supports raw HTML, it is a prime vector for Cross-Site Scripting (XSS) attacks. If a developer builds a custom Markdown previewer for a blog comments section but fails to implement a robust sanitization library (like DOMPurify), a malicious actor could submit a comment containing <script>stealCookies();</script>. When the server renders that Markdown into HTML and displays it to other users, the malicious script executes in their browsers. Therefore, a fundamental limitation is that raw Markdown output can never be trusted natively; it must always pass through a heavy sanitization filter before being rendered in a public preview.

Industry Standards and Benchmarks

The maturation of Markdown from a niche script to a global publishing foundation has necessitated the creation of strict industry standards and performance benchmarks. Professionals rely on these metrics to evaluate the quality and reliability of different editor and preview environments.

The absolute gold standard for Markdown parsing is the CommonMark Specification. Launched in 2014 and currently at version 0.31, CommonMark provides a massive, highly detailed suite of over 600 test cases. These test cases define exactly how every conceivable combination of Markdown characters should be parsed and rendered. When evaluating a Markdown editor, the first benchmark a professional looks for is "CommonMark compliance." If an editor's underlying parser fails a significant portion of the CommonMark test suite, it is considered unreliable, as it will likely produce unpredictable formatting in the preview pane.

Performance benchmarking is equally critical, particularly for live-preview editors. The fundamental requirement of a live preview is that it must update faster than the human eye can perceive a delay—typically under 16 milliseconds per frame (to achieve 60 frames per second). Industry-standard parsing engines like markdown-it (written in JavaScript) or cmark (written in C) are rigorously benchmarked against massive text files. A high-quality C-based parser like cmark can parse and render a 10,000-word document in roughly 2 to 5 milliseconds. If an editor uses a poorly optimized parser, users will experience "input lag," where the text in the editor pane appears sluggish, and the preview pane stutters while trying to keep up with the user's typing speed.

Finally, there are standards regarding Accessibility (a11y) in the rendered output. A benchmark of a superior Markdown editor is its ability to generate WCAG-compliant (Web Content Accessibility Guidelines) HTML. For example, if a user inserts an image using the syntax ![Golden Retriever](dog.jpg), an industry-standard parser will guarantee that the alt attribute is properly populated in the resulting HTML (<img src="dog.jpg" alt="Golden Retriever">). Editors that fail to enforce or support these accessibility standards in their rendering engines are increasingly rejected by enterprise software teams.

Comparisons with Alternatives

To truly understand the value proposition of a Markdown editor and preview environment, it must be compared directly against the alternative tools available for document creation. Each alternative solves the problem of text formatting, but with vastly different philosophies and trade-offs.

Markdown vs. WYSIWYG Word Processors (Microsoft Word, Google Docs): Word processors are the dominant paradigm for general office work. They are incredibly feature-rich, offering precise control over page margins, custom fonts, and complex pagination. However, this power comes at the cost of proprietary file formats (like .docx) and bloated hidden code. If you copy text from a Word document and paste it into a website, you often bring along hundreds of lines of invisible, conflicting styling code. Markdown editors sacrifice complex visual control (you cannot easily change a font to "Comic Sans" in pure Markdown) in exchange for absolute plain-text purity, ensuring the output is perfectly clean, standardized HTML. Markdown is vastly superior for web publishing, while Word remains superior for printing physical documents.

Markdown vs. Raw HTML: Writing raw HTML provides absolute, granular control over every aspect of a web document. A writer can define exact CSS classes, inline styles, and complex structural divisions (<div>). However, writing HTML is incredibly slow and visually noisy. To write a simple bolded list in HTML requires typing <ul>, <li>, <strong>, and their respective closing tags. The source code becomes difficult to read. Markdown acts as a highly efficient shorthand for HTML. It provides 90 percent of the structural capabilities of HTML with 10 percent of the typing effort. When extreme precision is needed, a user can simply drop raw HTML into their Markdown document, offering the best of both worlds.

Markdown vs. LaTeX: LaTeX is a heavy, highly complex typesetting system used almost exclusively in academia, mathematics, and scientific publishing. Where Markdown struggles with complex tables and mathematical formulas, LaTeX excels. LaTeX can automatically generate tables of contents, manage massive bibliographies, and render flawless calculus equations. However, the learning curve for LaTeX is monumental, and the source code is arguably more difficult to read than raw HTML. Markdown is designed for speed, simplicity, and web output. LaTeX is designed for mathematical precision and perfect PDF typesetting. Many modern Markdown editors attempt to bridge this gap by supporting "MathJax" or "KaTeX," allowing users to write LaTeX-style math equations ($$E=mc^2$$) within their Markdown files.

Markdown vs. AsciiDoc / reStructuredText: AsciiDoc and reStructuredText (reST) are direct competitors to Markdown in the lightweight markup language space. Both are significantly more powerful and feature-rich than Markdown, offering native support for complex tables, document inclusions, and cross-referencing. They are heavily favored by technical writers managing massive, book-length documentation projects (like the Linux kernel documentation). However, they lost the popularity contest to Markdown. Markdown is supported by virtually every web platform, note-taking app, and developer tool on earth, whereas AsciiDoc and reST require specialized toolchains. Markdown wins on ubiquity and simplicity; the alternatives win on raw technical capability.

Frequently Asked Questions

What is the difference between Markdown and HTML? Markdown is a lightweight markup language designed specifically to be easy for humans to read and write in a plain text format. HTML (HyperText Markup Language) is the standard markup language used by web browsers to display web pages. Think of Markdown as a fast, shorthand way of writing HTML. When you use a Markdown editor, the software translates your simple Markdown symbols (like # for a header) into the corresponding, more complex HTML tags (like <h1>) so a browser can display it properly.

Do I need an internet connection to use a Markdown editor? No, you do not need an internet connection to use most Markdown editors. Because Markdown is simply plain text, and the parsing engines that convert it to a visual preview are extremely lightweight, the entire process happens locally on your computer's processor. Desktop applications like Obsidian, Typora, or Visual Studio Code can parse, render, and preview massive Markdown documents completely offline. Web-based editors, of course, require an internet connection to load the website initially.

How do I change the font size or color in a Markdown document? Standard Markdown does not have built-in syntax for changing visual styling like font size, font family, or text color. Markdown is designed to handle the structure of the document (headings, lists, bolding), while CSS (Cascading Style Sheets) handles the visual appearance. If you absolutely must change the color of a specific word, you can use standard HTML directly inside your Markdown file, such as <span style="color: red;">this text</span>. However, best practice dictates relying on the editor's global CSS theme rather than hardcoding colors.

Can I export my Markdown file to a PDF or Word document? Yes, almost all modern Markdown editors feature robust export capabilities. Because the editor first converts your Markdown into HTML, it can easily pass that HTML through an export engine to generate other formats. Tools like Pandoc (a universal document converter often integrated into advanced editors) can seamlessly convert a .md file into a highly formatted .pdf, a Microsoft Word .docx file, or an .epub ebook, applying standard styling templates during the conversion process.

Why are my line breaks not showing up in the preview pane? This is the most common issue for beginners. In standard Markdown, pressing the "Enter" or "Return" key once is ignored by the parser and treated as a single space. To create a new paragraph, you must press "Enter" twice, creating a visible blank line between your blocks of text in the editor pane. If you want to create a line break without starting a new paragraph (a soft return), you must type exactly two spaces at the very end of the line before pressing "Enter".

What is GitHub Flavored Markdown (GFM)? GitHub Flavored Markdown is a specific, highly popular variation (or "flavor") of the standard Markdown specification. Created by the code-hosting platform GitHub, GFM adds several incredibly useful features that were missing from John Gruber's original 2004 release. The most notable additions include the ability to create tables using pipe characters (|), task lists with checkboxes (- [ ]), strikethrough text, and automatic hyperlinking of URLs without needing to wrap them in brackets. Most modern editors allow you to set GFM as the default parsing engine.

Is it safe to paste raw HTML into a Markdown editor? It is generally safe for personal use, as Markdown was intentionally designed to support raw HTML for edge cases where standard syntax falls short. However, from a security standpoint, rendering unknown or user-submitted Markdown is highly dangerous. Because Markdown accepts raw HTML, a malicious user could embed dangerous JavaScript within <script> tags. If a website renders that Markdown without passing it through a "sanitization" filter first, it can lead to Cross-Site Scripting (XSS) attacks. Always sanitize Markdown output if you are building a public-facing application.

Command Palette

Search for a command to run...