Markdown is a markup language that enables writers to create readable, well-formatted documents. It's designed to be human-readable while also enabling software applications to parse it into structured output, usually HTML.
A markdown editor provides an interface for creating or modifying markdown documents, typically in a syntax-highlighted format. Markdown can be used in conjunction with many web frameworks to build richly formatted websites, blogs, etc., using a combination of markdown syntax and Cascading Style Sheets (CSS).
Most markdown editors provide a rendered preview of what the document will look like once it’s complete, which makes editing more intuitive. But not all markdown editors are equal; some offer only basic features, others support export to other formats, such as PDF, or have integrated tools such as Pandoc.
What Sets Markdown Editors Apart
Some markdown editors offer features that make content easier to work with. Syntax support is one of them. If you don’t understand markdown syntax, writing it can be quite challenging, because each element must conform to certain syntax rules. However, if you understand how markdown works, it can be much simpler than word-processing documents, especially since it doesn’t use control strings and codes to achieve formatting.
The ability to render markdown as HTML helps make the end result more visually appealing than unformatted markdown, but does require the use of an external program or application to convert the markdown into HTML. Markdown files themselves can be viewed and edited by any simple text editor, so they’re relatively easy to work with even without a complex parser. A few markdown flavors exist that use similar syntaxes; others are fragmented in their syntaxes, which can complicate things further.
One limitation of markdown is that it lacks features found in full word processors, including the ability to embed images and links easily. Another is the near-universal rendering-step problem: Most markdown editors require a separate step to render a markdown file into a formatted version that’s ready to view.
Typora: Markdown Without The Preview
WYSIWYG-style markdown editors, such as Typora, solve the problem by letting writers see both the original markdown and the formatted version inline. Instead of opening another window to view the formatted markdown, users simply switch between modes.
In addition to eliminating the preview window, Typora removes the mode switcher at the top of the screen, along with symbols indicating where different types of markdown should appear. That leaves just the markdown itself, allowing the writer to focus on editing and viewing content in its most natural state. Switching from “read” to “write” simply changes the way the markdown appears within the same window.
It’s still unclear whether markdown can ever approach the richness of more sophisticated formats such as RTF, but the seamless experience provided by WYSIWYG-style editors brings markdown somewhat close to this ideal. As described by community discussants, however, the need for a separate rendering step is a core practical drawback of markdown as compared to richer formats.
Pandoc Integration & Strong Export Capabilities
While markdown has many strengths — simplicity, portability, extensibility — its limitations often force developers to seek out additional capabilities. This is especially true when it comes to exporting and converting documents. For example, while markdown files are great for storage and archiving, they may not be suitable for presentation. Developers need something more powerful than markdown alone to handle those tasks.
Enter Pandoc, a free and open-source tool to convert between markup formats. Many good markdown editors support Pandoc as an add-in, offering a range of exports beyond standard markdown conversions. These capabilities allow developers to take markdown beyond the limits of its native format.
Zettlr offers robust cross-platform support for developers. Zettlr is a markdown editor, but also acts as a simple rich-text editor familiar to Word/LibreOffice/rich-text editor users. Caret costs $29 to continue using, but offers a wide variety of useful features, including a file tree, extensive exporting, whole-project export of multiple markdown files, live preview, Zettelkasten file-linking, programming APIs, etc.
Web-Based vs Desktop Markdown Editors
If you’ve read about markdown elsewhere, chances are you saw examples written by developers who might not consider themselves “markdowners.” Web-based markdown editors often provide minimal feature sets, and rely on JavaScript to function. They’re typically limited in what they can do, though there are exceptions, including StackEdit, which is a full-featured, open-source editor based on PageDown, the library used to power Stack Overflow.
Minimalist Online Markdown Editor (markdown.pioul.fr)
Markups (markups.vercel.app) uses the Monaco Editor (used by Visual Studio Code) and includes real-time preview and multiple themes. It supports list/board/mind-map views, and allows markdown to be exported to a downloadable .md file. Markups also allows markdown to be uploaded via URL.
There are advantages and disadvantages to using a web-based markdown editor. First, markdown isn’t stored locally, so developers can lose their progress if something goes wrong, or the website fails. Second, markdown editors lack the features and depth of local installations, particularly when it comes to managing large volumes of content.
Desktop markdown editors offer a number of benefits, especially for developers looking to manage large numbers of markdown files. Local installation lets them store markdown locally, and gives them access to a larger feature set. Markdown editors can also integrate deeply with other applications and services, making them a valuable asset for developers working across platforms. For example, the markdown editor Caret can be used as either a desktop application or as a standalone markdown editor web app, depending on developer preference.
Obsidian Is Not A Writing Tool
Knowledge-base markdown editors, such as Obsidian, serve a completely different purpose than either a standard writing or document editor. Obsidian is a free, “second brain and knowledge base program” that stores everything you know, in your own words, and connects related ideas to help you learn better. You use markdown as the underlying format, which makes the files small, easily searchable, and openable on any device.
Obsidian is essentially a digital index card system, but organized around a graph-like structure rather than a linear series of notes. The idea is that these interconnected pieces of information will become more and more useful over time, eventually becoming an archive of knowledge.
Obsidian isn’t for everyday note-taking or document creation, although it does include a rich-text editor. Markdown files are suited to long-term storage and knowledge management, not for casual use. They’re unlikely to become outdated and aren’t subject to the same technical obsolescence as more proprietary formats.
WYSIWYG Markdown Editors For Web Apps
Developers seeking a markdown editor specifically for integrating with a web application will want to ensure that the markdown editor offers the right mix of features and compatibility options. While we’ll highlight one specific markdown editor as a concrete example, many other markdown editors offer similar functionality, too.
Markdown Text Editor (open-source) is a simple, single-file open source markdown text editor. Native markdown editors generally consist of two main components: the textarea, where users enter the actual text and code, and the preview area, where the markdown is rendered. Markdown Text Editor adds advanced markdown capabilities to a standard textarea. The editor functions like a normal textarea, allowing form submission or retrieving JavaScript values using ID/Name/Selector.
As part of the Markdown Text Editor project, developers added functionality that automatically synchronizes content inside the editor with the corresponding value. When the user clicks Save, the changes are sent back to the server.