Markdown Syntax Dictionary: a Beginner's Guide
Markdown turns a few ordinary keyboard characters into document structure. This is a practical reference: read a rule, copy its small example, then use it in your own file.
What is Markdown?
Markdown is a lightweight markup language: plain text plus a small number of characters that describe meaning. A renderer reads # Heading as a heading, - Item as a list item, and [label](URL) as a link. Without a renderer, the source is still readable.
Think of it as a contract. You provide a predictable pattern; the editor or website supplies the visual design. Markdown is excellent for notes, READMEs, product requirements, documentation, blog drafts, and prompts. It is not intended for pixel-perfect brochures, page-positioned contracts, or arbitrary visual layout.
## Heading, the two # characters mean “level-two heading” and the following space separates the marker from its title.Common syntax and symbols
Every row below is a tiny pattern, not magic. Copy it exactly the first time: keep the shown spaces, punctuation, and line breaks. Support for extensions such as tables and task lists varies, while headings, paragraphs, emphasis, links, lists, quotes, and code are the most portable core.
| Characters | What each character does | Write exactly | Result |
|---|---|---|---|
# + space | One to six # characters at a line start set a heading level; the space ends the marker. | ## Installation | A level-two heading. Use one # only for the document title. |
* or _ | One matching marker on each side makes emphasis. Do not leave a space inside the pair. | *light emphasis* | Italic text. |
** or __ | Two matching markers on each side make strong emphasis. | **important** | Bold text. |
~~ | Two tildes on each side mark deleted text in renderers with strikethrough support. | ~~old name~~ | Struck-through text. |
[ ]( ) | Square brackets contain visible link text; parentheses contain the destination. Keep both pairs. | [MarkIOY](/) | A clickable, descriptive link. |
! + [ ]( ) | The exclamation mark changes a link into an image. The bracket text is alternative text, not a caption. |  | An image with accessible description. |
-, *, or + + space | At the line start, one marker and one space create an unordered list item. | - First item | A bullet list. |
1. + space | A number, period, and space create an ordered list item. You may write every item as 1.; most renderers number it automatically. | 1. First step | A numbered list. |
> + space | The greater-than sign begins a quotation or callout line; the space separates it from text. | > Important note | Indented quoted text. |
` | One backtick on each side protects a short literal command or name from formatting. | `npm run build` | Inline code. |
``` | Three backticks open and close a multi-line code fence. Add a language immediately after the opening backticks when known. | ```js | A code block with optional highlighting. |
--- | Three or more hyphens on an otherwise empty line make a thematic break. | --- | A horizontal divider. |
\ | A backslash escapes the next punctuation character, asking the renderer to show it literally. | \*not italic\* | Visible asterisks. |
Paragraphs, spaces, and line breaks
Type normal sentences as normal text. One newline usually becomes a space in the rendered paragraph; a blank line starts a new paragraph. For a deliberate line break without a new paragraph, end the previous line with two spaces or a backslash, then press Return. Avoid using repeated spaces or empty lines to position text: another renderer may collapse them.
Lists, nesting, tasks, and tables
Indent a child list by two to four spaces under its parent. A task item is an extension built from a bullet, a space, then [ ] for incomplete or [x] for complete: - [ ] Review. A table uses pipes | to separate columns and a row of hyphens below the header; use it only for true row-and-column comparisons, not for page layout.
Links, images, and literal characters
Use link text that says where the reader will go, such as [Read the installation guide](...), never a bare URL or “click here.” Put a title in optional quotation marks after a URL only when the target renderer supports it. If Markdown punctuation must appear as text, prefix it with \; for example, write \# to show a hash at the beginning of a line rather than make a heading.
# Document title
One sentence explaining the document's purpose.
## Steps
1. Prepare the environment.
2. Run `npm run build`.
> Tip: label fenced code blocks, for example ```ts.
Preparing rendered result…
Tables, footnotes, mathematics, HTML, and Mermaid diagrams are useful extensions, but support differs between renderers. Prefer the core patterns above for shared documents, then preview in the actual destination. For formulas, see the Markdown math formula guide.
Best practices for durable documents
Design the hierarchy first
Use one # heading, then descend through ## and ### without skipping levels. A heading must describe the section that follows. This gives people, screen readers, search tools, and AI a dependable map; changing text size instead of using headings does not.
Use meaningful link labels
“Read the deployment checklist” carries context that “click here” loses. It also makes a link understandable when copied, searched, or read aloud. Check that the destination works and use a relative link only when the files will stay together.
Fence commands, data, and prompts
Code fences preserve exact text. Add a language such as bash, json, swift, mermaid, or latex after the opening fence. Do not put the closing three backticks on the same line as code. If your code itself contains three backticks, use four backticks for the outer fence.
Separate facts, decisions, and tasks
Record facts with sources, decisions with their trade-offs and date, and actions as checkboxes. Use a quote for cited words, not merely to make a paragraph look important. Structure reduces collaboration mistakes more effectively than longer prose.
Read the source once
Before publishing, read the plain text: do headings make sense in order; do links say where they go; do images have useful alternative text; can a table fit a narrow screen; are code fences closed; and are quotes identifiable? If source is hard to read, migration, diffs, accessibility, and AI use will be fragile too.
Why Markdown matters more in the AI era
AI increases the value of a shared intermediate format. Markdown is human-readable, machine-parseable, version-control friendly, and easy to render. A well-structured file can be reviewed by a person, summarized by a model, chunked for retrieval, and published by a website.
Markdown is not a truth guarantee. Verify AI-generated numbers, links, quotations, and code; preview complex tables, formulas, and diagrams in the actual target renderer. A strong workflow is: generate a structured draft, add sources and human decisions, verify facts, then render before publishing.
Finally, plain files keep knowledge portable. They can live locally, in Git, in another editor, or as clean input to a knowledge base without being locked into one vendor. That is why MarkIOY Web lets you edit the readable visual document or the Markdown source while keeping both in sync.
Start writing in Markdown
Open a local Markdown file in the MarkIOY Web editor, edit in visual and source views, then download your own file.
Open MarkIOY Web →