
Markdown file
A Markdown file is a plain text file in which formatting such as headings or bold text is indicated by simple special characters. It is both easy for humans to read and simple for programs to process further.
A Markdown file is a perfectly ordinary text file, the kind a simple editor would save. It therefore contains only letters, digits and punctuation marks, no hidden formatting data. Nevertheless, structure can be expressed within it: a line starting with a hash symbol counts as a heading. A word between two asterisks will later be displayed in bold. This convention, defining which character carries which meaning, is called Markdown. Such files are usually recognizable by the “.md” ending at the end of the filename.
Why developers prefer typing hashes over clicking
In a word processor like Word, the formatting is hidden invisibly inside the file. You see the bold text, but not how it is stored. This makes such files hard to compare. With Markdown, on the other hand, everything lies openly in the text. You can place two versions side by side and see exactly which character has changed.
This is precisely the reason for its widespread use in the software world. Programmers manage their code with tools that log every single changed line. Documentation in Markdown format fits perfectly into this system. A Word file would only appear there as an opaque block.
A second advantage is durability. A file format belonging to a particular program may be unreadable in twenty years. Plain text is not like that. A Markdown file created today can still be opened for a very long time, if necessary with the simplest editor a computer has to offer.
The most important characters and what they become
The rules are deliberately kept minimal. A hash at the start of a line creates a large heading, two hashes create a smaller subheading. A hyphen followed by a space turns a line into a bullet point. Two asterisks around a word mean bold, a single asterisk means italic. Links are written as text in square brackets, followed by the address in round brackets.
For this to become a nicely typeset page, an intermediary program is needed. This so-called renderer reads the file, recognizes the special characters and converts them into HTML. HTML is the description language that every web browser understands. In the end, the reader sees a normal web page and never the hashes and asterisks.
A common misconception: that Markdown is a programming language. It is not. Nothing is calculated and nothing is executed. Markdown exclusively describes how a text is structured. The idea dates back to 2004, and by now there are slightly different variants with additions such as tables or task lists.
From chatbot replies to project pages
Anyone who uses a chatbot encounters Markdown constantly without noticing it. Language models almost always output their answers in this format. The interface then immediately converts it into headings and lists. If an answer ever ends up littered with asterisks in the text field, it is precisely this conversion that has failed.
The format is also standard on programming platforms like GitHub. Every software project there has a file called README.md that explains what it is about. Note-taking apps like Obsidian likewise work with it, because it keeps notes independent of the app. Static site generators turn a folder full of Markdown files into a complete website.
For AI systems, the format has an additional practical value. If a model is meant to search through company documents, these first need to be converted into processable text. Markdown is a popular intermediate format for this, because it preserves a document’s structure without carrying along unnecessary overhead. Headings remain recognizable as headings, which helps in meaningfully breaking down long texts.